summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2014-06-12 12:07:34 +0100
committerRichard Maw <richard.maw@codethink.co.uk>2014-06-12 12:07:34 +0100
commit485edc675200ff3097cec521c357441a1c2d9b0d (patch)
tree7edee2fc5e1fb60caa90f3bb26b1becde9691b99
parent1ab0ea88057e922a89c6b8feebeb62c57e40f8de (diff)
parent5f4b406b03dc9fa27c78184df5b1d501e373ca01 (diff)
downloade2fsprogs-485edc675200ff3097cec521c357441a1c2d9b0d.tar.gz
Merge 'baserock/richardmaw/yakshave/util-linux-blkid' into baserock/morphbaserock/morph
Reviewed-by: Lars Wirzenius Reviewed-by: Sam Thursfield
-rw-r--r--.gitignore34
-rw-r--r--MCONFIG.in45
-rw-r--r--Makefile.in15
-rw-r--r--README2
-rw-r--r--RELEASE-NOTES902
-rw-r--r--[-rwxr-xr-x]config/config.guess551
-rw-r--r--[-rwxr-xr-x]config/config.sub301
-rwxr-xr-xconfig/parse-types.sh53
-rwxr-xr-xconfigure1290
-rw-r--r--configure.in162
-rw-r--r--contrib/fallocate.c10
-rwxr-xr-xcontrib/populate-extfs.sh105
-rw-r--r--contrib/spd_readdir.c113
-rw-r--r--debian/changelog353
-rw-r--r--debian/comerr-dev.doc-base2
-rw-r--r--debian/control.in18
-rw-r--r--debian/e2fsck-static.preinst19
-rw-r--r--debian/e2fslibs-dev.doc-base2
-rw-r--r--debian/e2fslibs-dev.files.in6
-rw-r--r--debian/e2fslibs.files.in4
-rw-r--r--debian/e2fslibs.symbols21
-rw-r--r--debian/e2fsprogs.preinst19
-rw-r--r--debian/libblkid-dev.files.in2
-rw-r--r--debian/libblkid1.files.in2
-rw-r--r--debian/libcomerr2.files.in2
-rw-r--r--debian/libss2.files.in2
-rw-r--r--debian/libuuid1.files.in2
-rwxr-xr-xdebian/rules208
-rwxr-xr-xdebian/scripts/test-backtrace34
-rw-r--r--debian/source.lintian-overrides1
-rw-r--r--debugfs/Makefile.in196
-rw-r--r--debugfs/debug_cmds.ct20
-rw-r--r--debugfs/debugfs.8.in462
-rw-r--r--debugfs/debugfs.c200
-rw-r--r--debugfs/debugfs.h46
-rw-r--r--debugfs/dump.c24
-rw-r--r--debugfs/extent_cmds.ct (renamed from lib/ext2fs/extent_dbg.ct)9
-rw-r--r--debugfs/extent_inode.c537
-rw-r--r--debugfs/filefrag.c2
-rw-r--r--debugfs/htree.c4
-rw-r--r--debugfs/icheck.c2
-rw-r--r--debugfs/logdump.c62
-rw-r--r--debugfs/lsdel.c2
-rw-r--r--debugfs/quota.c171
-rw-r--r--debugfs/ro_debug_cmds.ct10
-rw-r--r--debugfs/set_fields.c30
-rw-r--r--debugfs/util.c46
-rw-r--r--debugfs/zap.c260
-rw-r--r--doc/Makefile.in20
-rw-r--r--doc/libext2fs.texinfo17
-rw-r--r--e2fsck/Makefile.in201
-rw-r--r--e2fsck/badblocks.c10
-rw-r--r--e2fsck/dirinfo.c9
-rw-r--r--e2fsck/e2fsck.8.in2
-rw-r--r--e2fsck/e2fsck.c2
-rw-r--r--e2fsck/e2fsck.conf.5.in53
-rw-r--r--e2fsck/e2fsck.h28
-rw-r--r--e2fsck/ea_refcount.c39
-rw-r--r--e2fsck/ehandler.c2
-rw-r--r--e2fsck/iscan.c5
-rw-r--r--e2fsck/jfs_user.h21
-rw-r--r--e2fsck/journal.c114
-rw-r--r--e2fsck/logfile.c25
-rw-r--r--e2fsck/message.c12
-rw-r--r--e2fsck/pass1.c173
-rw-r--r--e2fsck/pass1b.c45
-rw-r--r--e2fsck/pass2.c34
-rw-r--r--e2fsck/pass3.c80
-rw-r--r--e2fsck/pass4.c5
-rw-r--r--e2fsck/pass5.c201
-rw-r--r--e2fsck/problem.c55
-rw-r--r--e2fsck/problem.h13
-rw-r--r--e2fsck/profile.c7
-rw-r--r--e2fsck/quota.c48
-rw-r--r--e2fsck/recovery.c55
-rw-r--r--e2fsck/region.c2
-rw-r--r--e2fsck/rehash.c32
-rw-r--r--e2fsck/scantest.c3
-rw-r--r--e2fsck/sigcatcher.c9
-rw-r--r--e2fsck/super.c51
-rw-r--r--e2fsck/unix.c261
-rw-r--r--e2fsck/util.c52
-rw-r--r--e2fsprogs.lsm12
-rw-r--r--e2fsprogs.morph21
-rw-r--r--ext2ed/Makefile.in3
-rw-r--r--intl/Makefile.in18
-rw-r--r--lib/Makefile.bsd-lib2
-rw-r--r--lib/Makefile.elf-lib16
-rw-r--r--lib/Makefile.solaris-lib3
-rw-r--r--lib/blkid/Makefile.in13
-rw-r--r--lib/blkid/blkid.pc.in2
-rw-r--r--lib/blkid/blkid_types.h.in16
-rw-r--r--lib/blkid/cache.c9
-rw-r--r--lib/blkid/devname.c2
-rw-r--r--lib/blkid/getsize.c109
-rw-r--r--lib/blkid/list.h5
-rw-r--r--lib/blkid/probe.c39
-rw-r--r--lib/blkid/save.c9
-rw-r--r--lib/blkid/test_probe.in4
-rw-r--r--lib/config.h.in38
-rw-r--r--lib/e2p/Makefile.in9
-rw-r--r--lib/e2p/e2p.h2
-rw-r--r--lib/e2p/e2p.pc.in2
-rw-r--r--lib/e2p/feature.c12
-rw-r--r--lib/e2p/getversion.c2
-rw-r--r--lib/e2p/ls.c10
-rw-r--r--lib/e2p/parse_num.c24
-rw-r--r--lib/e2p/pf.c1
-rw-r--r--lib/et/Makefile.in44
-rw-r--r--lib/et/com_err.c5
-rw-r--r--lib/et/com_err.pc.in2
-rw-r--r--lib/et/com_err.texinfo43
-rw-r--r--lib/et/error_message.c10
-rw-r--r--lib/et/error_table.h2
-rw-r--r--lib/et/et_name.c3
-rw-r--r--lib/et/texinfo.tex8217
-rw-r--r--lib/ext2fs/Makefile.in146
-rw-r--r--lib/ext2fs/alloc.c86
-rw-r--r--lib/ext2fs/alloc_sb.c13
-rw-r--r--lib/ext2fs/alloc_stats.c41
-rw-r--r--lib/ext2fs/alloc_tables.c26
-rw-r--r--lib/ext2fs/bitops.c40
-rw-r--r--lib/ext2fs/bitops.h173
-rw-r--r--lib/ext2fs/blkmap64_ba.c83
-rw-r--r--lib/ext2fs/blkmap64_rb.c331
-rw-r--r--lib/ext2fs/blknum.c7
-rw-r--r--lib/ext2fs/block.c23
-rw-r--r--lib/ext2fs/bmap.c82
-rw-r--r--lib/ext2fs/bmap64.h4
-rw-r--r--lib/ext2fs/brel.h18
-rw-r--r--lib/ext2fs/brel_ma.c24
-rw-r--r--lib/ext2fs/check_desc.c3
-rw-r--r--lib/ext2fs/closefs.c33
-rw-r--r--lib/ext2fs/crc32c.c16
-rw-r--r--lib/ext2fs/csum.c58
-rw-r--r--lib/ext2fs/dblist.c5
-rw-r--r--lib/ext2fs/dir_iterate.c20
-rw-r--r--lib/ext2fs/dupfs.c25
-rw-r--r--lib/ext2fs/e2image.h9
-rw-r--r--lib/ext2fs/expanddir.c2
-rw-r--r--lib/ext2fs/ext2_err.et.in39
-rw-r--r--lib/ext2fs/ext2_fs.h10
-rw-r--r--lib/ext2fs/ext2_io.h3
-rw-r--r--lib/ext2fs/ext2_types.h.in16
-rw-r--r--lib/ext2fs/ext2fs.h156
-rw-r--r--lib/ext2fs/ext2fs.pc.in2
-rw-r--r--lib/ext2fs/ext2fsP.h6
-rw-r--r--lib/ext2fs/extent.c531
-rw-r--r--lib/ext2fs/fiemap.h2
-rw-r--r--lib/ext2fs/fileio.c105
-rw-r--r--lib/ext2fs/flushb.c2
-rw-r--r--lib/ext2fs/freefs.c2
-rw-r--r--lib/ext2fs/gen_bitmap.c47
-rw-r--r--lib/ext2fs/gen_bitmap64.c138
-rw-r--r--lib/ext2fs/get_pathname.c10
-rw-r--r--lib/ext2fs/getsectsize.c26
-rw-r--r--lib/ext2fs/getsize.c121
-rw-r--r--lib/ext2fs/icount.c26
-rw-r--r--lib/ext2fs/imager.c15
-rw-r--r--lib/ext2fs/initialize.c61
-rw-r--r--lib/ext2fs/inline.c53
-rw-r--r--lib/ext2fs/inode.c14
-rw-r--r--lib/ext2fs/io_manager.c17
-rw-r--r--lib/ext2fs/irel.h2
-rw-r--r--lib/ext2fs/ismounted.c83
-rw-r--r--lib/ext2fs/kernel-jbd.h6
-rw-r--r--lib/ext2fs/kernel-list.h3
-rw-r--r--lib/ext2fs/link.c3
-rw-r--r--lib/ext2fs/llseek.c18
-rw-r--r--lib/ext2fs/mkjournal.c112
-rw-r--r--lib/ext2fs/mmp.c48
-rw-r--r--lib/ext2fs/namei.c9
-rw-r--r--lib/ext2fs/newdir.c8
-rw-r--r--lib/ext2fs/openfs.c91
-rw-r--r--lib/ext2fs/progress.c14
-rw-r--r--lib/ext2fs/punch.c192
-rw-r--r--lib/ext2fs/qcow2.c22
-rw-r--r--lib/ext2fs/rbtree.c4
-rw-r--r--lib/ext2fs/rbtree.h6
-rw-r--r--lib/ext2fs/read_bb_file.c7
-rw-r--r--lib/ext2fs/res_gdt.c13
-rw-r--r--lib/ext2fs/rw_bitmaps.c71
-rw-r--r--lib/ext2fs/sparse.c79
-rw-r--r--lib/ext2fs/swapfs.c8
-rw-r--r--lib/ext2fs/symlink.c150
-rw-r--r--lib/ext2fs/test_io.c134
-rw-r--r--lib/ext2fs/tst_bitmaps.c167
-rw-r--r--lib/ext2fs/tst_bitmaps_cmd.ct12
-rw-r--r--lib/ext2fs/tst_bitmaps_cmds102
-rw-r--r--lib/ext2fs/tst_bitmaps_exp217
-rw-r--r--lib/ext2fs/tst_inode_size.c3
-rw-r--r--lib/ext2fs/tst_iscan.c4
-rw-r--r--lib/ext2fs/tst_super_size.c6
-rw-r--r--lib/ext2fs/undo_io.c55
-rw-r--r--lib/ext2fs/unix_io.c181
-rw-r--r--lib/quota/Makefile.in85
-rw-r--r--lib/quota/common.h20
-rw-r--r--lib/quota/dqblk_v2.h22
-rw-r--r--lib/quota/mkquota.c216
-rw-r--r--lib/quota/mkquota.h63
-rw-r--r--lib/quota/quota.h155
-rw-r--r--lib/quota/quota.pc.in11
-rw-r--r--lib/quota/quotaio.c127
-rw-r--r--lib/quota/quotaio.h119
-rw-r--r--lib/quota/quotaio_tree.c80
-rw-r--r--lib/quota/quotaio_tree.h13
-rw-r--r--lib/quota/quotaio_v2.c56
-rw-r--r--lib/quota/quotaio_v2.h91
-rw-r--r--lib/ss/Makefile.in13
-rw-r--r--lib/ss/error.c8
-rw-r--r--lib/ss/execute_cmd.c20
-rw-r--r--lib/ss/help.c19
-rw-r--r--lib/ss/invocation.c18
-rw-r--r--lib/ss/list_rqs.c29
-rw-r--r--lib/ss/pager.c10
-rw-r--r--lib/ss/parse.c23
-rw-r--r--lib/ss/request_tbl.c13
-rw-r--r--lib/ss/ss.pc.in2
-rw-r--r--lib/ss/ss_internal.h1
-rw-r--r--lib/uuid/Makefile.in15
-rw-r--r--lib/uuid/gen_uuid.c40
-rw-r--r--lib/uuid/tst_uuid.c33
-rw-r--r--lib/uuid/uuid.pc.in2
-rw-r--r--lib/uuid/uuid_time.c2
-rw-r--r--misc/Makefile.in216
-rw-r--r--misc/badblocks.c139
-rw-r--r--misc/blkid.c62
-rw-r--r--misc/chattr.1.in59
-rw-r--r--misc/chattr.c25
-rw-r--r--misc/dumpe2fs.8.in3
-rw-r--r--misc/dumpe2fs.c98
-rw-r--r--misc/e2freefrag.c11
-rw-r--r--misc/e2image.8.in155
-rw-r--r--misc/e2image.c652
-rw-r--r--misc/e2initrd_helper.c10
-rw-r--r--misc/e2undo.c18
-rw-r--r--misc/e4defrag.c161
-rw-r--r--misc/ext4.5.in260
-rw-r--r--misc/filefrag.8.in25
-rw-r--r--misc/filefrag.c381
-rw-r--r--misc/findsuper.c4
-rw-r--r--misc/fsck.c55
-rw-r--r--misc/ismounted.c6
-rw-r--r--misc/logsave.c17
-rw-r--r--misc/mk_hugefiles.c434
-rw-r--r--misc/mke2fs.8.in192
-rw-r--r--misc/mke2fs.c884
-rw-r--r--misc/mke2fs.conf.5.in96
-rw-r--r--misc/mke2fs.h30
-rw-r--r--misc/mklost+found.c2
-rw-r--r--misc/tune2fs.8.in58
-rw-r--r--misc/tune2fs.c236
-rw-r--r--misc/util.c206
-rw-r--r--misc/util.h14
-rw-r--r--misc/uuidd.c2
-rw-r--r--po/Makefile.in.in4
-rw-r--r--po/ca.gmobin79416 -> 69814 bytes
-rw-r--r--po/ca.po4571
-rw-r--r--po/cs.gmobin135876 -> 142496 bytes
-rw-r--r--po/cs.po3082
-rw-r--r--po/de.gmobin133063 -> 131513 bytes
-rw-r--r--po/de.po3584
-rw-r--r--po/e2fsprogs.pot2410
-rw-r--r--po/es.gmobin81306 -> 76681 bytes
-rw-r--r--po/es.po4686
-rw-r--r--po/fr.gmobin136626 -> 143630 bytes
-rw-r--r--po/fr.po3251
-rw-r--r--po/id.gmobin98002 -> 86892 bytes
-rw-r--r--po/id.po4268
-rw-r--r--po/it.gmobin50242 -> 45943 bytes
-rw-r--r--po/it.po4475
-rw-r--r--po/nl.gmobin135269 -> 141784 bytes
-rw-r--r--po/nl.po3239
-rw-r--r--po/pl.gmobin130561 -> 140128 bytes
-rw-r--r--po/pl.po4909
-rw-r--r--po/sv.gmobin128318 -> 136415 bytes
-rw-r--r--po/sv.po4662
-rw-r--r--po/tr.gmobin78027 -> 73038 bytes
-rw-r--r--po/tr.po4802
-rw-r--r--po/vi.gmobin140198 -> 147528 bytes
-rw-r--r--po/vi.po3477
-rw-r--r--po/zh_CN.gmobin23654 -> 22549 bytes
-rw-r--r--po/zh_CN.po4117
-rw-r--r--resize/Makefile.in34
-rw-r--r--resize/main.c70
-rw-r--r--resize/online.c105
-rw-r--r--resize/resize2fs.8.in62
-rw-r--r--resize/resize2fs.c1011
-rw-r--r--resize/resize2fs.h28
-rw-r--r--resize/resource_track.c128
-rwxr-xr-xresize/test-resize27
-rw-r--r--resize/test_extent.c2
-rw-r--r--tests/Makefile.in47
-rw-r--r--tests/d_loaddump/expect6
-rw-r--r--tests/d_loaddump/script19
-rw-r--r--tests/d_special_files/expect85
-rw-r--r--tests/d_special_files/name1
-rw-r--r--tests/d_special_files/script94
-rw-r--r--tests/defaults/e_script4
-rw-r--r--tests/e_brel_bma/script3
-rw-r--r--tests/e_icount_normal/name2
-rw-r--r--tests/e_irel_ima/script3
-rw-r--r--tests/f_crashdisk/expect.16
-rw-r--r--tests/f_desc_size_128/expect.17
-rw-r--r--tests/f_desc_size_128/expect.27
-rw-r--r--tests/f_desc_size_128/image.gzbin0 -> 11547 bytes
-rw-r--r--tests/f_desc_size_128/name1
-rw-r--r--tests/f_desc_size_bad/expect.111
-rw-r--r--tests/f_desc_size_bad/expect.27
-rw-r--r--tests/f_desc_size_bad/script17
-rw-r--r--tests/f_dup4/script7
-rw-r--r--tests/f_dup_de/script3
-rw-r--r--tests/f_dup_resize/script9
-rw-r--r--tests/f_eofblocks/expect.113
-rw-r--r--tests/f_eofblocks/expect.27
-rw-r--r--tests/f_eofblocks/image.gzbin0 -> 1364 bytes
-rw-r--r--tests/f_eofblocks/name1
-rw-r--r--tests/f_ext_journal/name1
-rw-r--r--tests/f_extent_interior_start_lblk/expect.112
-rw-r--r--tests/f_extent_interior_start_lblk/expect.27
-rw-r--r--tests/f_extent_interior_start_lblk/image.gzbin0 -> 603 bytes
-rw-r--r--tests/f_extent_interior_start_lblk/name1
-rw-r--r--tests/f_extent_oobounds/expect.124
-rw-r--r--tests/f_extent_oobounds/expect.27
-rw-r--r--tests/f_extent_oobounds/script42
-rw-r--r--tests/f_h_badnode/script3
-rw-r--r--tests/f_h_badroot/script3
-rw-r--r--tests/f_h_normal/script3
-rw-r--r--tests/f_h_reindex/script3
-rw-r--r--tests/f_h_unsigned/script3
-rw-r--r--tests/f_imagic_fs/script3
-rw-r--r--tests/f_invalid_extent_symlink/expect.112
-rw-r--r--tests/f_invalid_extent_symlink/expect.27
-rw-r--r--tests/f_invalid_extent_symlink/image.gzbin0 -> 1115 bytes
-rw-r--r--tests/f_invalid_extent_symlink/name1
-rw-r--r--tests/f_jnl_32bit/expect.0567
-rw-r--r--tests/f_jnl_32bit/expect.116
-rw-r--r--tests/f_jnl_32bit/expect.27
-rw-r--r--tests/f_jnl_32bit/image.gzbin0 -> 44544 bytes
-rw-r--r--tests/f_jnl_32bit/name1
-rw-r--r--tests/f_jnl_32bit/script4
-rw-r--r--tests/f_jnl_64bit/expect.0928
-rw-r--r--tests/f_jnl_64bit/expect.116
-rw-r--r--tests/f_jnl_64bit/expect.27
-rw-r--r--tests/f_jnl_64bit/image.gzbin0 -> 118573 bytes
-rw-r--r--tests/f_jnl_64bit/name1
-rw-r--r--tests/f_jnl_64bit/script4
-rw-r--r--tests/f_jnl_errno/expect.047
-rw-r--r--tests/f_jnl_errno/expect.19
-rw-r--r--tests/f_jnl_errno/expect.27
-rw-r--r--tests/f_jnl_errno/image.gzbin0 -> 8822 bytes
-rw-r--r--tests/f_jnl_errno/name1
-rw-r--r--tests/f_jnl_errno/script4
-rw-r--r--tests/f_mmp/script29
-rw-r--r--tests/f_mmp_garbage/script9
-rw-r--r--tests/f_orphan_extents_inode/expect.110
-rw-r--r--tests/f_orphan_extents_inode/expect.27
-rw-r--r--tests/f_orphan_extents_inode/image.gzbin0 -> 564 bytes
-rw-r--r--tests/f_orphan_extents_inode/name1
-rw-r--r--tests/f_orphan_indirect_inode/expect.13
-rw-r--r--tests/f_orphan_indirect_inode/expect.27
-rw-r--r--tests/f_orphan_indirect_inode/image.gzbin0 -> 592 bytes
-rw-r--r--tests/f_orphan_indirect_inode/name1
-rw-r--r--tests/f_orphan_indirect_inode/script2
-rw-r--r--tests/f_preen/expect.11
-rw-r--r--tests/f_quota/debugfs-cmds7
-rw-r--r--tests/f_quota/expect.021
-rw-r--r--tests/f_quota/expect.113
-rw-r--r--tests/f_quota/expect.27
-rw-r--r--tests/f_quota/image.gzbin0 -> 1046 bytes
-rw-r--r--tests/f_quota/name1
-rw-r--r--tests/f_quota/script4
-rw-r--r--tests/f_rehash_dir/name1
-rw-r--r--tests/f_resize_inode/expect19
-rw-r--r--tests/f_resize_inode/script48
-rw-r--r--tests/f_toobig_extent_dir/expect.112
-rw-r--r--tests/f_toobig_extent_dir/expect.27
-rw-r--r--tests/f_toobig_extent_dir/image.gzbin0 -> 822 bytes
-rw-r--r--tests/f_toobig_extent_dir/name1
-rw-r--r--tests/f_uninit_ext_past_eof/expect.17
-rw-r--r--tests/f_uninit_ext_past_eof/expect.27
-rw-r--r--tests/f_uninit_ext_past_eof/image.gzbin0 -> 5102 bytes
-rw-r--r--tests/f_uninit_ext_past_eof/name1
-rw-r--r--tests/f_uninit_ext_past_eof2/expect.17
-rw-r--r--tests/f_uninit_ext_past_eof2/expect.27
-rw-r--r--tests/f_uninit_ext_past_eof2/image.gzbin0 -> 989 bytes
-rw-r--r--tests/f_uninit_ext_past_eof2/name1
-rw-r--r--tests/f_uninit_last_uninit/script3
-rw-r--r--tests/f_unused_itable/name2
-rw-r--r--tests/f_zero_xattr/expect.17
-rw-r--r--tests/f_zero_xattr/image.gzbin0 -> 707 bytes
-rw-r--r--tests/f_zero_xattr/name1
-rw-r--r--tests/f_zero_xattr/script2
-rw-r--r--tests/filter.sed (renamed from tests/filter_dumpe2fs)15
-rw-r--r--tests/i_e2image/script15
-rw-r--r--tests/m_bigjournal/expect.118
-rw-r--r--tests/m_bigjournal/script4
-rw-r--r--tests/m_dasd_bs/expect.121
-rw-r--r--tests/m_desc_size_128/expect.1838
-rw-r--r--tests/m_desc_size_128/script4
-rw-r--r--tests/m_extent_journal/expect.121
-rw-r--r--tests/m_large_file/expect.121
-rw-r--r--tests/m_meta_bg/expect.120
-rw-r--r--tests/m_mkfs_overhead/script12
-rw-r--r--tests/m_mmp/expect.121
-rw-r--r--tests/m_mmp/script6
-rw-r--r--tests/m_no_opt/expect.120
-rw-r--r--tests/m_quota/expect.1157
-rw-r--r--tests/m_quota/script8
-rw-r--r--tests/m_raid_opt/expect.121
-rw-r--r--tests/m_raid_opt/script2
-rw-r--r--tests/m_root_owner/expect.153
-rw-r--r--tests/m_root_owner/script4
-rw-r--r--tests/m_std/expect.121
-rw-r--r--tests/m_uninit/expect.149
-rw-r--r--tests/mke2fs.conf.in1
-rw-r--r--tests/progs/Makefile.in11
-rw-r--r--tests/progs/crcsum.c68
-rw-r--r--tests/r_1024_small_bg/script31
-rw-r--r--tests/r_64bit_big_expand/script31
-rw-r--r--tests/r_bigalloc_big_expand/script31
-rw-r--r--tests/r_ext4_big_expand/script31
-rw-r--r--tests/r_ext4_small_bg/script31
-rw-r--r--tests/r_inline_xattr/script10
-rw-r--r--tests/r_min_itable/expect15
-rw-r--r--tests/r_min_itable/image.gzbin0 -> 3597 bytes
-rw-r--r--tests/r_min_itable/name1
-rw-r--r--tests/r_min_itable/script45
-rw-r--r--tests/r_move_itable/expect4
-rw-r--r--tests/r_move_itable/script50
-rw-r--r--tests/r_resize_inode/expect3
-rw-r--r--tests/r_resize_inode/script47
-rw-r--r--tests/run_e2fsck43
-rw-r--r--tests/run_mke2fs7
-rwxr-xr-xtests/scripts/resize_test172
-rw-r--r--tests/t_ext_jnl_rm/script8
-rw-r--r--tests/t_mmp_1on/script15
-rw-r--r--tests/t_mmp_2off/script15
-rw-r--r--tests/t_quota_1on/name1
-rw-r--r--tests/t_quota_1on/script42
-rw-r--r--tests/t_quota_2off/name1
-rw-r--r--tests/t_quota_2off/script35
-rw-r--r--tests/test_config6
-rw-r--r--tests/test_one.in69
-rwxr-xr-xtests/test_post17
-rw-r--r--tests/test_script.in71
-rw-r--r--tests/u_mke2fs/script8
-rw-r--r--tests/u_tune2fs/script8
-rw-r--r--util/Makefile.in19
-rw-r--r--util/all.exclude3
-rw-r--r--util/install-symlink.in89
-rw-r--r--util/subset.exclude3
-rw-r--r--util/subst.c98
-rw-r--r--util/subst.conf.in2
-rw-r--r--util/symlinks.c387
-rw-r--r--version.h4
-rw-r--r--wordwrap.pl4
457 files changed, 61674 insertions, 27660 deletions
diff --git a/.gitignore b/.gitignore
index 2d1a13ee..1024cc3d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,12 +5,18 @@ build.static
FILES
^core
*~
-.pc
patches
Makefile
+*.bak
+*.diff
+*.dSYM
*.o
*.orig
+*.patch
+*.pc
+*.rej
*.swp
+00[0-9][1-9]*.patch
MCONFIG
asm_types.h
config.log
@@ -18,6 +24,7 @@ config.status
debugfs/debug_cmds.c
debugfs/debugfs
debugfs/debugfs.8
+debugfs/extent_cmds.c
doc/libext2fs.aux
doc/libext2fs.cp
doc/libext2fs.dvi
@@ -53,6 +60,7 @@ lib/blkid/subdirs
lib/blkid/test_probe
lib/blkid/tests/*.ok
lib/blkid/tests/*.out
+lib/blkid/tests/tmp
lib/blkid/tst_cache
lib/blkid/tst_dev
lib/blkid/tst_devname
@@ -64,6 +72,8 @@ lib/blkid/tst_resolve
lib/blkid/tst_save
lib/blkid/tst_tag
lib/blkid/tst_types
+lib/config.h
+lib/dirpaths.h
lib/e2p/e2p.pc
lib/e2p/libe2p.a
lib/e2p/subdirs
@@ -73,17 +83,25 @@ lib/et/com_err.pc
lib/et/compile_et
lib/et/libcom_err.a
lib/et/subdirs
+lib/ext2fs/crc32c_table.h
lib/ext2fs/ext2_err.c
lib/ext2fs/ext2_err.et
lib/ext2fs/ext2_err.h
lib/ext2fs/ext2_types.h
lib/ext2fs/ext2fs.pc
+lib/ext2fs/gen_crc32ctable
lib/ext2fs/libext2fs.a
lib/ext2fs/subdirs
lib/ext2fs/tst_badblocks
+lib/ext2fs/tst_bitmaps
+lib/ext2fs/tst_bitmaps_cmd.c
+lib/ext2fs/tst_bitmaps_out
lib/ext2fs/tst_bitops
lib/ext2fs/tst_csum
+lib/ext2fs/tst_crc32c
lib/ext2fs/tst_icount
+lib/ext2fs/tst_inline
+lib/ext2fs/tst_inode_size
lib/ext2fs/tst_iscan
lib/ext2fs/tst_super_size
lib/ext2fs/tst_types
@@ -91,8 +109,11 @@ lib/libblkid.a
lib/libcom_err.a
lib/libe2p.a
lib/libext2fs.a
+lib/libquota.a
lib/libss.a
lib/libuuid.a
+lib/quota/libquota.a
+lib/quota/subdirs
lib/ss/libss.a
lib/ss/mk_cmds
lib/ss/ss.pc
@@ -141,9 +162,11 @@ misc/e2undo
misc/e2undo.8
misc/e4defrag
misc/e4defrag.8
+misc/ext4.5
misc/filefrag
misc/filefrag.8
misc/findfs.8
+misc/findsuper
misc/fsck
misc/fsck.8
misc/logsave
@@ -153,16 +176,19 @@ misc/lsattr.1
misc/mke2fs
misc/mke2fs.8
misc/mke2fs.conf.5
+misc/mke2fs.conf
misc/mklost+found
misc/mklost+found.8
misc/prof_err.c
misc/prof_err.h
+misc/profile.h
misc/tune2fs
misc/tune2fs.8
misc/uuidd
misc/uuidd.8
misc/uuidgen
misc/uuidgen.1
+parse-types.log
po/Makefile.in
po/POTFILES
public_config.h
@@ -174,13 +200,17 @@ tags
TAGS
tests/progs/test_icount
tests/progs/test_icount_cmds.c
+tests/progs/crcsum
tests/*.ok
tests/*.failed
tests/*.log
-tests/*.log
+tests/*.tmp
tests/mke2fs.conf
tests/test_script
+tests/test_one
+util/dirpaths.h
util/gen-tarball
+util/install-symlink
util/subst
util/subst.conf
Meta
diff --git a/MCONFIG.in b/MCONFIG.in
index bdb3580b..2ba2aa99 100644
--- a/MCONFIG.in
+++ b/MCONFIG.in
@@ -29,23 +29,42 @@ man5dir = $(mandir)/man5
man8dir = $(mandir)/man8
infodir = @infodir@
datadir = @datadir@
+pkgconfigdir = $(libdir)/pkgconfig
@SET_MAKE@
@ifGNUmake@ V =
@ifGNUmake@ ifeq ($(strip $(V)),)
@ifGNUmake@ # E = @echo
+@ifGNUmake@ # ES = echo
@ifGNUmake@ # Q = @
@ifGNUmake@ E = @E@
+@ifGNUmake@ ES = @ES@
@ifGNUmake@ Q = @Q@
@ifGNUmake@ else
@ifGNUmake@ E = @\#
+@ifGNUmake@ ES = \#
@ifGNUmake@ Q =
@ifGNUmake@ endif
@ifNotGNUmake@ E = @E@
+@ifNotGNUmake@ ES = @ES@
@ifNotGNUmake@ Q = @Q@
+@ifGNUmake@ CHECK=sparse
+@ifGNUmake@ CHECK_OPTS=-Wsparse-all -Wno-transparent-union -Wno-return-void -Wno-undef -Wno-non-pointer-null
+@ifGNUmake@ ifeq ("$(C)", "2")
+@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS) -Wbitwise -D__CHECK_ENDIAN__
+@ifGNUmake@ else
+@ifGNUmake@ ifeq ("$(C)", "1")
+@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS)
+@ifGNUmake@ else
+@ifGNUmake@ CHECK_CMD=@true
+@ifGNUmake@ endif
+@ifGNUmake@ endif
+
+@ifNotGNUmake@ CHECK_CMD=@true
+
CC = @CC@
BUILD_CC = @BUILD_CC@
CFLAGS = @CFLAGS@
@@ -92,6 +111,7 @@ LIBUUID = @LIBUUID@ @SOCKET_LIB@
LIBQUOTA = @STATIC_LIBQUOTA@
LIBBLKID = @LIBBLKID@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
LIBINTL = @LIBINTL@
+SYSLIBS = @LIBS@
DEPLIBSS = $(LIB)/libss@LIB_EXT@
DEPLIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@
DEPLIBUUID = @DEPLIBUUID@
@@ -136,6 +156,23 @@ $(top_builddir)/util/subst:
cd $(top_builddir)/util ; $(MAKE) subst
#
+# Script for installing symlinks (for shared libraries)
+#
+$(top_builddir)/util/install-symlink: $(top_srcdir)/util/install-symlink.in \
+ $(top_builddir)/config.status
+ cd $(top_builddir); CONFIG_FILES=util/install-symlink ./config.status
+ chmod +x $(top_builddir)/util/install-symlink
+
+$(top_builddir)/util/symlinks:
+ cd $(top_builddir)/util ; $(MAKE) symlinks
+
+INSTALL_SYMLINK = /bin/sh $(top_builddir)/util/install-symlink \
+ @SYMLINK_RELATIVE@ \
+ --symlinks=$(top_builddir)/util/symlinks
+DEP_INSTALL_SYMLINK = $(top_builddir)/util/install-symlink \
+ $(top_builddir)/util/symlinks
+
+#
# Warning flags
#
# Run make gcc-wall to do a build with warning messages.
@@ -213,6 +250,14 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/MCONFIG \
@MAINTAINER_CMT@$(top_srcdir)/configure: $(top_srcdir)/configure.in
@MAINTAINER_CMT@ cd $(top_srcdir) && autoheader && autoconf
+coverage.txt: Makefile $(SRCS)
+ if test -n "$(SRCS)"; then \
+ gcov -s $(top_srcdir) -o . $(SRCS) > coverage.txt 2>&1 ; \
+ fi
+
+clean::
+ $(RM) -f *.gcda *.gcov *.gcno coverage.txt
+
#
# Make depend magic...
#
diff --git a/Makefile.in b/Makefile.in
index 7c5d441a..cf129db3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -13,7 +13,7 @@ INSTALL = @INSTALL@
@DEBUGFS_CMT@DEBUGFS_DIR= debugfs
@UUID_CMT@UUID_LIB_SUBDIR= lib/uuid
@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid
-@QUOTA_CMT@QUOTA_LIB_SUBDIR= lib/quota
+QUOTA_LIB_SUBDIR= lib/quota
LIB_SUBDIRS=lib/et lib/ss lib/e2p $(UUID_LIB_SUBDIR) lib/ext2fs $(BLKID_LIB_SUBDIR) $(QUOTA_LIB_SUBDIR) intl
PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po
@@ -73,8 +73,12 @@ install-libs: install-libs-recursive
uninstall-libs: uninstall-libs-recursive
+coverage.txt: coverage.txt-recursive
+
+check-recursive: all
+
TAGS clean-recursive distclean-recursive depend-recursive check-recursive \
- mostlyclean-recursive realclean-recursive:
+ mostlyclean-recursive realclean-recursive coverage.txt-recursive:
@for subdir in $(SUBDIRS); do \
if test -d $$subdir ; then \
target=`echo $@|$(SED) 's/-recursive//'`; \
@@ -84,7 +88,7 @@ TAGS clean-recursive distclean-recursive depend-recursive check-recursive \
done
all-progs-recursive install-progs-recursive install-strip-progs-recursive \
- uninstall-progs-recursive: all-libs-recursive
+ uninstall-progs-recursive coverage.txt-progs-recursive: all-libs-recursive
@for subdir in $(PROG_SUBDIRS); do \
if test -d $$subdir ; then \
target=`echo $@|$(SED) 's/-progs-recursive//'`; \
@@ -95,7 +99,8 @@ all-progs-recursive install-progs-recursive install-strip-progs-recursive \
all-libs-recursive install-libs-recursive install-strip-libs-recursive \
uninstall-libs-recursive install-shlibs-libs-recursive \
- install-shlibs-strip-libs-recursive uninstall-shlibs-libs-recursive:
+ install-shlibs-strip-libs-recursive uninstall-shlibs-libs-recursive \
+ coverage.txt-libs-recursive:
@for subdir in $(LIB_SUBDIRS); do \
if test -d $$subdir ; then \
target=`echo $@|$(SED) 's/-libs-recursive//'`; \
@@ -106,7 +111,7 @@ all-libs-recursive install-libs-recursive install-strip-libs-recursive \
mostlyclean: mostlyclean-recursive mostlyclean-local
-clean: clean-recursive clean-local clean-doc
+clean:: clean-recursive clean-local clean-doc
$(RM) -f $(SUBS)
distclean: distclean-doc distclean-recursive
diff --git a/README b/README
index d3a97eb0..3240bda1 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
- This is the new version (1.42.2) of the second extended file
+ This is the new version (1.42.10) of the second extended file
system management programs.
From time to time, I release new versions of e2fsprogs, to fix
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index a1f6c1cd..0f2332f6 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,3 +1,905 @@
+E2fsprogs 1.42.10 (May 18, 2014)
+================================
+
+Mke2fs now creates file systems in regular files (which is very often
+used when maintaining virtual machine images) without requiring the
+user to use the force option. In addition, the mke2fs output has been
+made much less verbose and only displays information that users will
+be more likely to find useful by default.
+
+Mke2fs now will ask the user to confirm that they want to continue
+before wiping out a pre-existing file system, partition table, or LVM
+physical volume.
+
+Mke2fs now has the ability to create file systems where all the
+metadata is located at the very beginning of the device. This can be
+useful for flash devices which have SLC flash at the beginning of the
+disk, for FAT compatibility, for example. As part of this, mke2fs and
+tune2fs can control the location of the data blocks used by the
+journal inode. In addition, the new sparse_super2 feature allows for
+even fewer (anywhere from zero to two) backup superblocks.
+
+Mke2fs now uses much less CPU when allocating the blocks used for very
+large file systems.
+
+Mke2fs can now support creating a file system at an offset. This can
+be useful when creating a disk image for virtual machines (Addresses
+Debian Bug: #497984)
+
+Previously, e2fsck had a number of very serious bugs when checking a
+file system wich used the new the quota file system option (where the
+quota inodes were stored in hidden inodes) and the quota inode was
+inconsistent with the actual usage data. This problem was documented
+in https://ext4.wiki.kernel.org/index.php/Quota. These problems have
+been fixed in 1.42.10, so the quota should be safe to use with
+e2fsprogs 1.42.10.
+
+Fixed in a bug in resize2fs which could cause shrink operation fail in
+the unlikely situation when the inode table needs to be moved to a
+location before the current location.
+
+Resize2fs now has a much more accurate (and less conservative)
+estimation of how far the file system can be shrunk. This allows a
+mostly empty filesystem which is a few terabytes, to be shrunk to a
+few megabytes in a single resize2fs -M operation.
+
+E2fsck will now force a full file system check if there are any file
+system inconsistencies detected in the super block.
+
+The filefrag program will now display hte shared extent flag, which is
+used by file systems such as btrfs.
+
+If the number of inodes in the file systems is larger than the time
+that file sytem was created (as measured by the number of seconds
+since January 1, 1970) e2fsck would print a scary (but otherwise
+harmless) warning of file system corruption for each inode in the
+orphan list. This false positive has been fixed.
+
+The e4defrag program has been fixed so it will no longer refuse with
+filesystem with the 64-bit or the bigalloc feature enabled.
+
+The logsave progam will print a much less scary message which could
+lead users to believe something has gone very wrong with e2fsck exits
+with a non-zero exit status (since this is normal after e2fsck has
+automatically fixed a file system corruption during a preen
+operation). (Addresses Debian Bug: #468821)
+
+When creating a file system which is larger than 16TB, the
+resize_inode option must be disabled -- since the resize_inode simply
+doesn't support reserving metadata block numbers which is larger than
+32 bits. The mke2fs program does this automatically if the file
+system size is determined automatically. It will now also do this if
+the file size is specified explicitly.
+
+Fixed bugs associated with resize2fs and shrinking bigalloc file
+systems.
+
+The e2fsck program will no longer try to add a UUID on a mounted file
+system with checksums enabled, since this could leave the file system
+checksums broken.
+
+Tune2fs will allow the removal of an external journal from file system
+which is marked as needing the journal replayed when the force ("-f")
+option is given twice. (Addresses Debian Bug: #559301)
+
+Tune2fs will no longer support enabling sparse_super if the meta_bg
+file system feature is enabled, since it could result in data loss.
+In practice, all modern file systems have sparse_super is enabled, so
+it's not worth trying to change how tune2fs handles enabling the
+sparse_super feature.
+
+Fixed support for 1k block file systems with the meta_bg feature.
+
+When the superblock is corrupt, e2fsck can't figure out the location
+of the alternate superblock. Unfortunately, the routine that
+calculates the location of the alternate superblock uses 8193 if it
+can't figure this out, so the message printed by e2fsck always
+suggests using "e2fsck -b 8193". This message has been fixed to
+suggest both the superblock location of 8193 and and 32768.
+(Addresses Debian Bug: #719185)
+
+The lookback mount detection code that was introduced in 1.42.9 wasn't
+actually compiled in due to an autoconf oops, so it's fixed now in
+1.42.10. (Addresses Debian Bug: #497984)
+
+A bug introduced in 1.42.9 would cause debugfs to print two error
+messages if it found an error while parsing a user-supplied block
+number. This has been fixed in 1.42.10.
+
+Update Czech, Dutch, French, German, Polish, Spanish, Sweedish, and
+Vietnamese translations. (Addresses Debian Bug: #703048)
+
+Updated/fixed various man pages. (Addresses Debian Bugs: #719189,
+#719184)
+
+Fixed various Debian Packaging Issues. (Addresses Debian Bug: #718725)
+
+
+Programmer's Notes
+------------------
+
+Fixed a lot of coverity, sparce gcc -Wall, and clang warnings/nits.
+
+Allow the location of pkg-config files to be specified independent of
+the libdir location via a makefile variable.
+
+Fixed parse-types.sh not to complain when cross-compiling and the
+sizes of types are different between the target architecture and the
+architecture of the build system
+
+Allow the regression test suite to work correctly on systems which do
+not have the "truncate" or "mksawp" programs.
+
+Allow e2fsck to build correctly on systems (such as Android) that do
+not have the signal.h file.
+
+E2fsprogs now has code coverage testing which can be enbled using
+"configure --enable-gcov".
+
+The libe2p.h header file can now be used included by C++ programs.
+
+The profile/config file used by e2fsck and mke2fs will interpret
+numbers with a leading 0 character to mean that they should be
+interpreted as an octal integer.
+
+The extent handling functions in libext2fs have been improved so they
+have proper rollback when there is an error splitting an extent. Also
+fix a number of bugs when punching holes in files, and fix an
+off-by-one bug when inserting an extent into an empty inode.
+
+The libext2fs library now handles the support of BLOCK_UNINIT by
+clearing the portion of block bitmap when it is loaded, instead of
+when it is used. This reduces the chances of bugs, and and simplifies
+the code. It also means that debugfs will properly show that blocks
+in uninitialized block groups as being unused when using the testb
+command.
+
+The e4defrag program will try to use fadvise64 or posix_fadvise64() if
+it is present, which allows 64-bit offsets on 32-bit systems.
+
+
+E2fsprogs 1.42.9 (December 28, 2013)
+====================================
+
+Mke2fs will detect an attempt to create a file system on a loop
+mounted file and complain without the -FF option. Also fixed mke2fs
+so it allows the creation of a file system on a mounted device with
+two -F options, as documented in the man page, instead of three -F
+options.
+
+Fixed a large number of bugs in resize2fs, e2fsck, debugfs, and
+libext2fs to correctly handle bigalloc and 64-bit file systems. There
+were many corner cases that had not been noticed in previous uses of
+these file systems, since they are not as common. Some of the bugs
+could cause file system corruption or data loss, so users of 64-bit or
+bigalloc file systems are strongly urged to upgrade to e2fsprogs
+1.42.9.
+
+The tune2fs program will now not allow changing the uuid on a mounted
+file system which has the uninit_bg feature enabled. This avoids a
+nasty race where the kernel and tune2fs are both retrying rewrite the
+group descriptors at the same time, with different ideas about what
+the UUID should be.
+
+When e2fsck is rehashing an extent-mapped directory, it's possible
+(although very rare) that an extent block will need to be allocated;
+fix e2fsck to make sure that the block gets marked as used.
+
+Mke2fs will now properly set the LARGE_FILE feature when creating a
+journal >= 2GB --- which can happen when using 64k block size.
+
+Fixed debugfs so that its freei command will correctly handle a request
+to free a range of consecutive inodes.
+
+Fixed 2fsck so it will not erroneously complain that an external journal
+is invalid if it is exactly 2**32 blocks.
+
+Fixed e2fsck so it won't try checking for, and adding, a missing
+lost+found directory when running in read-only mode.
+
+Fixed e2image to avoid some buffer overruns which would cause it to when
+creating a "standard (non-raw, non-qcow2) image file. Standard
+e2image files are actually very rarely used, so we didn't notice when
+the changes to enable the qcow2 format broke this e2image mode.
+
+Fixed mke2fs so that the extended option "-E resize=NNN" will not turn
+on the resize_inode feature when the meta_bg feature is set, since
+these two features can not be set at the same time.
+
+Fixed tune2fs so that when it disables the quota feature, it updates all
+of the backup superblocks.
+
+Fixed dumpe2fs that would cause it to abort when run using an image file
+when trying to print the journal information (which is not present in
+an e2image created image file).
+
+Fixed a potential integer overflow in e2reefrag.
+(Addresses-Debian-Bug: #718205)
+
+Enhance debugfs so that when copying a sparse file from a native file
+system into the file system image using the "write" command, it will
+create a sparse file into the destination file system.
+
+Enhanced debugfs so it can support a command line which is up to 8k
+long.
+
+E2image will refuse (unless the -f option is specified to force the
+issue) to create a raw or qcow image using a mounted file system,
+unless the -f option is specified to force the issue.
+
+E2image has been optimized for using it to efficiently copy a file
+system by only copying the allocated blocks, by using the options -ra.
+New options (-o and -O) have been added so that a source and
+destination offset can be given. The -p option will print progress
+information so the user will know how far along the copy is going.
+And finally, the new option -c is useful for updating a file system on
+an SSD, by avoiding unnecessary writes. E2image can also shift a file
+system image by doing an in place move.
+
+Fix a regression introduced in 1.42.8 which would cause e2fsck to
+erroneously report uninitialized extents past the EOF (as determined by
+i_size) to be invalid.
+
+Fixed resize2fs so under a corner case when an inode has a complex
+extent tree, it will not corrupt an interior node in the extent tree.
+
+Fixed resize2fs which would sometimes corrupt a file system when
+shrinking a file system to a minimum size using resize2fs -M.
+(Addresses Debian Bug: #660793)
+
+Fixed resize2fs so that it will relocate inode table blocks if this
+becomes necessary when shrinking the file system.
+
+Fixed resize2fs and e2fsck so they will not crash when hit a failure
+while operating on a file system with the MMP feature enabled.
+
+Fixed a bug in debugfs which caused it create an invalid inode when
+trying to write a zero-length file.
+
+E2fsck will no longer crash if it tries to delete an invalid
+extent-mapped symlink.
+
+E2fsck will no longer crash if it comes across an directory which is
+larger than 2GB (which is not allowed in valid file systems).
+
+Fixed debugfs's help texts to fully document all options and otherwise
+be more helpful.
+
+Updated/fixed various man pages. (Addresses Debian Bugs: #586218,
+#669730, #698076)
+
+Fixed various Debian Packaging Issues (#698879, #721365)
+
+
+Programmer's Notes
+------------------
+
+Fix sparse, gcc -Wall and clang nits.
+
+Update config.{guess,sub} to the latest version
+
+Fixed various memory and file descriptor leaks on various error paths,
+as well as some missing error return checks, which were found using
+Coverity.
+
+Run sparse against source files when building e2fsprogs with 'make
+C=1'. If instead C=2, it configures basic ext2 types for bitwise
+checking with sparse, which can help find the (many many) spots where
+conversion errors are (possibly) happening.
+
+Allow the regression test to be run in chrooted environments where
+/etc/mtab might be missing.
+
+The ext2fs_punch() function, which was introduced in 1.42, was broken
+in many ways, but this was never noticed since it wasn't used for
+anything significant. Some of the bugs include failing when trying to
+punch a completely sparse file, failing when punching an extent-mapped
+inode when the starting block was at the beginning of the inode, and
+not being able to punch a single block (where start_blk == end_block).
+It also didn't handle being passed an invalid, too-large ending block
+number, and didn't handle properly terminate at the right place when
+operating on an indirect-mapped inode.
+
+Fixed some minor typo's in the error catalog for libext2fs.
+
+Fixed ext2fs_file_set_size2() so that if it truncates an inode by
+setting the file size, to zero the rest of the block to the end of the
+file, so that if an ext4 FUSE driver tries to extended the file, that
+we don't avoid stale data from being returned.
+
+Fixed ext2fs_bmap() to disallow clients from trying to map or set
+logical blocks which are larger than what an extent-mapped or indirect
+block-mapped inode can allow.
+
+If debugfs (or some userspace program using libext2fs) creates a file
+which is larger than 2GB, make sure the large_file feature flag gets
+set.
+
+Fix a bug in ext2fs_link() where if there is multiple empty slots in the
+directory which are large enough, the directory entry could get
+inserted more than once in the directory.
+
+If quota support is disabled (which is the default), make sure that
+all traces of the quota support is removed from usage messages, man
+pages, and tune2fs must not be able to enable the quota file system
+feature. (Addresses Red Hat Bugzilla: #1010709)
+
+The ext2fs_file_write() now updates i_size on a successful write,
+instead of only updating i_size wen the file is closed via
+ext2fs_file_close().
+
+Added a shell script, populate-extfs.sh which uses debugfs to populate
+an ext2/3/4 file system image from a given directory. It is similar
+to the genext2fs program, but it supports ext3 and ext4 file system.
+
+Add changes to the libext2fs library to support block group
+descriptors larger than 64 bytes (for future compatibility).
+
+Fixed an off-by-one bug in ext2fs_file_set_size2() so that it will not
+leave an extra block in the file when truncating the file down to
+size.
+
+The html version info pages are now built using makeinfo --html
+instead of the unmaintained and now-obsolete texi2html program.
+
+
+E2fsprogs 1.42.8 (June 20, 2013)
+================================
+
+As a part of mke2fs's option parsing cleanup, the use of the -R option
+will give a warning that it is depreated (it has been so documented
+since 2005) and -E should be used instead.
+
+Mke2fs will not give warnings about the bigalloc and quota options in
+quiet mode.
+
+If an invalid journal size is given to mke2fs, it will now complain
+and exit sooner.
+
+Debugfs was erroneously giving spurious error messages for certain
+extent_inode subcommands which take arguments (split_node,
+replace_node, and insert_node). This has been fixed.
+
+Fix the parsing of the 's' (sectors) in parse_num_blocks2, which among
+other programs is used by mke2fs.
+
+Change mke2fs so that it does not set the root directory to the real
+uid/gid of the mke2fs process. Add the extended option root_owner to
+override this behavior.
+
+Fix resize2fs when shrinking file systems to make sure that bitmap
+blocks aren't left outside the bounds of the shrunken file system.
+This could happen with flex_bg file systems that were grown using
+the old online resizing algorithm.
+
+E2fsck will now detect and repair corrupted extent trees which contain
+invalid extents at the end of the extent tree leaf block.
+
+E2fsck will now longer complain about zero length extended attribute
+values.
+
+Fix a regression introduced in e2fsprogs v1.42 which caused e2image -s
+to crash.
+
+Add safety check so tune2fs will not attempt to set the inode size to
+be larger than the block size.
+
+Fix e2fsck so it can check a read-only root file system with an
+external journal. (Addresses Debian Bug: #707030
+
+Fix off-line resizing of file systems with flex_bg && !resize_inode
+(Addresses Debian Bug: #696746)
+
+Fix e2image with large (> 32-bit) file systems (Addresses Debian Bug:
+#703067)
+
+Enhance chattr to allow clearing the extent flag if the kernel allows
+migrating extent based files to use indirect blocks.
+
+Update German translation.
+
+Updated/fixed various man pages. (Addresses Debian Bugs: #712429,
+#712430, #707609)
+
+Fixed various Debian Packaging Issues (Addresses Debian Bug #708307)
+
+Programmer's Notes
+------------------
+
+Use secure_getenv() in preference to __secure_getenv().
+
+Optimize CPU utilization of ext2fs_bg_has_super().
+
+Fix ext2fs_llseek() on 32-bit i386 systems to work correctly when
+SEEK_CUR is used with large files.
+
+The ext2fs_read_inode_full() function will no longer use
+fs->read_inode() if the caller has requested more than the base 128
+byte inode structure and the inode size is greater than 128 bytes.
+
+Fix build failure with --enable-jbd-debug.
+
+Clean up filtering of outputs for the regression tests by using a
+common sed script.
+
+Fix gcc -Wall and clang nits.
+
+
+E2fsprogs 1.42.7 (January 21, 2013)
+===================================
+
+Add warnings to mke2fs, resize2fs, and tune2fs that the bigalloc and
+quota features are still under development. For more information
+please see:
+ * https://ext4.wiki.kernel.org/index.php/Bigalloc
+ * https://ext4.wiki.kernel.org/index.php/Quota
+
+Add some new options to filefrag from Lustre's patches to e2fsprogs:
+ * add -k option to print extents in kB-sized units (like df -k)
+ * add -b {blocksize} to print extents in blocksize units
+ * add -e option to print extent format, even when FIBMAP is used
+ * add -X option to print extents in hexadecimal format
+
+Fix resize2fs so that it can handle off-line resizes of file systems
+with the flex_bg feature but without a resize_inode (or if we run out
+of reserved gdt blocks). This also fixes a problem where if the user
+creates a filesystem with a restricted number of reserved gdt blocks,
+an off-line resize which grows the file system could potentially
+result in file system corruption.
+
+Fix a resize2fs bug which could cause it to corrupt bigalloc file
+systems when doing an off-line resize.
+
+Further optimize resize2fs so it doesn't use quite as much CPU when
+resizing very large file systems.
+
+Fixed 32-bit overflow bugs which could cause resize2fs to fail and
+possibly corrupt the file system while resizing 64-bit file systems.
+
+Fix a bug in mke2fs where parsing "-E resize=NNN" will result in a
+mke2fs crash due to a divide-by-zero if the 64bit file system feature
+is enabled.
+
+Add better error checking to mke2fs to check for invalid parameters
+when creating bigalloc file system.
+
+When creating bigalloc filesystems, the -g option to mke2fs will now
+specify the number of clusters per block group.
+
+Add to debugfs the functionality to corrupt a specific file system
+block via the "zap_block" command.
+
+Add to debugfs the functionality to print out a hex dump of a block in
+the file system via the "block_dump" command.
+
+Add to debugfs the functionality to manipulate the extent tree
+directly via the "extent_open" command.
+
+Fixed debugfs's mknod command so that it updates the block group
+statistics.
+
+Fix e2fsck so it can detect and fix inconsistencies in the interior
+nodes of an inode's extent tree.
+
+Fix a potential memory corruption failure in e2fsck's error path if
+the call to ext2fs_open2() fails.
+
+Fix e2fsck if its logging function is enabled in e2fsck.conf, and the
+resulting file name for the log file is longer than 100 bytes, that it
+properly handles this situation instead of crashing.
+
+E2fsck will now report the amount of memory that it attempted to
+allocate when a memory allocation request fails, to make it easier to
+track down the problem.
+
+Fix mke2fs's handling of the mmp_update_interval option. (Addresses
+Lustre Bug: LU-1888)
+
+E2image can now include all data blocks in the e2image output file
+when the user specifies the -a option.
+
+If e2fsprogs is compiled without --enable-quota, make sure that
+tune2fs can not turn on the feature for new-style quota support, since
+afterwards, none of the e2fsprogs tools will be willing to touch that
+file system.
+
+Optimize e2fsck's so that it uses much less CPU for large file
+systems. This can result in significant speedups, especially on
+CPU-constrained systems. This was primarily done by optimizing
+libext2fs's bitmap functions. (Addresses Google Bug: #7534813)
+
+Fix debugfs's htree command so that all its messages are sent through
+the pager.
+
+Fixed debugfs's "dump_file" and "cat" functions work correctly
+on file systems whose block size is greater than 8k.
+
+Fix e2freefrag so it works on 64-bit file systems, and so it uses much
+less memory. (Addresses Google Bug: 7269948)
+
+Update the spd_readdir.c file in the contrib directory to include some
+additions which were made in 2008 that didn't get folded into the
+version which we checked into the e2fsprogs source tree. These
+enhancements include thread safety, support for readdir64_r(), and
+safe_getenv() support in case spd_readdir.so is used for setuid binaries.
+
+Update Czech, Dutch, French, German, Polish, Sweedish, and Vietnamese
+translations
+
+Add a command to debugfs to create symlinks.
+
+Document the bigalloc feature in the mke2fs man page. (Addresses
+Debian Bug: #669730)
+
+
+Programmer's Notes
+------------------
+
+Fix gcc -Wall nits.
+
+Fix a spelling typo in the libext2fs texinfo documentation.
+
+Change the output from "make check" so that tools such as emacs's "M-x
+compile" does not mistake the output as containing a compiler error.
+
+Export two new functions from libext2fs: ext2fs_extent_node_split()
+and ext2fs_extent_goto2().
+
+The ext2fs_extents_fix_parents() was fixed so it does not modify the
+location of the extent handle if its current location is at an
+interior node, rather than a leaf node of an inode's extent tree.
+
+Add a regression test to assure that e2fsck can correctly fix an
+inconsistent interior node in an inode's extent tree.
+
+The ext2fs_{mark,unmark,test}_block_bitmap_range2() functions now
+correctly support bigalloc file systems which use store block usage
+information in units of clusters.
+
+Fixed the help text in the configure script for --enable-quota.
+
+The m68k-specific bitops code has been removed since they were
+incorrectly treating bit numbers with the high bit set as signed
+integers. Furthermore, modern compilers do a good enough job
+optimizing the generic code there is no point in having the m68k
+specific asm statements.
+
+Fixed how we link the test programs so they always use the static
+libraries, so that we test using the libraries which we have just
+built.
+
+Update config.guess and config.sub to the latest versions from the GNU
+project.
+
+Fixed the com_err.texinfo file so that it can produce a valid
+postscript/pdf printed output.
+
+Add a regression test which checks debugfs's ability to create
+symlinks, named FIFO's, and device nodes.
+
+Add a function ext2fs_symlink(), which creates symlinks to the
+libext2fs library.
+
+Add debugging code so we can test old kernel interfaces for online
+resize to resize2fs. This backwards compatibility checking is keyed
+off of the RESIZE2FS_KERNEL_VERSION, which is designed to allow us to
+test the functionality of the kernel's older resize ioctls without
+needing to install an old version of resize2fs, and to also test a
+modern resize2fs's ability to work with older kernels without having
+to install an older version of the kernel.
+
+
+E2fsprogs 1.42.6 (September 21, 2012)
+=====================================
+
+When mke2fs creates file systems with lazy itable initialization, the
+progress updates for writing the inode table happens so quickly that
+on a serial console, the time to write the progress updates can be the
+bottleneck. So mke2fs will now only update its progress indicators
+once a second.
+
+Resize2fs will skip initializing the inode tables if the kernel
+supports lazy_itable_init, which speeds up growing off-line growth of
+uninit_bg file systems significantly. Resize2fs will now also
+correctly set the itable_unused field in the block group descriptor to
+speed up the first e2fsck after the file system is grown.
+
+Resize2fs has been fixed so that on-line resizing of meta_bg file
+systems work correctly. This is needed to grow file system which are
+larger than 16T.
+
+Resize2fs will now correctly handle resizing file systems to 16TB on
+32-bit file systems when "16TB" is specified on the command line.
+
+Fix mke2fs so that it will be careful to set the reserved blocks ratio
+larger than 50%; this can happen when creating small file systems and
+when the last block group is dropped because there are not enough
+blocks to support the metadata blocks in the last block group.
+
+Fixed spelling mistake in debugfs's help message.
+
+Fixed a potential seg fault in e2fsck when there is an I/O error while
+reading the superblock.
+
+Fixed various Debian Packaging Issues (Addresses Debian Bug #677497)
+
+Updated/fixed various man pages. (Addresses Sourceforge Bug:
+#3559210)
+
+Programmer's Notes
+------------------
+
+The configure option --enable-relative-symlink was broken so that it
+needed to be --enable-symlink-relative-symlinks. We will support both
+for at least two years, but then the worng configure option will be
+removed.
+
+Fixed a regression introduced in 1.42.5 so the link order for
+e2fsprogs' libraries will be correct for both static and shared
+linking. (Addresses Sourceforge Bug: #3554345)
+
+Add support for e2fsprogs to be compiled using clang/LLVM.
+
+Fix portability problems on non-Linux systems: avoid compile failures
+on systems that don't have malloc.h
+
+Fix f_mmp regression test suite so that debugfs gets killed if the
+test is interrupted.
+
+
+
+E2fsprogs 1.42.5 (July 29, 2012)
+================================
+
+Fixed a bug with mke2fs where if there is only 8 inodes per block
+group, the calculation of the number of uninitialized inodes in the
+first block group would go negative. This resulted in "mke2fs -N 256
+-t ext4 /tmp/foo.img 256m" trying to write so many blocks that /tmp
+would run out of space. (Addresses Sourceforge Bug: #3528892)
+
+Fixed a bug in how e2fsck would uniquify directory entry names.
+(AddressesSourceforge Bug: #3540545)
+
+Previously, e2fsck would only allow a mounted file system to be
+checked if it was the root file system and it was mounted read-only.
+Now it will allow any file system mounted read-only to be checked if
+the -f option is specified. This makes it easier to test how e2fsck
+handles checking file systems which are mounted without having to test
+on the root file system.
+
+Fixed a problem if e2fsck where if the root file system is mounted
+read-only, e2fsck would not clear an error indication in the journal
+superblock. Combined with a kernel bug, this would cause the e2fsck
+to check the file system after every single boot.
+
+The e4defrag program can now handle device symlinks, such as
+/dev/mapper/testvg-testlv, instead of insisting on a less
+human-friendly name such as /dev/dm-2. (Addresses Red Hat Bugzilla:
+#707209)
+
+Fixed filefrag so it will not crash with a segfault on files from a
+virtual file system such as /proc. (e.g., "filefrag
+/proc/partitions")
+
+Fixed filefrag so that it correctly reports the number of extents.
+(Addresses Red Hat Bugzilla: #840848)
+
+Fixed a file descriptor leak in logsave which could cause it to hang.
+(Addresses Debian Bug: #682592)
+
+Fixed e2fsck so that the file system is marked as containing an error
+if the user chooses not to fix the quota usage information.
+
+Fixed tune2fs so that it correctly removes the quota feature when the
+last quota inode is removed.
+
+Fix tune2fs so that after removing a quota inode, the block bitmap is
+updated; otherwise, e2fsck would complain after running 'tune2fs -O
+^quota <dev>'.
+
+Fix tune2fs so that when converting a file system from using legacy
+quota files to the new quota file system feature with hidden quota
+files, the accounting for these files is handled correctly so that
+e2fsck doesn't complain.
+
+Improved e2fsck's verbose reporting statistics, and allow the more
+verbose reporting to be enabled via /etc/e2fsck.conf.
+
+Fixed various Debian Packaging Issues (Addresses Debian Bug #678395)
+
+Updated/fixed various man pages. (Addresses Debian Bugs: #680114)
+
+
+Programmer's Notes
+------------------
+
+Fixed portability problems on other operating systems (e.g., Hurd and
+FreeBsd) caused by the attempted inclusion of <sys/quota.h>.
+
+Make sure that shared libraries link with the shared libraries built
+in the build tree, instead of the system provided libraries.
+Previously, libraries and executables were linked with the system
+libraries if present, and possibly using static archives instead of
+shared libraries. This was also problematic since if libext2fs.so is
+linked with a static libcom_err.a from system, the build system would
+attempt to link without -lpthread. (Addresses Sourceforge Bug:
+#3542572)
+
+
+E2fsprogs 1.42.4 (June 12, 2012)
+================================
+
+Fixed more 64-bit block number bugs (which could end up corrupting
+file systems!) in e2fsck, debugfs, and libext2fs.
+
+Fixed e2fsck's handling of the journal's s_errno field. E2fsck was
+not properly propagating the journal's s_errno field to the superblock
+field; it was not checking this field if the journal had already been
+replayed, and if the journal *was* being replayed, the "error bit"
+wasn't getting flushed out to disk.
+
+Fixed a false positive complaint by e2fsck if all of the extents in
+the last extent tree block are uninitalized and located after the end
+of the file as defined by i_size.
+
+The dumpe2fs will now display the journal's s_errno field if it is
+non-zero, and it will also display the journal's 64-bit feature flag
+if present.
+
+Fix e2fsck so that it always opens the device file in exclusive mode
+when it might need to modify the file system, and never if the -n
+option is specified. (Previously, there were a few corner cases where
+it might get things wrong in either direction.)
+
+E2fsck now correctly truncates or deallocates extent-mapped inodes on
+the orphan list. The root cause was a bug in libext2fs's block
+iterator which could end up skipping an extent when the last block in
+an extent is removed, causing the current extent to be removed from
+the extent tree.
+
+E2fsck now correctly sets the global free block and inode counts when
+truncating or removing inodes on the orphan list in preen mode.
+Previously, it would leave these values would be set incorrectly,
+which is largely a cosmetic issue since the kernel no longer pays
+attention to those fields, but it can cause spurious complaints in
+subsequent e2fsck runs.
+
+Fix i_blocks accounting when the libext2fs library needs to add or
+remove an extent tree block on bigalloc file systems.
+
+The lsattr and chattr programs now support the No_COW flag for the
+benefit of btrfs.
+
+Debugfs now interprets date strings of the form @ddd as ddd seconds
+after the beginning of the epoch. This is handy when setting an inode
+number into the d_time field when debugging orphan list handling.
+
+Fix a precedence bug with built-in quota support which might result in
+e2fsck paying attention to the quota inode field even if the built-in
+quota feature flag is not set. Fortunately, in practice that
+superblock field should be zero for non-built-in quota file systems,
+so it's unlikely this bug would have caused problems.
+
+Updated/fixed various man pages. (Addresses Debian Bugs: #674453,
+#674694)
+
+Programmer's Notes
+------------------
+
+The regression test suite can now run the integration tests in the
+tests directory in parallel, via "make -jN check".
+
+Add new test, f_zero_extent_length which tests e2fsck's handling of
+the case where all of the extents in the last extent tree block are
+uninitialized extents after i_size.
+
+Add a new test, f_jnl_errno, which checks handling of an error
+indication set in the journal superblock.
+
+Fix the test f_jnl_64bit so that it properly checks e2fsck's handling
+of a 64-bit journal.
+
+Add two tests, f_orphan_indirect_inode and f_orphan_extent_inode which
+tests e2fsck's handling of orphan inodes in preen mode, and truncation
+of extent inodes on the orphan list.
+
+Fixed more OS X portability issues.
+
+
+E2fsprogs 1.42.3 (May 14, 2012)
+===============================
+
+Fix a bug in the Unix I/O manager which could cause corruption of file
+systems with more than 16TB when e2fsprogs is compiled in 32-bit mode
+(i.e., when unsigned long is 32-bits). Also fix a bug which caused
+dumpe2fs to incorrectly display block numbers > 32-bits.
+
+Improve the support for integrated quota files (where quota is a first
+class supported feature using hidden files in the ext4 file system).
+Previously the quota file was getting rewritten even when it was not
+necessary, and e2fsck would erroneously try to hide quota files which
+were already hidden.
+
+Quiet complaints in e2fsck when the total free blocks or inodes are
+incorrect in the superblock after an system crash, since we don't
+update nor depend on the superblock summaries at each commit boundary.
+
+Fixed a regression introduced in 1.42.2 which would cause applications
+outside of e2fsprogs which did not pass the EXT2_FLAG_64BIT (and so
+would were still using the legacy 32-bit bitmaps) to crash. This was
+due to missing 32-bit compat code in side the function
+ext2fs_find_first_zero_generic_bmap(). (Addresses Red Hat Bugzilla:
+#808421)
+
+Fix a bug which would cause mke2fs to fail creating the journal if
+/etc/mtab and /proc/mounts are missing. (Addresses Sourceforge Bug:
+#3509398)
+
+Updated/fixed various man pages.
+
+Update Czech, Dutch, French, German, Polish, Sweedish, and Vietnamese
+translations
+
+Fixed various Debian Packaging issues.
+
+
+Programmer's Notes
+------------------
+
+Change the nonsensically wrong types in the function signature of the
+inline function ext2fs_find_first_zero_block_bitmap2(). This was
+caused by a cut and paste error; fortunately no code in e2fsprogs used
+this inline function, and there are any users of this functions
+outside of e2fsprogs.
+
+Add support for systems which have valloc(), but which do have
+posix_memalign() nor memalign() (such as MacOS 10.5).
+
+Refactor and clean up the allocation of aligned buffers for Direct I/O
+support. Previously some allocations were requesting a greater
+alignment factor that what was strictly necessary. Also optimize
+reading and writing bitmaps using Direct I/O when the size of the
+bitmap did not fully cover the file system blocksize.
+
+Reserve the codepoints for the INCOMPAT features LARGEDATA and
+INLINEDATA.
+
+Improved the regression test suite by adding some new integration
+tests (f_jnl_32bit, f_jnl_64bit) which detect breakage of the on-disk
+jbd2 format, as well as f_eofblocks which tests the new handling of
+uninitialized and initialized blocks beyond i_size. Also add a new
+unit test which verifies 32-bit bitmaps support and the new
+find_first_zero primitives.
+
+Add a few dependencies to fix parallel (make -j) builds.
+
+Removed bash'isms which were breaking the regression test suite on
+systems where /bin/sh is not bash.
+
+The config.guess and config.sub have been updated to the 2012-02-10
+version.
+
+Fix a portability problem caused by assuming the present of mntent.h
+means that setmntent() exists. Instead, explicitly test for this in
+the configure script.
+
+If the sys/signal.h header file does not exist, don't try to include
+it, since it's not available on all systems.
+
+Add support for systems that do not support getpwuid_r()
+
+The configure script now supports a new option,
+--enable-relative-symlinks, which will install relative symlinks for
+the ELF shared library files. (Addresses Sourceforge Bug: #3520767).
+
+When building BSD shared libraries make sure the LDFLAGS variable is
+passed to the linker. Fixing this allows, for example, e2fsprogs to
+be built in 32-bit mode on Mac OS X Lion (Addresses Sourceforge Bug:
+#3517272)
+
+Fix gcc -Wall nitpicks
+
+
E2fsprogs 1.42.2 (March 27, 2012)
=================================
diff --git a/config/config.guess b/config/config.guess
index da833146..9afd6762 100755..100644
--- a/config/config.guess
+++ b/config/config.guess
@@ -1,14 +1,12 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2009-04-27'
+timestamp='2013-11-29'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -17,26 +15,22 @@ timestamp='2009-04-27'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner.
#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -56,8 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -139,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ ;;
+esac
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
@@ -170,7 +184,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
+ | grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@@ -180,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
@@ -201,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -223,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -269,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
@@ -295,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
+ echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -333,6 +354,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
SUN_ARCH="i386"
@@ -391,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@@ -477,8 +501,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -491,7 +515,7 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
@@ -548,7 +572,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
- *:AIX:*:[456])
+ *:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
@@ -591,52 +615,52 @@ EOF
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
+ esac ;;
+ esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -656,7 +680,7 @@ EOF
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
+ grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
@@ -727,22 +751,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@@ -766,14 +790,14 @@ EOF
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -785,34 +809,39 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- *:Interix*:[3456]*)
- case ${UNAME_MACHINE} in
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
- EM64T | authenticamd | genuineintel)
+ authenticamd | genuineintel | EM64T)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
@@ -822,6 +851,9 @@ EOF
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -842,210 +874,157 @@ EOF
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
- mips:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips
- #undef mipsel
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- mips64:Linux:*:*)
+ mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
- #undef mips64
- #undef mips64el
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
+ CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- or32:Linux:*:*)
- echo or32-unknown-linux-gnu
+ or1k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ or32:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
+ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^LIBC/{
- s: ::g
- p
- }'`"
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
- ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
@@ -1053,11 +1032,11 @@ EOF
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
+ # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
@@ -1074,7 +1053,7 @@ EOF
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
@@ -1089,7 +1068,7 @@ EOF
fi
exit ;;
i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@@ -1117,13 +1096,13 @@ EOF
exit ;;
pc:*:*:*)
# Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
- exit ;;
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@@ -1158,8 +1137,8 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
@@ -1182,7 +1161,7 @@ EOF
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
@@ -1202,10 +1181,10 @@ EOF
echo ns32k-sni-sysv
fi
exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
@@ -1231,11 +1210,11 @@ EOF
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv${UNAME_RELEASE}
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@@ -1248,6 +1227,9 @@ EOF
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@@ -1274,9 +1256,31 @@ EOF
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
+ fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1290,7 +1294,10 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
@@ -1335,13 +1342,13 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@@ -1359,11 +1366,11 @@ EOF
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
esac
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
@@ -1381,11 +1388,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
diff --git a/config/config.sub b/config/config.sub
index a39437d0..61cb4bc2 100755..100644
--- a/config/config.sub
+++ b/config/config.sub
@@ -1,44 +1,40 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2009-04-17'
+timestamp='2013-10-01'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
@@ -72,8 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -120,13 +115,18 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
@@ -149,10 +149,13 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray)
+ -apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
+ -bluegene*)
+ os=-cnk
+ ;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@@ -167,10 +170,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
@@ -215,6 +218,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
@@ -239,20 +248,28 @@ case $basic_machine in
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
+ | aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
+ | epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -270,32 +287,45 @@ case $basic_machine in
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
- | nios | nios2 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | or32 \
+ | open8 \
+ | or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
+ | rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | v850 | v850e \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -305,6 +335,21 @@ case $basic_machine in
basic_machine=mt-unknown
;;
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@@ -319,25 +364,31 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
+ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | be32-* | be64-* \
| bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
+ | le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -355,28 +406,34 @@ case $basic_machine in
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
- | nios-* | nios2-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
- | romp-* | rs6000-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
| tron-* \
- | v850-* | v850e-* | vax-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
@@ -401,7 +458,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@@ -467,11 +524,24 @@ case $basic_machine in
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
c90)
basic_machine=c90-cray
os=-unicos
;;
- cegcc)
+ cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
@@ -503,7 +573,7 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16)
+ cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
@@ -661,7 +731,6 @@ case $basic_machine in
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
@@ -719,8 +788,15 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
+ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
@@ -755,10 +831,18 @@ case $basic_machine in
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
+ msys)
+ basic_machine=i686-pc
+ os=-msys
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -823,6 +907,12 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -905,9 +995,10 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
- ppc) basic_machine=powerpc-unknown
+ ppc | ppcbe) basic_machine=powerpc-unknown
;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@@ -932,7 +1023,11 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
basic_machine=i386-pc
os=-rdos
;;
@@ -1001,6 +1096,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
@@ -1057,20 +1155,8 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tic55x | c55x*)
- basic_machine=tic55x-unknown
- os=-coff
- ;;
- tic6x | c6x*)
- basic_machine=tic6x-unknown
- os=-coff
- ;;
tile*)
- basic_machine=tile-unknown
+ basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
@@ -1140,6 +1226,9 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
ymp)
basic_machine=ymp-cray
os=-unicos
@@ -1237,9 +1326,12 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases
+ # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
@@ -1260,22 +1352,23 @@ case $os in
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -kopensolaris* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1283,7 +1376,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1322,7 +1415,7 @@ case $os in
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
@@ -1371,7 +1464,7 @@ case $os in
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
@@ -1407,15 +1500,14 @@ case $os in
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
-dicos*)
os=-dicos
;;
+ -nacl*)
+ ;;
-none)
;;
*)
@@ -1438,10 +1530,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
+ score-*)
os=-elf
;;
- spu-*)
+ spu-*)
os=-elf
;;
*-acorn)
@@ -1453,8 +1545,23 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ c8051-*)
+ os=-elf
+ ;;
+ hexagon-*)
+ os=-elf
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
@@ -1474,14 +1581,11 @@ case $basic_machine in
;;
m68000-sun)
os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
;;
m68*-cisco)
os=-aout
;;
- mep-*)
+ mep-*)
os=-elf
;;
mips*-cisco)
@@ -1490,6 +1594,9 @@ case $basic_machine in
mips*-*)
os=-elf
;;
+ or1k-*)
+ os=-elf
+ ;;
or32-*)
os=-coff
;;
@@ -1508,7 +1615,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
@@ -1613,7 +1720,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
- -aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
-beos*)
diff --git a/config/parse-types.sh b/config/parse-types.sh
index d7cb9cc1..24d2a990 100755
--- a/config/parse-types.sh
+++ b/config/parse-types.sh
@@ -16,8 +16,15 @@ if test -z "$CPP"; then
CPP="$CC -E"
fi
-echo '#include <asm/types.h>' | $CPP - | \
- sed -f sed.script | grep '^#' > asm_types.h
+/bin/echo -n "checking for __uNN types... "
+# can't check [ -f /usr/include/asm/types.h ] directly, since
+# the include path might be different if cross-compiling
+if echo '#include <asm/types.h>' | $CPP - 2> parse-types.log | \
+ sed -f sed.script | grep '^#' > asm_types.h; then
+ echo "using <asm/types.h>"
+else
+ echo "using generic types"
+fi
rm sed.script
@@ -26,83 +33,83 @@ cp asm_types.h asm_types.c
cat >> asm_types.c <<EOF
#include <stdio.h>
#include <stdlib.h>
-main(int argc, char **argv)
+int main(int argc, char **argv)
{
#ifdef __U8_TYPEDEF
if (sizeof(__U8_TYPEDEF) != 1) {
printf("Sizeof(__U8__TYPEDEF) is %d should be 1\n",
- sizeof(__U8_TYPEDEF));
+ (int) sizeof(__U8_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __U8_TYPEDEF not defined
#endif
#ifdef __S8_TYPEDEF
if (sizeof(__S8_TYPEDEF) != 1) {
printf("Sizeof(_S8__TYPEDEF) is %d should be 1\n",
- sizeof(__S8_TYPEDEF));
+ (int) sizeof(__S8_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __S8_TYPEDEF not defined
#endif
#ifdef __U16_TYPEDEF
if (sizeof(__U16_TYPEDEF) != 2) {
printf("Sizeof(__U16__TYPEDEF) is %d should be 2\n",
- sizeof(__U16_TYPEDEF));
+ (int) sizeof(__U16_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __U16_TYPEDEF not defined
#endif
#ifdef __S16_TYPEDEF
if (sizeof(__S16_TYPEDEF) != 2) {
printf("Sizeof(__S16__TYPEDEF) is %d should be 2\n",
- sizeof(__S16_TYPEDEF));
+ (int) sizeof(__S16_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __S16_TYPEDEF not defined
#endif
#ifdef __U32_TYPEDEF
if (sizeof(__U32_TYPEDEF) != 4) {
printf("Sizeof(__U32__TYPEDEF) is %d should be 4\n",
- sizeof(__U32_TYPEDEF));
+ (int) sizeof(__U32_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __U32_TYPEDEF not defined
#endif
#ifdef __S32_TYPEDEF
if (sizeof(__S32_TYPEDEF) != 4) {
printf("Sizeof(__S32__TYPEDEF) is %d should be 4\n",
- sizeof(__S32_TYPEDEF));
+ (int) sizeof(__S32_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __S32_TYPEDEF not defined
#endif
#ifdef __U64_TYPEDEF
if (sizeof(__U64_TYPEDEF) != 8) {
printf("Sizeof(__U64__TYPEDEF) is %d should be 8\n",
- sizeof(__U64_TYPEDEF));
+ (int) sizeof(__U64_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __U64_TYPEDEF not defined
#endif
#ifdef __S64_TYPEDEF
if (sizeof(__S64_TYPEDEF) != 8) {
printf("Sizeof(__S64__TYPEDEF) is %d should be 8\n",
- sizeof(__S64_TYPEDEF));
+ (int) sizeof(__S64_TYPEDEF));
exit(1);
}
-#else
+#elif defined(__linux__)
#warning __S64_TYPEDEF not defined
#endif
- exit(0);
+ return 0;
}
EOF
@@ -111,8 +118,10 @@ if ./asm_types
then
true
else
- echo "Problem detected with asm_types.h"
- echo "" > asm_types.h
+ if [ "${CROSS_COMPILE}" != "1" ]; then
+ echo "Problem detected with asm_types.h"
+ echo "" > asm_types.h
+ fi
fi
rm asm_types.c asm_types
diff --git a/configure b/configure
index 8cb332cd..1b0ee620 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,9 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65.
+# Generated by GNU Autoconf 2.69.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -89,6 +87,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -133,6 +132,31 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -166,7 +190,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -211,14 +236,25 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
@@ -316,10 +352,18 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -356,19 +400,19 @@ else
fi # as_fn_arith
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -441,6 +485,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -475,16 +523,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -496,28 +544,8 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -530,7 +558,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1
# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
@@ -612,6 +640,7 @@ LINUX_CMT
UNI_DIFF_OPTS
SEM_INIT_LIB
SOCKET_LIB
+SIZEOF_OFF_T
SIZEOF_LONG_LONG
SIZEOF_LONG
SIZEOF_INT
@@ -686,6 +715,7 @@ DEPSTATIC_LIBQUOTA
STATIC_LIBQUOTA
DEPLIBQUOTA
LIBQUOTA
+QUOTA_MAN_COMMENT
BLKID_CMT
DEPPROFILED_LIBBLKID
PROFILED_LIBBLKID
@@ -713,8 +743,10 @@ BSDLIB_CMT
ELF_CMT
HTREE_CMT
Q
+ES
E
LINK_BUILD_FLAGS
+SYMLINK_RELATIVE
LINK_INSTALL_FLAGS
MAINTAINER_CMT
CPP
@@ -795,6 +827,8 @@ with_ldopts
with_root_prefix
enable_maintainer_mode
enable_symlink_install
+enable_relative_symlinks
+enable_symlink_relative_symlinks
enable_symlink_build
enable_verbose_makecmds
enable_compression
@@ -802,6 +836,7 @@ enable_htree
enable_elf_shlibs
enable_bsd_shlibs
enable_profile
+enable_gcov
enable_checker
enable_jbd_debug
enable_blkid_debug
@@ -809,6 +844,7 @@ enable_testio_debug
enable_libuuid
enable_libblkid
enable_quota
+enable_backtrace
enable_debugfs
enable_imager
enable_resizer
@@ -897,8 +933,9 @@ do
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
@@ -943,7 +980,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -969,7 +1006,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1173,7 +1210,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1189,7 +1226,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1219,8 +1256,8 @@ do
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
@@ -1228,7 +1265,7 @@ Try \`$0 --help' for more information."
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1238,7 +1275,7 @@ Try \`$0 --help' for more information."
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
@@ -1246,13 +1283,13 @@ done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error "missing argument to $ac_option"
+ as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1275,7 +1312,7 @@ do
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
@@ -1289,8 +1326,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1305,9 +1340,9 @@ test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error "working directory cannot be determined"
+ as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error "pwd does not report name of working directory"
+ as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
@@ -1346,11 +1381,11 @@ else
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1390,7 +1425,7 @@ Configuration:
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
@@ -1449,6 +1484,8 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-maintainer-mode enable makefile rules useful for maintainers
--enable-symlink-install use symlinks when installing instead of hard links
+ --enable-relative-symlinks use relative symlinks when installing
+
--enable-symlink-build use symlinks while building instead of hard links
--enable-verbose-makecmds enable verbose make command output
--enable-compression enable EXPERIMENTAL compression support
@@ -1456,13 +1493,15 @@ Optional Features:
--enable-elf-shlibs select ELF shared libraries
--enable-bsd-shlibs select BSD shared libraries
--enable-profile build profiling libraries
+ --enable-gcov build for coverage testing using gcov
--enable-checker build checker libraries
--enable-jbd-debug enable journal debugging
--enable-blkid-debug enable blkid debugging
--disable-testio-debug disable the use of the test I/O manager for debugging
--disable-libuuid do not build private uuid library
--disable-libblkid do not build private blkid library
- --enable-libquota enable quota support
+ --enable-quota enable quota support
+ --disable-backtrace disable use backtrace
--disable-debugfs disable support of debugfs program
--disable-imager disable support of e2image program
--disable-resizer disable support of e2resize program
@@ -1568,9 +1607,9 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
configure
-generated by GNU Autoconf 2.65
+generated by GNU Autoconf 2.69
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1614,7 +1653,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
@@ -1646,7 +1685,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -1660,7 +1699,7 @@ fi
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
@@ -1686,7 +1725,7 @@ $as_echo "$ac_try_echo"; } >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } >/dev/null && {
+ test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
@@ -1697,7 +1736,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
@@ -1739,7 +1778,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
@@ -1753,7 +1792,7 @@ ac_fn_c_check_type ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
eval "$3=no"
@@ -1794,7 +1833,7 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
@@ -1807,7 +1846,7 @@ ac_fn_c_check_header_compile ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1825,7 +1864,7 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
@@ -1837,7 +1876,7 @@ ac_fn_c_check_func ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1892,7 +1931,7 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
@@ -1904,10 +1943,10 @@ $as_echo "$ac_res" >&6; }
ac_fn_c_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ if eval \${$3+:} false; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
@@ -1943,7 +1982,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
else
ac_header_preproc=no
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
@@ -1970,7 +2009,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
@@ -1979,7 +2018,7 @@ eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_mongrel
@@ -2000,7 +2039,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2016,7 +2056,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2042,7 +2083,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2058,7 +2100,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2092,7 +2135,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2156,7 +2200,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
rm -f conftest.val
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_compute_int
@@ -2170,7 +2214,7 @@ ac_fn_c_check_member ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
$as_echo_n "checking for $2.$3... " >&6; }
-if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$4+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2214,19 +2258,22 @@ fi
eval ac_res=\$$4
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
-# ac_fn_c_check_decl LINENO SYMBOL VAR
-# ------------------------------------
-# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
ac_fn_c_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
-$as_echo_n "checking whether $2 is declared... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2235,8 +2282,12 @@ $4
int
main ()
{
-#ifndef $2
- (void) $2;
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
#endif
;
@@ -2253,7 +2304,7 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_decl
cat >config.log <<_ACEOF
@@ -2261,7 +2312,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2371,11 +2422,9 @@ trap 'exit_status=$?
{
echo
- cat <<\_ASBOX
-## ---------------- ##
+ $as_echo "## ---------------- ##
## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
@@ -2409,11 +2458,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- cat <<\_ASBOX
-## ----------------- ##
+ $as_echo "## ----------------- ##
## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
@@ -2426,11 +2473,9 @@ _ASBOX
echo
if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
+ $as_echo "## ------------------- ##
## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
@@ -2444,11 +2489,9 @@ _ASBOX
fi
if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
+ $as_echo "## ----------- ##
## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
echo
cat confdefs.h
echo
@@ -2503,7 +2546,12 @@ _ACEOF
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
@@ -2518,7 +2566,11 @@ do
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
fi
done
@@ -2597,7 +2649,7 @@ if $ac_cache_corrupted; then
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -2613,16 +2665,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_aux_dir=
for ac_dir in config "$srcdir"/config; do
- for ac_t in install-sh install.sh shtool; do
- if test -f "$ac_dir/$ac_t"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/$ac_t -c"
- break 2
- fi
- done
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
done
if test -z "$ac_aux_dir"; then
- as_fn_error "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -2697,29 +2755,44 @@ $as_echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}" >&6; }
+WITH_DIET_LIBC=
+
+# Check whether --with-diet-libc was given.
+if test "${with_diet_libc+set}" = set; then :
+ withval=$with_diet_libc; CC="diet cc -nostdinc"
+WITH_DIET_LIBC=yes
+if test -z "$LIBS"
+then
+ LIBS="-lcompat"
+else
+ LIBS="$LIBS -lcompat"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CC=$CC" >&5
+$as_echo "CC=$CC" >&6; }
+fi
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -2737,14 +2810,14 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
@@ -2752,7 +2825,7 @@ fi
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@@ -2779,7 +2852,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2791,7 +2864,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2819,7 +2892,7 @@ if test -z "$ac_cv_prog_CC"; then
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -2831,7 +2904,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2872,7 +2945,7 @@ if test -z "$CC"; then
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2884,7 +2957,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2912,7 +2985,7 @@ if test -z "$CC"; then
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2925,7 +2998,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -2971,7 +3044,7 @@ if test -z "$CC"; then
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2983,7 +3056,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3015,7 +3088,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -3027,7 +3100,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3069,8 +3142,8 @@ fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3184,9 +3257,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "C compiler cannot create executables
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -3228,8 +3300,8 @@ done
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3286,9 +3358,9 @@ $as_echo "$ac_try_echo"; } >&5
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run C compiled programs.
+as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
@@ -3299,7 +3371,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3339,8 +3411,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
@@ -3350,7 +3422,7 @@ OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3387,7 +3459,7 @@ ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3465,7 +3537,7 @@ else
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
@@ -3474,8 +3546,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3563,7 +3634,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -3597,7 +3668,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
DLOPEN_LIB=-ldl
$as_echo "#define HAVE_DLOPEN 1" >>confdefs.h
@@ -3605,31 +3676,22 @@ $as_echo "#define HAVE_DLOPEN 1" >>confdefs.h
fi
-WITH_DIET_LIBC=
-
-# Check whether --with-diet-libc was given.
-if test "${with_diet_libc+set}" = set; then :
- withval=$with_diet_libc; CC="diet cc -nostdinc"
-WITH_DIET_LIBC=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CC=$CC" >&5
-$as_echo "CC=$CC" >&6; }
-fi
# Check whether --with-cc was given.
if test "${with_cc+set}" = set; then :
- withval=$with_cc; as_fn_error "--with-cc no longer supported; use CC= instead" "$LINENO" 5
+ withval=$with_cc; as_fn_error $? "--with-cc no longer supported; use CC= instead" "$LINENO" 5
fi
# Check whether --with-ccopts was given.
if test "${with_ccopts+set}" = set; then :
- withval=$with_ccopts; as_fn_error "--with-ccopts no longer supported; use CFLAGS= instead" "$LINENO" 5
+ withval=$with_ccopts; as_fn_error $? "--with-ccopts no longer supported; use CFLAGS= instead" "$LINENO" 5
fi
# Check whether --with-ldopts was given.
if test "${with_ldopts+set}" = set; then :
- withval=$with_ldopts; as_fn_error "--with-ldopts no longer supported; use LDFLAGS= instead" "$LINENO" 5
+ withval=$with_ldopts; as_fn_error $? "--with-ldopts no longer supported; use LDFLAGS= instead" "$LINENO" 5
fi
ac_ext=c
@@ -3642,7 +3704,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3654,7 +3716,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3682,7 +3744,7 @@ if test -z "$ac_cv_prog_CC"; then
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -3694,7 +3756,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3735,7 +3797,7 @@ if test -z "$CC"; then
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3747,7 +3809,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3775,7 +3837,7 @@ if test -z "$CC"; then
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3788,7 +3850,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -3834,7 +3896,7 @@ if test -z "$CC"; then
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3846,7 +3908,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3878,7 +3940,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -3890,7 +3952,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3932,8 +3994,8 @@ fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3962,7 +4024,7 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3999,7 +4061,7 @@ ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
@@ -4077,7 +4139,7 @@ else
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
@@ -4086,8 +4148,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -4188,7 +4249,7 @@ if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then :
+ if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
@@ -4218,7 +4279,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -4234,11 +4295,11 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
@@ -4277,7 +4338,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -4293,18 +4354,18 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
@@ -4376,8 +4437,49 @@ fi
else
LINK_INSTALL_FLAGS=-f
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for install" >&5
-$as_echo "Disabling symlinks for install" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for install by default" >&5
+$as_echo "Disabling symlinks for install by default" >&6; }
+
+fi
+
+
+relative_symlink_defined=
+# Check whether --enable-relative-symlinks was given.
+if test "${enable_relative_symlinks+set}" = set; then :
+ enableval=$enable_relative_symlinks; if test "$enableval" = "no"
+then
+ SYMLINK_RELATIVE=
+ relative_symlink_defined=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install" >&5
+$as_echo "Disabling relative symlinks for install" >&6; }
+else
+ SYMLINK_RELATIVE=--relative
+ relative_symlink_defined=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling relative symlinks for install" >&5
+$as_echo "Enabling relative symlinks for install" >&6; }
+fi
+fi
+
+# Check whether --enable-symlink-relative-symlinks was given.
+if test "${enable_symlink_relative_symlinks+set}" = set; then :
+ enableval=$enable_symlink_relative_symlinks; if test "$enableval" = "no"
+then
+ SYMLINK_RELATIVE=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install" >&5
+$as_echo "Disabling relative symlinks for install" >&6; }
+else
+ SYMLINK_RELATIVE=--relative
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling relative symlinks for install" >&5
+$as_echo "Enabling relative symlinks for install" >&6; }
+fi
+
+else
+ if test -z "$relative_symlink_defined"
+then
+ SYMLINK_RELATIVE=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install by default" >&5
+$as_echo "Disabling relative symlinks for install by default" >&6; }
+fi
fi
@@ -4397,8 +4499,8 @@ fi
else
LINK_BUILD_FLAGS=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for build" >&5
-$as_echo "Disabling symlinks for build" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for build by default" >&5
+$as_echo "Disabling symlinks for build by default" >&6; }
fi
@@ -4410,11 +4512,13 @@ then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling verbose make commands" >&5
$as_echo "Disabling verbose make commands" >&6; }
E=@echo
+ ES=echo
Q=@
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling verbose make commands" >&5
$as_echo "Enabling verbose make commands" >&6; }
E=@\\#
+ ES=\\#
Q=
fi
@@ -4422,12 +4526,14 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling verbose make commands" >&5
$as_echo "Disabling verbose make commands" >&6; }
E=@echo
+ES=echo
Q=@
fi
+
# Check whether --enable-compression was given.
if test "${enable_compression+set}" = set; then :
enableval=$enable_compression; if test "$enableval" = "no"
@@ -4573,6 +4679,18 @@ fi
+# Check whether --enable-gcov was given.
+if test "${enable_gcov+set}" = set; then :
+ enableval=$enable_gcov; if test "$enableval" = "yes"
+then
+ CFLAGS="-g -fprofile-arcs -ftest-coverage"
+ LDFLAGS="-fprofile-arcs -ftest-coverage"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling gcov support" >&5
+$as_echo "Enabling gcov support" >&6; }
+fi
+
+fi
+
# Check whether --enable-checker was given.
if test "${enable_checker+set}" = set; then :
enableval=$enable_checker; if test "$enableval" = "no"
@@ -4677,7 +4795,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
@@ -4691,7 +4809,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4720,7 +4838,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
@@ -4734,7 +4852,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4797,12 +4915,12 @@ if test "${enable_libuuid+set}" = set; then :
enableval=$enable_libuuid; if test "$enableval" = "no"
then
if test -z "$PKG_CONFIG"; then
- as_fn_error "pkg-config not installed; please install it." "$LINENO" 5
+ as_fn_error $? "pkg-config not installed; please install it." "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5
$as_echo_n "checking for uuid_generate in -luuid... " >&6; }
-if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then :
+if ${ac_cv_lib_uuid_uuid_generate+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -4836,11 +4954,11 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5
$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; }
-if test "x$ac_cv_lib_uuid_uuid_generate" = x""yes; then :
+if test "x$ac_cv_lib_uuid_uuid_generate" = xyes; then :
LIBUUID=`$PKG_CONFIG --libs uuid`;
STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`
else
- as_fn_error "external uuid library not found" "$LINENO" 5
+ as_fn_error $? "external uuid library not found" "$LINENO" 5
fi
UUID_CMT=#
@@ -4884,7 +5002,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
@@ -4898,7 +5016,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4927,7 +5045,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
@@ -4941,7 +5059,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5005,12 +5123,12 @@ if test "${enable_libblkid+set}" = set; then :
enableval=$enable_libblkid; if test "$enableval" = "no"
then
if test -z "$PKG_CONFIG"; then
- as_fn_error "pkg-config not installed; please install it." "$LINENO" 5
+ as_fn_error $? "pkg-config not installed; please install it." "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_get_cache in -lblkid" >&5
$as_echo_n "checking for blkid_get_cache in -lblkid... " >&6; }
-if test "${ac_cv_lib_blkid_blkid_get_cache+set}" = set; then :
+if ${ac_cv_lib_blkid_blkid_get_cache+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -5044,11 +5162,11 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_get_cache" >&5
$as_echo "$ac_cv_lib_blkid_blkid_get_cache" >&6; }
-if test "x$ac_cv_lib_blkid_blkid_get_cache" = x""yes; then :
+if test "x$ac_cv_lib_blkid_blkid_get_cache" = xyes; then :
LIBBLKID=`$PKG_CONFIG --libs blkid`;
STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`
else
- as_fn_error "external blkid library not found" "$LINENO" 5
+ as_fn_error $? "external blkid library not found" "$LINENO" 5
fi
BLKID_CMT=#
@@ -5088,6 +5206,9 @@ fi
+QUOTA_MAN_COMMENT='.\"'
+QUOTA_CMT=
+
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
@@ -5096,7 +5217,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
@@ -5110,7 +5231,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5139,7 +5260,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
@@ -5153,7 +5274,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5209,17 +5330,22 @@ fi
if test "${enable_quota+set}" = set; then :
enableval=$enable_quota; if test "$enableval" = "no"
then
+ QUOTA_CMT=#
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling quota support" >&5
$as_echo "Disabling quota support" >&6; }
else
+ QUOTA_CMT=
$as_echo "#define CONFIG_QUOTA 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling quota support" >&5
$as_echo "Enabling quota support" >&6; }
+ QUOTA_MAN_COMMENT=""
+
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling quota support by default" >&5
+ QUOTA_CMT=#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling quota support by default" >&5
$as_echo "Disabling quota support by default" >&6; }
fi
@@ -5237,6 +5363,26 @@ DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
+
+# Check whether --enable-backtrace was given.
+if test "${enable_backtrace+set}" = set; then :
+ enableval=$enable_backtrace; if test "$enableval" = "no"
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling use of backtrace" >&5
+$as_echo "Disabling use of backtrace" >&6; }
+ $as_echo "#define DISABLE_BACKTRACE 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling use of backtrace" >&5
+$as_echo "Enabling use of backtrace" >&6; }
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling use of backtrace by default" >&5
+$as_echo "Enabling use of backtrace by default" >&6; }
+
+fi
+
# Check whether --enable-debugfs was given.
if test "${enable_debugfs+set}" = set; then :
enableval=$enable_debugfs; if test "$enableval" = "no"
@@ -5314,9 +5460,16 @@ $as_echo "Enabling e4defrag support" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e4defrag support by default" >&5
+ if test -z "$WITH_DIET_LIBC"
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e4defrag support by default" >&5
$as_echo "Enabling e4defrag support by default" >&6; }
-DEFRAG_CMT=
+ DEFRAG_CMT=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling e4defrag support by default" >&5
+$as_echo "Disabling e4defrag support by default" >&6; }
+ DEFRAG_CMT="#"
+fi
fi
@@ -5405,7 +5558,7 @@ then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class" >&5
$as_echo_n "checking for thread local storage (TLS) class... " >&6; }
- if test "${ac_cv_tls+set}" = set; then :
+ if ${ac_cv_tls+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5504,7 +5657,7 @@ _ACEOF
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@@ -5512,7 +5665,7 @@ SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -5548,7 +5701,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5568,7 +5721,7 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
@@ -5687,7 +5840,7 @@ rm -f conf$$.file
set dummy msgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then :
+if ${ac_cv_path_MSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGFMT" in
@@ -5727,7 +5880,7 @@ fi
set dummy gmsgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then :
+if ${ac_cv_path_GMSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GMSGFMT in
@@ -5741,7 +5894,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5798,7 +5951,7 @@ rm -f conf$$.file
set dummy xgettext; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then :
+if ${ac_cv_path_XGETTEXT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$XGETTEXT" in
@@ -5869,7 +6022,7 @@ rm -f conf$$.file
set dummy msgmerge; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then :
+if ${ac_cv_path_MSGMERGE+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGMERGE" in
@@ -5937,7 +6090,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
@@ -5949,7 +6102,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5977,7 +6130,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
@@ -5989,7 +6142,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6027,7 +6180,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5
$as_echo_n "checking for strerror in -lcposix... " >&6; }
-if test "${ac_cv_lib_cposix_strerror+set}" = set; then :
+if ${ac_cv_lib_cposix_strerror+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -6061,7 +6214,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5
$as_echo "$ac_cv_lib_cposix_strerror" >&6; }
-if test "x$ac_cv_lib_cposix_strerror" = x""yes; then :
+if test "x$ac_cv_lib_cposix_strerror" = xyes; then :
LIBS="$LIBS -lcposix"
fi
@@ -6070,7 +6223,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
@@ -6084,7 +6237,7 @@ do
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -6119,7 +6272,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
@@ -6133,7 +6286,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -6150,7 +6303,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -6185,7 +6338,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -6200,7 +6353,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6312,7 +6465,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if test "${ac_cv_c_const+set}" = set; then :
+if ${ac_cv_c_const+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6321,11 +6474,11 @@ else
int
main ()
{
-/* FIXME: Include the comments suggested by Paul. */
+
#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
+ /* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
- const charset cs;
+ const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
@@ -6342,8 +6495,9 @@ main ()
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
@@ -6359,10 +6513,10 @@ main ()
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this saying
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
@@ -6393,7 +6547,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signed" >&5
$as_echo_n "checking for signed... " >&6; }
-if test "${bh_cv_c_signed+set}" = set; then :
+if ${bh_cv_c_signed+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6424,7 +6578,7 @@ $as_echo "#define signed /**/" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
$as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then :
+if ${ac_cv_c_inline+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_c_inline=no
@@ -6471,8 +6625,7 @@ do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -6483,7 +6636,7 @@ done
ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
-if test "x$ac_cv_type_off_t" = x""yes; then :
+if test "x$ac_cv_type_off_t" = xyes; then :
else
@@ -6494,7 +6647,7 @@ _ACEOF
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = x""yes; then :
+if test "x$ac_cv_type_size_t" = xyes; then :
else
@@ -6507,7 +6660,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5
$as_echo_n "checking for long long... " >&6; }
-if test "${ac_cv_type_long_long+set}" = set; then :
+if ${ac_cv_type_long_long+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6541,7 +6694,7 @@ $as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
$as_echo_n "checking for long double... " >&6; }
-if test "${gt_cv_c_long_double+set}" = set; then :
+if ${gt_cv_c_long_double+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$GCC" = yes; then
@@ -6582,7 +6735,7 @@ $as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
$as_echo_n "checking for wchar_t... " >&6; }
-if test "${gt_cv_c_wchar_t+set}" = set; then :
+if ${gt_cv_c_wchar_t+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6615,7 +6768,7 @@ $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
$as_echo_n "checking for wint_t... " >&6; }
-if test "${gt_cv_c_wint_t+set}" = set; then :
+if ${gt_cv_c_wint_t+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6648,7 +6801,7 @@ $as_echo "#define HAVE_WINT_T 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${jm_ac_cv_header_inttypes_h+set}" = set; then :
+if ${jm_ac_cv_header_inttypes_h+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6683,7 +6836,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
$as_echo_n "checking for stdint.h... " >&6; }
-if test "${jm_ac_cv_header_stdint_h+set}" = set; then :
+if ${jm_ac_cv_header_stdint_h+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6720,7 +6873,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
$as_echo_n "checking for intmax_t... " >&6; }
-if test "${gt_cv_c_intmax_t+set}" = set; then :
+if ${gt_cv_c_intmax_t+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6762,7 +6915,7 @@ $as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf() supports POSIX/XSI format strings" >&5
$as_echo_n "checking whether printf() supports POSIX/XSI format strings... " >&6; }
-if test "${gt_cv_func_printf_posix+set}" = set; then :
+if ${gt_cv_func_printf_posix+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -6826,7 +6979,7 @@ $as_echo "#define HAVE_POSIX_PRINTF 1" >>confdefs.h
# for constant arguments. Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
$as_echo_n "checking for working alloca.h... " >&6; }
-if test "${ac_cv_working_alloca_h+set}" = set; then :
+if ${ac_cv_working_alloca_h+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6859,7 +7012,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
$as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then :
+if ${ac_cv_func_alloca_works+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6878,7 +7031,7 @@ else
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
+void *alloca (size_t);
# endif
# endif
# endif
@@ -6922,7 +7075,7 @@ $as_echo "#define C_ALLOCA 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if test "${ac_cv_os_cray+set}" = set; then :
+if ${ac_cv_os_cray+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6949,8 +7102,7 @@ if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
@@ -6964,7 +7116,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
$as_echo_n "checking stack direction for C alloca... " >&6; }
-if test "${ac_cv_c_stack_direction+set}" = set; then :
+if ${ac_cv_c_stack_direction+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
@@ -6974,23 +7126,20 @@ else
/* end confdefs.h. */
$ac_includes_default
int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
int
-main ()
+main (int argc, char **argv)
{
- return find_stack_direction () < 0;
+ return find_stack_direction (0, argc + !argv + 20) < 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
@@ -7020,8 +7169,7 @@ do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -7040,7 +7188,7 @@ done
for ac_func in getpagesize
do :
ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = x""yes; then :
+if test "x$ac_cv_func_getpagesize" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GETPAGESIZE 1
_ACEOF
@@ -7050,7 +7198,7 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
$as_echo_n "checking for working mmap... " >&6; }
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then :
+if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
@@ -7217,7 +7365,7 @@ rm -f conftest.mmap conftest.txt
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5
$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; }
-if test "${ac_cv_gnu_library_2_1+set}" = set; then :
+if ${ac_cv_gnu_library_2_1+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7252,7 +7400,7 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5
$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; }
-if test "${gt_cv_int_divbyzero_sigfpe+set}" = set; then :
+if ${gt_cv_int_divbyzero_sigfpe+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -7333,7 +7481,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5
$as_echo_n "checking for unsigned long long... " >&6; }
-if test "${ac_cv_type_unsigned_long_long+set}" = set; then :
+if ${ac_cv_type_unsigned_long_long+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7386,7 +7534,7 @@ $as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${gt_cv_header_inttypes_h+set}" = set; then :
+if ${gt_cv_header_inttypes_h+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -7425,7 +7573,7 @@ _ACEOF
if test $gt_cv_header_inttypes_h = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
-if test "${gt_cv_inttypes_pri_broken+set}" = set; then :
+if ${gt_cv_inttypes_pri_broken+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -7467,7 +7615,7 @@ _ACEOF
for ac_header in stdint.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = x""yes; then :
+if test "x$ac_cv_header_stdint_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STDINT_H 1
_ACEOF
@@ -7564,7 +7712,7 @@ _ACEOF
for ac_header in stdint.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = x""yes; then :
+if test "x$ac_cv_header_stdint_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STDINT_H 1
_ACEOF
@@ -7650,7 +7798,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
$as_echo_n "checking for non-GNU ld... " >&6; }
fi
-if test "${acl_cv_path_LD+set}" = set; then :
+if ${acl_cv_path_LD+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$LD"; then
@@ -7684,10 +7832,10 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
$as_echo_n "(cached) " >&6
else
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -7706,7 +7854,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
$as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then :
+if ${acl_cv_rpath+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -8124,7 +8272,7 @@ fi
ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
else
@@ -8138,8 +8286,7 @@ stdlib.h string.h unistd.h sys/param.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -8155,8 +8302,7 @@ __fsetlocking
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -8168,7 +8314,7 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snprintf is declared" >&5
$as_echo_n "checking whether _snprintf is declared... " >&6; }
-if test "${ac_cv_have_decl__snprintf+set}" = set; then :
+if ${ac_cv_have_decl__snprintf+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8209,7 +8355,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snwprintf is declared" >&5
$as_echo_n "checking whether _snwprintf is declared... " >&6; }
-if test "${ac_cv_have_decl__snwprintf+set}" = set; then :
+if ${ac_cv_have_decl__snwprintf+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8251,7 +8397,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether feof_unlocked is declared" >&5
$as_echo_n "checking whether feof_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then :
+if ${ac_cv_have_decl_feof_unlocked+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8292,7 +8438,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fgets_unlocked is declared" >&5
$as_echo_n "checking whether fgets_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then :
+if ${ac_cv_have_decl_fgets_unlocked+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8333,7 +8479,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getc_unlocked is declared" >&5
$as_echo_n "checking whether getc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then :
+if ${ac_cv_have_decl_getc_unlocked+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8428,7 +8574,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
$as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then :
+if ${am_cv_func_iconv+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -8503,7 +8649,7 @@ $as_echo "$LIBICONV" >&6; }
if test "$am_cv_func_iconv" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
$as_echo_n "checking for iconv declaration... " >&6; }
- if test "${am_cv_proto_iconv+set}" = set; then :
+ if ${am_cv_proto_iconv+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -8554,7 +8700,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
-if test "${am_cv_langinfo_codeset+set}" = set; then :
+if ${am_cv_langinfo_codeset+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8589,7 +8735,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
$as_echo_n "checking for LC_MESSAGES... " >&6; }
-if test "${am_cv_val_LC_MESSAGES+set}" = set; then :
+if ${am_cv_val_LC_MESSAGES+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8627,7 +8773,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_INTLBISON+set}" = set; then :
+if ${ac_cv_prog_INTLBISON+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$INTLBISON"; then
@@ -8639,7 +8785,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_INTLBISON="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8745,7 +8891,7 @@ $as_echo "$nls_cv_force_use_gnu_gettext" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
$as_echo_n "checking for GNU gettext in libc... " >&6; }
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then :
+if ${gt_cv_func_gnugettext1_libc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9155,7 +9301,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
$as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then :
+if ${gt_cv_func_gnugettext1_libintl+:} false; then :
$as_echo_n "(cached) " >&6
else
gt_save_CPPFLAGS="$CPPFLAGS"
@@ -9370,7 +9516,7 @@ $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@@ -9378,7 +9524,7 @@ SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -9399,7 +9545,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
$as_echo_n "checking for GNU make... " >&6; }
-if test "${_cv_gnu_make_command+set}" = set; then :
+if ${_cv_gnu_make_command+:} false; then :
$as_echo_n "(cached) " >&6
else
_cv_gnu_make_command='' ;
@@ -9430,7 +9576,7 @@ $as_echo "\"Not found\"" >&6; };
set dummy ln; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_LN+set}" = set; then :
+if ${ac_cv_path_LN+:} false; then :
$as_echo_n "(cached) " >&6
else
case $LN in
@@ -9444,7 +9590,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9482,7 +9628,7 @@ fi
set dummy mv; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MV+set}" = set; then :
+if ${ac_cv_path_MV+:} false; then :
$as_echo_n "(cached) " >&6
else
case $MV in
@@ -9496,7 +9642,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9523,7 +9669,7 @@ fi
set dummy cp; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_CP+set}" = set; then :
+if ${ac_cv_path_CP+:} false; then :
$as_echo_n "(cached) " >&6
else
case $CP in
@@ -9537,7 +9683,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9564,7 +9710,7 @@ fi
set dummy rm; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RM+set}" = set; then :
+if ${ac_cv_path_RM+:} false; then :
$as_echo_n "(cached) " >&6
else
case $RM in
@@ -9578,7 +9724,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9605,7 +9751,7 @@ fi
set dummy chmod; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_CHMOD+set}" = set; then :
+if ${ac_cv_path_CHMOD+:} false; then :
$as_echo_n "(cached) " >&6
else
case $CHMOD in
@@ -9619,7 +9765,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9648,7 +9794,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
@@ -9660,7 +9806,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9686,7 +9832,7 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -9703,7 +9849,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -9738,7 +9884,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -9755,7 +9901,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
set dummy sed; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
$as_echo_n "(cached) " >&6
else
case $SED in
@@ -9769,7 +9915,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9796,7 +9942,7 @@ fi
set dummy perl; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PERL+set}" = set; then :
+if ${ac_cv_path_PERL+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PERL in
@@ -9810,7 +9956,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9837,7 +9983,7 @@ fi
set dummy ldconfig; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_LDCONFIG+set}" = set; then :
+if ${ac_cv_path_LDCONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $LDCONFIG in
@@ -9851,7 +9997,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_LDCONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9879,7 +10025,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
@@ -9891,7 +10037,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9919,7 +10065,7 @@ if test -z "$ac_cv_prog_AR"; then
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_AR"; then
@@ -9931,7 +10077,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9971,7 +10117,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
@@ -9983,7 +10129,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10011,7 +10157,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
@@ -10023,7 +10169,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10063,7 +10209,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
@@ -10075,7 +10221,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10103,7 +10249,7 @@ if test -z "$ac_cv_prog_STRIP"; then
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
@@ -10115,7 +10261,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10154,7 +10300,7 @@ fi
set dummy makeinfo; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_MAKEINFO+set}" = set; then :
+if ${ac_cv_prog_MAKEINFO+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$MAKEINFO"; then
@@ -10166,7 +10312,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_MAKEINFO="makeinfo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10214,7 +10360,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_BUILD_CC+set}" = set; then :
+if ${ac_cv_prog_BUILD_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$BUILD_CC"; then
@@ -10226,7 +10372,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_BUILD_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10251,12 +10397,11 @@ fi
done
fi
-for ac_header in dirent.h errno.h execinfo.h getopt.h malloc.h mntent.h paths.h semaphore.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/falloc.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.h sys/file.h sys/ioctl.h sys/mkdev.h sys/mman.h sys/prctl.h sys/queue.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h
+for ac_header in dirent.h errno.h execinfo.h getopt.h malloc.h mntent.h paths.h semaphore.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/falloc.h linux/fd.h linux/major.h linux/loop.h net/if_dl.h netinet/in.h sys/disklabel.h sys/file.h sys/ioctl.h sys/mkdev.h sys/mman.h sys/prctl.h sys/queue.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -10274,8 +10419,7 @@ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
#endif
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -10295,7 +10439,7 @@ do :
#endif
"
-if test "x$ac_cv_header_net_if_h" = x""yes; then :
+if test "x$ac_cv_header_net_if_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NET_IF_H 1
_ACEOF
@@ -10307,13 +10451,13 @@ done
for ac_func in vprintf
do :
ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
-if test "x$ac_cv_func_vprintf" = x""yes; then :
+if test "x$ac_cv_func_vprintf" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_VPRINTF 1
_ACEOF
ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
-if test "x$ac_cv_func__doprnt" = x""yes; then :
+if test "x$ac_cv_func__doprnt" = xyes; then :
$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h
@@ -10325,15 +10469,25 @@ done
ac_fn_c_check_member "$LINENO" "struct dirent" "d_reclen" "ac_cv_member_struct_dirent_d_reclen" "#include <dirent.h>
"
-if test "x$ac_cv_member_struct_dirent_d_reclen" = x""yes; then :
+if test "x$ac_cv_member_struct_dirent_d_reclen" = xyes; then :
$as_echo "#define HAVE_RECLEN_DIRENT 1" >>confdefs.h
fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_atim" "ac_cv_member_struct_stat_st_atim" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_atim" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIM 1
+_ACEOF
+
+
+fi
+
ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "#include <sys/types.h>
"
-if test "x$ac_cv_type_ssize_t" = x""yes; then :
+if test "x$ac_cv_type_ssize_t" = xyes; then :
$as_echo "#define HAVE_TYPE_SSIZE_T 1" >>confdefs.h
@@ -10341,7 +10495,7 @@ fi
ac_fn_c_check_decl "$LINENO" "llseek" "ac_cv_have_decl_llseek" "#include <unistd.h>
"
-if test "x$ac_cv_have_decl_llseek" = x""yes; then :
+if test "x$ac_cv_have_decl_llseek" = xyes; then :
$as_echo "#define HAVE_LLSEEK_PROTOTYPE 1" >>confdefs.h
@@ -10351,7 +10505,7 @@ ac_fn_c_check_decl "$LINENO" "lseek64" "ac_cv_have_decl_lseek64" "#define _LARGE
#define _LARGEFILE64_SOURCE
#include <unistd.h>
"
-if test "x$ac_cv_have_decl_lseek64" = x""yes; then :
+if test "x$ac_cv_have_decl_lseek64" = xyes; then :
$as_echo "#define HAVE_LSEEK64_PROTOTYPE 1" >>confdefs.h
@@ -10363,7 +10517,7 @@ fi
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
$as_echo_n "checking size of short... " >&6; }
-if test "${ac_cv_sizeof_short+set}" = set; then :
+if ${ac_cv_sizeof_short+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then :
@@ -10372,9 +10526,8 @@ else
if test "$ac_cv_type_short" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (short)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (short)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_short=0
fi
@@ -10397,7 +10550,7 @@ _ACEOF
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
$as_echo_n "checking size of int... " >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then :
+if ${ac_cv_sizeof_int+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
@@ -10406,9 +10559,8 @@ else
if test "$ac_cv_type_int" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (int)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (int)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_int=0
fi
@@ -10431,7 +10583,7 @@ _ACEOF
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
$as_echo_n "checking size of long... " >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then :
+if ${ac_cv_sizeof_long+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
@@ -10440,9 +10592,8 @@ else
if test "$ac_cv_type_long" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (long)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long=0
fi
@@ -10465,7 +10616,7 @@ _ACEOF
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
$as_echo_n "checking size of long long... " >&6; }
-if test "${ac_cv_sizeof_long_long+set}" = set; then :
+if ${ac_cv_sizeof_long_long+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then :
@@ -10474,9 +10625,8 @@ else
if test "$ac_cv_type_long_long" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long long)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (long long)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long_long=0
fi
@@ -10493,17 +10643,52 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
+$as_echo_n "checking size of off_t... " >&6; }
+if ${ac_cv_sizeof_off_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_off_t" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (off_t)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_off_t=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
+$as_echo "$ac_cv_sizeof_off_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
+_ACEOF
+
+
SIZEOF_SHORT=$ac_cv_sizeof_short
SIZEOF_INT=$ac_cv_sizeof_int
SIZEOF_LONG=$ac_cv_sizeof_long
SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
+SIZEOF_OFF_T=$ac_cv_sizeof_off_t
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then :
+if ${ac_cv_c_bigendian+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_c_bigendian=unknown
@@ -10721,11 +10906,15 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
;; #(
*)
- as_fn_error "unknown endianness
+ as_fn_error $? "unknown endianness
presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
esac
-BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+if test $cross_compiling = no; then
+ BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+else
+ CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+fi
ASM_TYPES_HEADER=./asm_types.h
echo "/* These defines are needed for the public ext2fs.h header file */" \
@@ -10746,7 +10935,7 @@ PUBLIC_CONFIG_HEADER=./public_config.h
for ac_header in inttypes.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
-if test "x$ac_cv_header_inttypes_h" = x""yes; then :
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_INTTYPES_H 1
_ACEOF
@@ -10756,7 +10945,7 @@ fi
done
ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_intptr_t" = x""yes; then :
+if test "x$ac_cv_type_intptr_t" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_INTPTR_T 1
@@ -10767,7 +10956,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat has a st_flags field" >&5
$as_echo_n "checking whether struct stat has a st_flags field... " >&6; }
-if test "${e2fsprogs_cv_struct_st_flags+set}" = set; then :
+if ${e2fsprogs_cv_struct_st_flags+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10794,7 +10983,7 @@ $as_echo "$e2fsprogs_cv_struct_st_flags" >&6; }
if test "$e2fsprogs_cv_struct_st_flags" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether st_flags field is useful" >&5
$as_echo_n "checking whether st_flags field is useful... " >&6; }
- if test "${e2fsprogs_cv_struct_st_flags_immut+set}" = set; then :
+ if ${e2fsprogs_cv_struct_st_flags_immut+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10827,7 +11016,7 @@ fi
ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "#include <sys/types.h>
#include <sys/socket.h>
"
-if test "x$ac_cv_member_struct_sockaddr_sa_len" = x""yes; then :
+if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SA_LEN 1
@@ -10838,7 +11027,7 @@ fi
if test -n "$BLKID_CMT"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing blkid_probe_all" >&5
$as_echo_n "checking for library containing blkid_probe_all... " >&6; }
-if test "${ac_cv_search_blkid_probe_all+set}" = set; then :
+if ${ac_cv_search_blkid_probe_all+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -10872,11 +11061,11 @@ for ac_lib in '' blkid; do
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if test "${ac_cv_search_blkid_probe_all+set}" = set; then :
+ if ${ac_cv_search_blkid_probe_all+:} false; then :
break
fi
done
-if test "${ac_cv_search_blkid_probe_all+set}" = set; then :
+if ${ac_cv_search_blkid_probe_all+:} false; then :
else
ac_cv_search_blkid_probe_all=no
@@ -10893,12 +11082,11 @@ if test "$ac_res" != no; then :
fi
fi
-for ac_func in __secure_getenv backtrace blkid_probe_get_topology chflags fallocate fallocate64 fchown fdatasync fstat64 ftruncate64 getdtablesize getmntinfo getrlimit getrusage jrand48 llseek lseek64 mallinfo mbstowcs memalign mmap msync nanosleep open64 pathconf posix_fadvise posix_memalign prctl quotactl setresgid setresuid srandom strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime valloc
+for ac_func in __secure_getenv backtrace blkid_probe_get_topology blkid_probe_enable_partitions chflags fadvise64 fallocate fallocate64 fchown fdatasync fstat64 ftruncate64 futimes getcwd getdtablesize getmntinfo getpwuid_r getrlimit getrusage jrand48 llseek lseek64 mallinfo mbstowcs memalign mempcpy mmap msync nanosleep open64 pathconf posix_fadvise posix_fadvise64 posix_memalign prctl secure_getenv setmntent setresgid setresuid srandom stpcpy strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime valloc
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -10909,7 +11097,7 @@ done
SOCKET_LIB=''
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
$as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then :
+if ${ac_cv_lib_socket_socket+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -10943,14 +11131,14 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
$as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then :
+if test "x$ac_cv_lib_socket_socket" = xyes; then :
SOCKET_LIB=-lsocket
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for optreset" >&5
$as_echo_n "checking for optreset... " >&6; }
-if test "${ac_cv_have_optreset+set}" = set; then :
+if ${ac_cv_have_optreset+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10977,12 +11165,12 @@ fi
SEM_INIT_LIB=''
ac_fn_c_check_func "$LINENO" "sem_init" "ac_cv_func_sem_init"
-if test "x$ac_cv_func_sem_init" = x""yes; then :
+if test "x$ac_cv_func_sem_init" = xyes; then :
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lpthread" >&5
$as_echo_n "checking for sem_init in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_sem_init+set}" = set; then :
+if ${ac_cv_lib_pthread_sem_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -11016,14 +11204,14 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_sem_init" >&5
$as_echo "$ac_cv_lib_pthread_sem_init" >&6; }
-if test "x$ac_cv_lib_pthread_sem_init" = x""yes; then :
+if test "x$ac_cv_lib_pthread_sem_init" = xyes; then :
$as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h
SEM_INIT_LIB=-lpthread
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lrt" >&5
$as_echo_n "checking for sem_init in -lrt... " >&6; }
-if test "${ac_cv_lib_rt_sem_init+set}" = set; then :
+if ${ac_cv_lib_rt_sem_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -11057,14 +11245,14 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sem_init" >&5
$as_echo "$ac_cv_lib_rt_sem_init" >&6; }
-if test "x$ac_cv_lib_rt_sem_init" = x""yes; then :
+if test "x$ac_cv_lib_rt_sem_init" = xyes; then :
$as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h
SEM_INIT_LIB=-lrt
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lposix4" >&5
$as_echo_n "checking for sem_init in -lposix4... " >&6; }
-if test "${ac_cv_lib_posix4_sem_init+set}" = set; then :
+if ${ac_cv_lib_posix4_sem_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -11098,7 +11286,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sem_init" >&5
$as_echo "$ac_cv_lib_posix4_sem_init" >&6; }
-if test "x$ac_cv_lib_posix4_sem_init" = x""yes; then :
+if test "x$ac_cv_lib_posix4_sem_init" = xyes; then :
$as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h
SEM_INIT_LIB=-lposix4
@@ -11209,13 +11397,18 @@ fi
# Check whether --with-multiarch was given.
if test "${with_multiarch+set}" = set; then :
- withval=$with_multiarch; libdir=$libdir/$withval
-root_libdir=$root_libdir/$withval
+ withval=$with_multiarch; if test "$withval" = "lib64"; then
+ libdir=/usr/lib64
+ root_libdir=/lib64
+else
+ libdir=$libdir/$withval
+ root_libdir=$root_libdir/$withval
+fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker accepts -static" >&5
-$as_echo_n "checking whether linker accepts -static... " >&6; }
-if test "${ac_cv_e2fsprogs_use_static+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can link with -static" >&5
+$as_echo_n "checking whether we can link with -static... " >&6; }
+if ${ac_cv_e2fsprogs_use_static+:} false; then :
$as_echo_n "(cached) " >&6
else
SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
@@ -11278,9 +11471,12 @@ fi
if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
fi
+if test -n "$WITH_DIET_LIBC" ; then
+ INCLUDES="$INCLUDES -D_REENTRANT"
+fi
if test $cross_compiling = no; then
- BUILD_CFLAGS="$CFLAGS"
+ BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
BUILD_LDFLAGS="$LDFLAGS"
else
BUILD_CFLAGS=
@@ -11293,7 +11489,7 @@ test -d include || mkdir include
test -d include/linux || mkdir include/linux
test -d include/asm || mkdir include/asm
for i in MCONFIG Makefile e2fsprogs.spec \
- util/Makefile util/subst.conf util/gen-tarball \
+ util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
lib/uuid/Makefile lib/uuid/uuid_types.h \
@@ -11374,10 +11570,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
+ if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -11393,6 +11600,7 @@ DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -11409,7 +11617,7 @@ LTLIBOBJS=$ac_ltlibobjs
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -11510,6 +11718,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11555,19 +11764,19 @@ export LANGUAGE
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -11705,16 +11914,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -11763,7 +11972,7 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
@@ -11774,28 +11983,16 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -11817,7 +12014,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -11883,10 +12080,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.65,
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -11903,11 +12100,16 @@ ac_need_defaults=:
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
@@ -11929,6 +12131,7 @@ do
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
@@ -11941,7 +12144,7 @@ do
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
- as_fn_error "ambiguous option: \`$1'
+ as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
@@ -11950,7 +12153,7 @@ Try \`$0 --help' for more information.";;
ac_cs_silent=: ;;
# This is an error.
- -*) as_fn_error "unrecognized option: \`$1'
+ -*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
@@ -11970,7 +12173,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
@@ -12014,7 +12217,7 @@ do
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"$outlist") CONFIG_FILES="$CONFIG_FILES $outlist" ;;
- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@@ -12037,9 +12240,10 @@ fi
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
- tmp=
+ tmp= ac_tmp=
trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
@@ -12047,12 +12251,13 @@ $debug ||
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
+ test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -12086,24 +12291,24 @@ if test "x$ac_cr" = x; then
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\r'
+ ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
# Create commands to substitute file output variables.
{
echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
- echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
+ echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
echo "_ACAWK" &&
echo "_ACEOF"
} >conf$$files.sh &&
. ./conf$$files.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
rm -f conf$$files.sh
{
@@ -12111,18 +12316,18 @@ rm -f conf$$files.sh
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -12130,7 +12335,7 @@ done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@@ -12178,7 +12383,7 @@ t delim
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
\$ac_cs_awk_pipe_init
@@ -12216,21 +12421,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || as_fn_error "could not setup config files machinery" "$LINENO" 5
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
s/^[^=]*=[ ]*$//
}'
fi
@@ -12242,7 +12455,7 @@ fi # test -n "$CONFIG_FILES"
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
@@ -12254,11 +12467,11 @@ _ACEOF
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
- ac_t=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_t"; then
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -12343,7 +12556,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error "could not setup config headers machinery" "$LINENO" 5
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
@@ -12356,7 +12569,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -12375,7 +12588,7 @@ do
for ac_f
do
case $ac_f in
- -) ac_f="$tmp/stdin";;
+ -) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
@@ -12384,7 +12597,7 @@ do
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@@ -12410,8 +12623,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
esac
case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -12543,26 +12756,27 @@ $ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
if $ac_cs_awk_getline; then
- $AWK -f "$tmp/subs.awk"
+ $AWK -f "$ac_tmp/subs.awk"
else
- $AWK -f "$tmp/subs.awk" | $SHELL
-fi >$tmp/out \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ $AWK -f "$ac_tmp/subs.awk" | $SHELL
+fi \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
+which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
+which seems to be undefined. Please make sure it is defined" >&2;}
- rm -f "$tmp/stdin"
+ rm -f "$ac_tmp/stdin"
case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
@@ -12571,21 +12785,21 @@ which seems to be undefined. Please make sure it is defined." >&2;}
if test x"$ac_file" != x-; then
{
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
- } >"$tmp/config.h" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
- mv "$tmp/config.h" "$ac_file" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error "could not create -" "$LINENO" 5
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
@@ -12715,7 +12929,7 @@ _ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@@ -12736,7 +12950,7 @@ if test "$no_create" != yes; then
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit $?
+ $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/configure.in b/configure.in
index 32d57684..6592e707 100644
--- a/configure.in
+++ b/configure.in
@@ -1,8 +1,8 @@
AC_INIT(version.h)
-AC_PREREQ(2.50)
+AC_PREREQ(2.54)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_HEADERS([lib/config.h])
-AH_BOTTOM([#include "dirpaths.h"])
+AH_BOTTOM([#include <dirpaths.h>])
MCONFIG=./MCONFIG
AC_SUBST_FILE(MCONFIG)
BINARY_TYPE=bin
@@ -63,15 +63,6 @@ AC_SUBST(E2FSPROGS_MONTH)
AC_SUBST(E2FSPROGS_DAY)
AC_SUBST(E2FSPROGS_VERSION)
AC_SUBST(E2FSPROGS_PKGVER)
-AC_CANONICAL_HOST
-dnl
-dnl Check to see if libdl exists for the sake of dlopen
-dnl
-DLOPEN_LIB=''
-AC_CHECK_LIB(dl, dlopen,
-[DLOPEN_LIB=-ldl
-AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
-AC_SUBST(DLOPEN_LIB)
dnl
dnl Use diet libc
dnl
@@ -80,8 +71,24 @@ AC_ARG_WITH([diet-libc],
[ --with-diet-libc use diet libc],
CC="diet cc -nostdinc"
WITH_DIET_LIBC=yes
+if test -z "$LIBS"
+then
+ LIBS="-lcompat"
+else
+ LIBS="$LIBS -lcompat"
+fi
AC_MSG_RESULT(CC=$CC))dnl
dnl
+AC_CANONICAL_HOST
+dnl
+dnl Check to see if libdl exists for the sake of dlopen
+dnl
+DLOPEN_LIB=''
+AC_CHECK_LIB(dl, dlopen,
+[DLOPEN_LIB=-ldl
+AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
+AC_SUBST(DLOPEN_LIB)
+dnl
AC_ARG_WITH([cc],
AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
@@ -164,10 +171,43 @@ else
fi
,
LINK_INSTALL_FLAGS=-f
-AC_MSG_RESULT([Disabling symlinks for install])
+AC_MSG_RESULT([Disabling symlinks for install by default])
)
AC_SUBST(LINK_INSTALL_FLAGS)
dnl
+dnl handle --enable-relative-symlinks
+dnl
+relative_symlink_defined=
+AC_ARG_ENABLE([relative-symlinks],
+[ --enable-relative-symlinks use relative symlinks when installing],
+if test "$enableval" = "no"
+then
+ SYMLINK_RELATIVE=
+ relative_symlink_defined=yes
+ AC_MSG_RESULT([Disabling relative symlinks for install])
+else
+ SYMLINK_RELATIVE=--relative
+ relative_symlink_defined=yes
+ AC_MSG_RESULT([Enabling relative symlinks for install])
+fi)
+AC_ARG_ENABLE([symlink-relative-symlinks],,
+if test "$enableval" = "no"
+then
+ SYMLINK_RELATIVE=yes
+ AC_MSG_RESULT([Disabling relative symlinks for install])
+else
+ SYMLINK_RELATIVE=--relative
+ AC_MSG_RESULT([Enabling relative symlinks for install])
+fi
+,
+if test -z "$relative_symlink_defined"
+then
+ SYMLINK_RELATIVE=
+AC_MSG_RESULT([Disabling relative symlinks for install by default])
+fi
+)
+AC_SUBST(SYMLINK_RELATIVE)
+dnl
dnl handle --enable-symlink-build
dnl
AC_ARG_ENABLE([symlink-build],
@@ -182,7 +222,7 @@ else
fi
,
LINK_BUILD_FLAGS=
-AC_MSG_RESULT([Disabling symlinks for build])
+AC_MSG_RESULT([Disabling symlinks for build by default])
)
AC_SUBST(LINK_BUILD_FLAGS)
dnl
@@ -194,18 +234,22 @@ if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling verbose make commands])
E=@echo
+ ES=echo
Q=@
else
AC_MSG_RESULT([Enabling verbose make commands])
E=@\\#
+ ES=\\#
Q=
fi
,
AC_MSG_RESULT([Disabling verbose make commands])
E=@echo
+ES=echo
Q=@
)
AC_SUBST(E)
+AC_SUBST(ES)
AC_SUBST(Q)
dnl
dnl handle --enable-compression
@@ -337,6 +381,18 @@ AC_MSG_RESULT([Disabling profiling libraries by default])
AC_SUBST(PROFILE_CMT)
AC_SUBST_FILE(MAKEFILE_PROFILE)
dnl
+dnl handle --enable-gcov
+dnl
+AC_ARG_ENABLE([gcov],
+[ --enable-gcov build for coverage testing using gcov],
+if test "$enableval" = "yes"
+then
+ CFLAGS="-g -fprofile-arcs -ftest-coverage"
+ LDFLAGS="-fprofile-arcs -ftest-coverage"
+ AC_MSG_RESULT([Enabling gcov support])
+fi
+)
+dnl
dnl handle --enable-checker
dnl
AC_ARG_ENABLE([checker],
@@ -528,18 +584,26 @@ AC_SUBST(BLKID_CMT)
dnl
dnl handle --enable-quota
dnl
+QUOTA_MAN_COMMENT='.\"'
+QUOTA_CMT=
+AC_SUBST(QUOTA_MAN_COMMENT)
PKG_PROG_PKG_CONFIG
AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
AC_ARG_ENABLE([quota],
-[ --enable-libquota enable quota support],
+[ --enable-quota enable quota support],
if test "$enableval" = "no"
then
+ QUOTA_CMT=#
AC_MSG_RESULT([Disabling quota support])
else
+ QUOTA_CMT=
AC_DEFINE(CONFIG_QUOTA, 1)
AC_MSG_RESULT([Enabling quota support])
+ QUOTA_MAN_COMMENT=""
+ AC_SUBST(QUOTA_MAN_COMMENT)
fi
,
+QUOTA_CMT=#
AC_MSG_RESULT([Disabling quota support by default])
)
dnl
@@ -559,6 +623,22 @@ AC_SUBST(PROFILED_LIBQUOTA)
AC_SUBST(DEPPROFILED_LIBQUOTA)
AC_SUBST(QUOTA_CMT)
dnl
+dnl handle --disable-backtrace
+dnl
+AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
+AC_ARG_ENABLE([backtrace],
+[ --disable-backtrace disable use backtrace],
+if test "$enableval" = "no"
+then
+ AC_MSG_RESULT([Disabling use of backtrace])
+ AC_DEFINE(DISABLE_BACKTRACE, 1)
+else
+ AC_MSG_RESULT([Enabling use of backtrace])
+fi
+,
+AC_MSG_RESULT([Enabling use of backtrace by default])
+)
+dnl
dnl handle --enable-debugfs
dnl
AC_ARG_ENABLE([debugfs],
@@ -626,8 +706,14 @@ else
AC_MSG_RESULT([Enabling e4defrag support])
fi
,
-AC_MSG_RESULT([Enabling e4defrag support by default])
-DEFRAG_CMT=
+if test -z "$WITH_DIET_LIBC"
+then
+ AC_MSG_RESULT([Enabling e4defrag support by default])
+ DEFRAG_CMT=
+else
+ AC_MSG_RESULT([Disabling e4defrag support by default])
+ DEFRAG_CMT="#"
+fi
)
AC_SUBST(DEFRAG_CMT)
dnl
@@ -805,6 +891,7 @@ AC_CHECK_HEADERS(m4_flatten([
linux/falloc.h
linux/fd.h
linux/major.h
+ linux/loop.h
net/if_dl.h
netinet/in.h
sys/disklabel.h
@@ -847,6 +934,7 @@ dnl is not decleared.
AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
[Define to 1 if dirent has d_reclen])],,
[#include <dirent.h>])
+AC_CHECK_MEMBERS([struct stat.st_atim])
dnl Check to see if ssize_t was declared
AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
[Define to 1 if ssize_t declared])],,
@@ -879,16 +967,23 @@ AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
+AC_CHECK_SIZEOF(off_t)
SIZEOF_SHORT=$ac_cv_sizeof_short
SIZEOF_INT=$ac_cv_sizeof_int
SIZEOF_LONG=$ac_cv_sizeof_long
SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
+SIZEOF_OFF_T=$ac_cv_sizeof_off_t
AC_SUBST(SIZEOF_SHORT)
AC_SUBST(SIZEOF_INT)
AC_SUBST(SIZEOF_LONG)
AC_SUBST(SIZEOF_LONG_LONG)
+AC_SUBST(SIZEOF_OFF_T)
AC_C_BIGENDIAN
-BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+if test $cross_compiling = no; then
+ BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+else
+ CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+fi
ASM_TYPES_HEADER=./asm_types.h
AC_SUBST_FILE(ASM_TYPES_HEADER)
dnl
@@ -959,15 +1054,20 @@ AC_CHECK_FUNCS(m4_flatten([
__secure_getenv
backtrace
blkid_probe_get_topology
+ blkid_probe_enable_partitions
chflags
+ fadvise64
fallocate
fallocate64
fchown
fdatasync
fstat64
ftruncate64
+ futimes
+ getcwd
getdtablesize
getmntinfo
+ getpwuid_r
getrlimit
getrusage
jrand48
@@ -976,18 +1076,22 @@ AC_CHECK_FUNCS(m4_flatten([
mallinfo
mbstowcs
memalign
+ mempcpy
mmap
msync
nanosleep
open64
pathconf
posix_fadvise
+ posix_fadvise64
posix_memalign
prctl
- quotactl
+ secure_getenv
+ setmntent
setresgid
setresuid
srandom
+ stpcpy
strcasecmp
strdup
strnlen
@@ -1138,13 +1242,20 @@ dnl Allow specification of the multiarch arch
dnl
AC_ARG_WITH([multiarch],
[ --with-multiarch=ARCH specify the multiarch triplet],
-libdir=$libdir/$withval
-root_libdir=$root_libdir/$withval
+if test "$withval" = "lib64"; then
+ libdir=/usr/lib64
+ root_libdir=/lib64
+else
+ libdir=$libdir/$withval
+ root_libdir=$root_libdir/$withval
+fi
)dnl
dnl
-dnl See if -static works.
+dnl See if -static works. This could fail if the linker does not
+dnl support -static, or if required external libraries are not available
+dnl in static form.
dnl
-AC_MSG_CHECKING([whether linker accepts -static])
+AC_MSG_CHECKING([whether we can link with -static])
AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
@@ -1206,12 +1317,15 @@ fi
if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
fi
+if test -n "$WITH_DIET_LIBC" ; then
+ INCLUDES="$INCLUDES -D_REENTRANT"
+fi
AC_SUBST(INCLUDES)
dnl
dnl Build CFLAGS
dnl
if test $cross_compiling = no; then
- BUILD_CFLAGS="$CFLAGS"
+ BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
BUILD_LDFLAGS="$LDFLAGS"
else
BUILD_CFLAGS=
@@ -1228,7 +1342,7 @@ test -d include || mkdir include
test -d include/linux || mkdir include/linux
test -d include/asm || mkdir include/asm
for i in MCONFIG Makefile e2fsprogs.spec \
- util/Makefile util/subst.conf util/gen-tarball \
+ util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
lib/uuid/Makefile lib/uuid/uuid_types.h \
diff --git a/contrib/fallocate.c b/contrib/fallocate.c
index 0e8319fe..1f9b59ad 100644
--- a/contrib/fallocate.c
+++ b/contrib/fallocate.c
@@ -35,10 +35,11 @@
// #include <linux/falloc.h>
#define FALLOC_FL_KEEP_SIZE 0x01
+#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */
void usage(void)
{
- printf("Usage: fallocate [-nt] [-o offset] -l length filename\n");
+ printf("Usage: fallocate [-npt] [-o offset] -l length filename\n");
exit(EXIT_FAILURE);
}
@@ -94,12 +95,17 @@ int main(int argc, char **argv)
int error;
int tflag = 0;
- while ((opt = getopt(argc, argv, "nl:ot")) != -1) {
+ while ((opt = getopt(argc, argv, "npl:o:t")) != -1) {
switch(opt) {
case 'n':
/* do not change filesize */
falloc_mode = FALLOC_FL_KEEP_SIZE;
break;
+ case 'p':
+ /* punch mode */
+ falloc_mode = (FALLOC_FL_PUNCH_HOLE |
+ FALLOC_FL_KEEP_SIZE);
+ break;
case 'l':
length = cvtnum(optarg);
break;
diff --git a/contrib/populate-extfs.sh b/contrib/populate-extfs.sh
new file mode 100755
index 00000000..b1d3d1f8
--- /dev/null
+++ b/contrib/populate-extfs.sh
@@ -0,0 +1,105 @@
+#!/bin/sh
+#
+# This script uses debugfs command to populate the ext2/3/4 filesystem
+# from a given directory.
+#
+
+do_usage () {
+ cat << _EOF
+Usage: populate-extfs.sh <source> <device>
+Create an ext2/ext3/ext4 filesystem from a directory or file
+
+ source: The source directory or file
+ device: The target device
+
+_EOF
+ exit 1
+}
+
+[ $# -ne 2 ] && do_usage
+
+SRCDIR=${1%%/}
+DEVICE=$2
+
+# Find where is the debugfs command if not found in the env.
+if [ -z "$DEBUGFS" ]; then
+ CONTRIB_DIR=$(dirname $(readlink -f $0))
+ DEBUGFS="$CONTRIB_DIR/../debugfs/debugfs"
+fi
+
+{
+ CWD="/"
+ find $SRCDIR | while read FILE; do
+ TGT="${FILE##*/}"
+ DIR="${FILE#$SRCDIR}"
+ DIR="${DIR%$TGT}"
+
+ # Skip the root dir
+ [ ! -z "$DIR" ] || continue
+ [ ! -z "$TGT" ] || continue
+
+ if [ "$DIR" != "$CWD" ]; then
+ echo "cd $DIR"
+ CWD="$DIR"
+ fi
+
+ # Only stat once since stat is a time consuming command
+ STAT=$(stat -c "TYPE=\"%F\";DEVNO=\"0x%t 0x%T\";MODE=\"%f\";U=\"%u\";G=\"%g\"" $FILE)
+ eval $STAT
+
+ case $TYPE in
+ "directory")
+ echo "mkdir $TGT"
+ ;;
+ "regular file" | "regular empty file")
+ echo "write $FILE $TGT"
+ ;;
+ "symbolic link")
+ LINK_TGT=$(readlink $FILE)
+ echo "symlink $TGT $LINK_TGT"
+ ;;
+ "block special file")
+ echo "mknod $TGT b $DEVNO"
+ ;;
+ "character special file")
+ echo "mknod $TGT c $DEVNO"
+ ;;
+ "fifo")
+ echo "mknod $TGT p"
+ ;;
+ *)
+ echo "Unknown/unhandled file type '$TYPE' file: $FILE" 1>&2
+ ;;
+ esac
+
+ # Set the file mode
+ echo "sif $TGT mode 0x$MODE"
+
+ # Set uid and gid
+ echo "sif $TGT uid $U"
+ echo "sif $TGT gid $G"
+ done
+
+ # Handle the hard links.
+ # Save the hard links to a file, use the inode number as the filename, for example:
+ # If a and b's inode number is 6775928, save a and b to /tmp/tmp.VrCwHh5gdt/6775928.
+ INODE_DIR=`mktemp -d` || exit 1
+ for i in `find $SRCDIR -type f -links +1 -printf 'INODE=%i###FN=%p\n'`; do
+ eval `echo $i | sed 's$###$ $'`
+ echo ${FN#$SRCDIR} >>$INODE_DIR/$INODE
+ done
+ # Use the debugfs' ln and "sif links_count" to handle them.
+ for i in `ls $INODE_DIR`; do
+ # The link source
+ SRC=`head -1 $INODE_DIR/$i`
+ # Remove the files and link them again except the first one
+ for TGT in `sed -n -e '1!p' $INODE_DIR/$i`; do
+ echo "rm $TGT"
+ echo "ln $SRC $TGT"
+ done
+ LN_CNT=`cat $INODE_DIR/$i | wc -l`
+ # Set the links count
+ echo "sif $SRC links_count $LN_CNT"
+ done
+ rm -fr $INODE_DIR
+} | $DEBUGFS -w -f - $DEVICE
diff --git a/contrib/spd_readdir.c b/contrib/spd_readdir.c
index f89832cd..8345fa1a 100644
--- a/contrib/spd_readdir.c
+++ b/contrib/spd_readdir.c
@@ -1,21 +1,22 @@
/*
* readdir accelerator
*
- * (C) Copyright 2003, 2004 by Theodore Ts'o.
+ * (C) Copyright 2003, 2004, 2008 by Theodore Ts'o.
+ *
+ * 2008-06-08 Modified by Ross Boylan <RossBoylan stanfordalumni org>
+ * Added support for readdir_r and readdir64_r calls. Note
+ * this has not been tested on anything other than GNU/Linux i386,
+ * and that the regular readdir wrapper will take slightly more
+ * space than Ted's original since it now includes a lock.
*
* Compile using the command:
*
- * gcc -o spd_readdir.so -fPIC -shared spd_readdir.c -ldl
+ * gcc -o spd_readdir.so -shared -fpic spd_readdir.c -ldl
*
* Use it by setting the LD_PRELOAD environment variable:
*
* export LD_PRELOAD=/usr/local/sbin/spd_readdir.so
*
- * Note that this preload is not going to work for all programs. In
- * particular, although it does supply readdir_r(), it is *not* thread
- * safe. So I can't recommend this as something to be dropped in
- * /etc/ld.so.preload.
- *
* %Begin-Header%
* This file may be redistributed under the terms of the GNU Public
* License.
@@ -27,6 +28,10 @@
#define MAX_DIRSIZE 0
#define DEBUG
+/* Util we autoconfiscate spd_readdir... */
+#define HAVE___SECURE_GETENV 1
+#define HAVE_PRCTL 1
+#define HAVE_SYS_PRCTL_H 1
#ifdef DEBUG
#define DEBUG_DIR(x) {if (do_debug) { x; }}
@@ -46,6 +51,12 @@
#include <dirent.h>
#include <errno.h>
#include <dlfcn.h>
+#ifdef HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#else
+#define PR_GET_DUMPABLE 3
+#endif
+#include <pthread.h>
struct dirent_s {
unsigned long long d_ino;
@@ -57,6 +68,7 @@ struct dirent_s {
struct dir_s {
DIR *dir;
+ pthread_mutex_t lock; /* Mutex lock for this structure. */
int num;
int max;
struct dirent_s *dp;
@@ -74,6 +86,8 @@ static struct dirent *(*real_readdir)(DIR *dir) = 0;
static int (*real_readdir_r)(DIR *dir, struct dirent *entry,
struct dirent **result) = 0;
static struct dirent64 *(*real_readdir64)(DIR *dir) = 0;
+static int (*real_readdir64_r)(DIR *dir, struct dirent64 *entry,
+ struct dirent64 **result) = 0;
static off_t (*real_telldir)(DIR *dir) = 0;
static void (*real_seekdir)(DIR *dir, off_t offset) = 0;
static int (*real_dirfd)(DIR *dir) = 0;
@@ -83,6 +97,27 @@ static int num_open = 0;
static int do_debug = 0;
#endif
+static char *safe_getenv(const char *arg)
+{
+ if ((getuid() != geteuid()) || (getgid() != getegid()))
+ return NULL;
+#if HAVE_PRCTL
+ if (prctl(PR_GET_DUMPABLE, 0, 0, 0, 0) == 0)
+ return NULL;
+#else
+#if (defined(linux) && defined(SYS_prctl))
+ if (syscall(SYS_prctl, PR_GET_DUMPABLE, 0, 0, 0, 0) == 0)
+ return NULL;
+#endif
+#endif
+
+#if HAVE___SECURE_GETENV
+ return __secure_getenv(arg);
+#else
+ return getenv(arg);
+#endif
+}
+
static void setup_ptr()
{
char *cp;
@@ -94,14 +129,15 @@ static void setup_ptr()
real_readdir = dlsym(RTLD_NEXT, "readdir");
real_readdir_r = dlsym(RTLD_NEXT, "readdir_r");
real_readdir64 = dlsym(RTLD_NEXT, "readdir64");
+ real_readdir64_r = dlsym(RTLD_NEXT, "readdir64_r");
real_telldir = dlsym(RTLD_NEXT, "telldir");
real_seekdir = dlsym(RTLD_NEXT, "seekdir");
real_dirfd = dlsym(RTLD_NEXT, "dirfd");
- if ((cp = getenv("SPD_READDIR_MAX_SIZE")) != NULL) {
+ if ((cp = safe_getenv("SPD_READDIR_MAX_SIZE")) != NULL) {
max_dirsize = atol(cp);
}
#ifdef DEBUG
- if (getenv("SPD_READDIR_DEBUG")) {
+ if (safe_getenv("SPD_READDIR_DEBUG")) {
printf("initialized!\n");
do_debug++;
}
@@ -112,6 +148,8 @@ static void free_cached_dir(struct dir_s *dirstruct)
{
int i;
+ pthread_mutex_destroy(&(dirstruct->lock));
+
if (!dirstruct->dp)
return;
@@ -148,18 +186,21 @@ static int ino_cmp(const void *a, const void *b)
return (i_a - i_b);
}
-struct dir_s *alloc_dirstruct(DIR *dir)
+static struct dir_s *alloc_dirstruct(DIR *dir)
{
struct dir_s *dirstruct;
+ static pthread_mutexattr_t mutexattr;
+ mutexattr.__align = PTHREAD_MUTEX_RECURSIVE;
dirstruct = malloc(sizeof(struct dir_s));
if (dirstruct)
memset(dirstruct, 0, sizeof(struct dir_s));
dirstruct->dir = dir;
+ pthread_mutex_init(&(dirstruct->lock), &mutexattr);
return dirstruct;
}
-void cache_dirstruct(struct dir_s *dirstruct)
+static void cache_dirstruct(struct dir_s *dirstruct)
{
struct dirent_s *ds, *dnew;
struct dirent64 *d;
@@ -238,7 +279,7 @@ DIR *fdopendir(int fd)
if (!real_fdopendir)
setup_ptr();
- DEBUG_DIR(printf("fdpendir(%d) (%d open)\n", fd, num_open++));
+ DEBUG_DIR(printf("fdopendir(%d) (%d open)\n", fd, num_open++));
dir = (*real_fdopendir)(fd);
if (!dir)
return NULL;
@@ -306,19 +347,19 @@ int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result)
if (dirstruct->direct)
return (*real_readdir_r)(dirstruct->dir, entry, result);
+ pthread_mutex_lock(&(dirstruct->lock));
if (dirstruct->pos >= dirstruct->num) {
*result = NULL;
- return 0;
+ } else {
+ ds = &dirstruct->dp[dirstruct->pos++];
+ entry->d_ino = ds->d_ino;
+ entry->d_off = ds->d_off;
+ entry->d_reclen = ds->d_reclen;
+ entry->d_type = ds->d_type;
+ strncpy(entry->d_name, ds->d_name, sizeof(entry->d_name));
+ *result = entry;
}
-
- ds = &dirstruct->dp[dirstruct->pos++];
- entry->d_ino = ds->d_ino;
- entry->d_off = ds->d_off;
- entry->d_reclen = ds->d_reclen;
- entry->d_type = ds->d_type;
- strncpy(entry->d_name, ds->d_name, sizeof(entry->d_name));
- *result = entry;
-
+ pthread_mutex_unlock(&(dirstruct->lock));
return 0;
}
@@ -344,6 +385,32 @@ struct dirent64 *readdir64(DIR *dir)
return (&dirstruct->ret_dir64);
}
+int readdir64_r (DIR *__restrict dir,
+ struct dirent64 *__restrict entry,
+ struct dirent64 **__restrict result)
+{
+ struct dir_s *dirstruct = (struct dir_s *) dir;
+ struct dirent_s *ds;
+
+ if (dirstruct->direct)
+ return (*real_readdir64_r)(dir, entry, result);
+ pthread_mutex_lock(&(dirstruct->lock));
+ if (dirstruct->pos >= dirstruct->num) {
+ *result = NULL;
+ } else {
+ ds = &dirstruct->dp[dirstruct->pos++];
+ entry->d_ino = ds->d_ino;
+ entry->d_off = ds->d_off;
+ entry->d_reclen = ds->d_reclen;
+ entry->d_type = ds->d_type;
+ strncpy(entry->d_name, ds->d_name,
+ sizeof(entry->d_name));
+ *result = entry;
+ }
+ pthread_mutex_unlock(&(dirstruct->lock));
+ return 0;
+}
+
off_t telldir(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
@@ -374,9 +441,11 @@ void rewinddir(DIR *dir)
if (dirstruct->direct)
return;
+ pthread_mutex_lock(&(dirstruct->lock));
dirstruct->pos = 0;
free_cached_dir(dirstruct);
cache_dirstruct(dirstruct);
+ pthread_mutex_unlock(&(dirstruct->lock));
}
int dirfd(DIR *dir)
diff --git a/debian/changelog b/debian/changelog
index 1835a4c9..39167aa8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,356 @@
+e2fsprogs (1.42.10-1) unstable; urgency=medium
+
+ * New upstream version
+ * The mke2fs program no longer requires a force (-F) option when
+ when creating a file system in a regular file, since this is a very
+ common use case when managing virtual machine images
+ * The mke2fs program will now ask for confirmation before wiping out a
+ pre-existing file system, partition label, or physical volume
+ * Fix e2fsck so that it properly handles an inconsistent quota inode.
+ Previously the quota inode could be completely corrupted, and
+ missing quota records could be not noticed
+ * Fix mke2fs so if packed metadata blocks are enabled that the block
+ group checksum are set correctly
+ * Debugfs has new commands to allow the quota inode to be queried directly
+ * Tune2fs will allow removal of dirty journal with two "-f" options
+ (Closes: #559301)
+ * Fixed some off-line resize2fs bugs when relocating metadata blocks
+ when growing or shrinking bigalloc file systems
+ * Fixed resize2fs's calculation of the minimum required file system
+ size. This allows resize2fs -M to shrink the file system more
+ aggressively
+ * Fixed resize2fs to properly handle shrinking a very large and empty
+ file system to a very very small size
+ * Fixed e4defrag to work with 64-bit and bigalloc file systems
+ * Fixed e2fsck to not issue a large number of very scary (but
+ harmless) corruption messages when checking very large file systems
+ when the file system has more inodes than the number of seconds
+ since January 1, 1970.
+ * E2fsck will now check the whole file system if file system problems
+ are detected durings its initial "pass 0" sanity check
+ * Filefrag now prints the "shared extent" flag which is used by some
+ file systems such as btrfs
+ * The mke2fs program would previously correctly omit the resize_inode
+ feature when creating a file system > 16TB when the fs size was
+ determined automatically. It will now also do the right thing when
+ the user explicitly specifies the file system size.
+ * The message printed by logsave is now much less scary (Closes: #468821)
+ * Fix spelling typo in the package descriptions
+ * Update Czech, Dutch, French, German, Polish, Spanish, Sweedish, and
+ Vietnamese translations (Closes: #703048)
+ * Update/fix various man pages
+ * Fix debian/rules compatibility problem with GNU make 4.0
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Sun, 18 May 2014 22:54:38 -0400
+
+e2fsprogs (1.42.9-3) unstable; urgency=medium
+
+ * Add the ability for mke2fs to create hugefiles
+ * Add support for the sparse_super2 compat feature
+ * Mke2fs can now force all of the metadata blocks to be at the
+ beginning of the file system
+ * Fix loopback mount detection (Closes: #497984)
+ * Add support to mke2fs to create a file system at an offset
+ (Closes: #417385)
+ * Mention badblocks in the package description (Closes: #718725)
+ * Update/fix various man pages (Closes: #719184, #719189)
+ * Improve e2fsck's "superblock corrupt" message (Closes: #719185)
+ * Miscellaneous Coverity clean ups
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Tue, 04 Feb 2014 22:17:22 -0500
+
+e2fsprogs (1.42.9-2) unstable; urgency=low
+
+ * Fix lintian warning: debian-changelog-has-wrong-weekday
+ * Fix lintian warning: non-standard-dir-perm by using dh_strip's
+ --dbg-package option instead of manually managing the debug files
+ * Fix printf type format mismatch in e2image
+ * Improved debugfs's error reporting when parsing block numbers
+ * Use consistent configure options across the multiple e2fsprogs
+ builds; this means that e2fsck.static will now use the blkid library
+ shipped with util-linux, instead of the internal one shipped with
+ the e2fsprogs sources.
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Mon, 30 Dec 2013 16:56:50 -0500
+
+e2fsprogs (1.42.9-1) unstable; urgency=low
+
+ * New upstream version
+ * NMU ack (Closes: #698879)
+ * Fix cross-build support (Closes: #721365)
+ * mke2fs will detect an attempt to create a file system on a
+ loop-mounted image file
+ * Fixed a large number of bugs in resize2fs, e2fsck, debugfs, to
+ handle bigalloc and 64-bit file systems.
+ * Tune2fs will no longer allow changing the uuid on a mounted file
+ system with the uninit_bg feature enabled.
+ * E2fsck will properly allocate a new extent tree block in the rare
+ case where one is needed when rehashing an extent-mapped directory.
+ * Mke2fs wil now properly set the LARGE_FILE feature when creating a
+ journal > 2GB.
+ * Debugfs will now correctly handle free a range of inodes using the
+ freei command.
+ * E2fsck will no longer complain if an external journal was exactly
+ 2**32 blocks.
+ * E2fsck will not longer try to add a missing lost+found directory
+ when run in read-only mode.
+ * Fixed some buffer overrun bugs when creating standard e2image files
+ * Mke2fs will not try to set both the meta_bg and resize_inode feature
+ when the extended option "-E resize=NNN" is specified by the user.
+ * Dumpe2fs will no longer abort when trying to print the journal
+ information from an e2image-created image file.
+ * Debugfs's "write" command can now create a sparse files
+ * Debugfs can now support a command line which is up to 8k long
+ * E2image will refuse to create a raw or qcomw image using a mounted
+ file system unless the -f option is given.
+ * E2image has been made more useful for efficiently copying file
+ systems using the -ra options. New options to help with this use
+ case that were added: -o, -O, -p, and -c.
+ * Fixed a regression introduced in 1.42.8 which would cause e2fsck to
+ erroneously report uninitialized extents past i_size to be invalid.
+ * Fixed cases where resize2fs could corrupt a file system, especially
+ when shrinking a file system. (Closes: #660793)
+ * Fixed resize2fs and e2fsck to not crash when operating on a file
+ system with the MMP feature enabled.
+ * Fixed debugfs's write command to properly create a zero-length file
+ (instead of creating an invalid inode).
+ * Fixed e2fsck to not crash when trying to delete an invalid
+ extent-mapped symlink.
+ * Improved debugfs's help texts
+ * Fixed a potential integer overflow problem in e2freefrag
+ (Closes: #718205)
+ * The config.guess and config.sub files have been updated to the
+ latest to help with the ppcle port. (Closes: #732076)
+ * Updated/fixed various man pages. (Closes: #586218, #669730,
+ #698076, #731329)
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Sat, 28 Dec 2013 23:18:36 -0500
+
+e2fsprogs (1.42.8-1) unstable; urgency=low
+
+ * New upstream version
+ * Work around Debian Bug #712530 (Closes: #708307)
+ * Fix e2fsck so it can check a read-only root file system with an
+ external journal. (Closes: #707030)
+ * Fix off-line resizing of file systems with flex_bg && !resize_inode
+ (Closes: #696746)
+ * Change mke2fs so that it does not set the root directory to the real
+ uid/gid of the mke2fs process. Add the extended option root_owner to
+ override this behavior.
+ * If an invalid journal size is given to mke2fs, it will now complain
+ and exit sooner.
+ * Fix resize2fs when shrinking file systems to make sure that bitmap
+ blocks aren't left outside the bounds of the shrunken file system.
+ This could happen with flex_bg file systems that were grown using
+ the old online resizing algorithm.
+ * E2fsck will now detect and repair corrupted extent trees which contain
+ invalid extents at the end of the extent tree leaf block.
+ * E2fsck will now longer complain about zero length extended attribute values.
+ * Fix a regression introduced in e2fsprogs v1.42 which caused e2image -s
+ to crash.
+ * Add safety check so tune2fs will not attempt to set the inode size to
+ be larger than the block size.
+ * Enhance chattr to allow clearing the extent flag if the kernel allows it
+ * Fix e2image with large (> 32-bit) file systems (Closes: #703067)
+ * Mke2fs will not give warnings about the bigalloc and quota options in
+ quiet mode.
+ * Debugfs was erroneously giving spurious error messages for certain
+ extent_inode subcommands which take arguments (split_node,
+ replace_node, and insert_node). This has been fixed.
+ * Fix the parsing of the 's' (sectors) in parse_num_blocks2, which among
+ other programs is used by mke2fs.
+ * Fix texinfo incompatibilities (Closes: #712365)
+ * Updated/fixed various man pages (Closes: #712429, #712430, #707609)
+ * Update German translation
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Thu, 20 Jun 2013 23:09:25 -0500
+
+e2fsprogs (1.42.7-1) unstable; urgency=low
+
+ * New upstream version
+ * Add warning indicating that the quota and bigalloc features are
+ still under development.
+ * Added new options to filefrag to be consistent with the version from
+ Lustre
+ * Optimized e2fsck's CPU utilization
+ * Fixed e2fsck so it detects and fixes inconsistencies in the interior
+ nodes of an inode's extent tree
+ * Fixed a potential memory corruption failure in e2fsck's error path if
+ the call to ext2fs_open2() fails.
+ * Fixed e2fsck if its logging function is enabled in e2fsck.conf, and
+ the resulting file name for the log file is longer than 100 bytes,
+ that it properly handles this situation instead of crashing.
+ * E2fsck will now report the amount of memory that it attempted to
+ allocate when a memory allocation request fails, to make it easier to
+ track down the problem.
+ * Fixed a bug in resize2fs which could cause severe file system
+ corruption when growing an ext4 file system which was formatted with
+ fewer-than-normal reserved gdt blocks
+ * Fixed resize2fs to be able to handle off-line resizes of file
+ systems with the flex_bg feature and without any reserved gdt
+ blocks or if the file system did not have the resize_inode feature
+ * Further optimize resize2fs so it doesn't use quite as much CPU when
+ resizing very large file systems.
+ * Fixed 32-bit overflow bugs which could cause resize2fs to fail and
+ possibly corrupt the file system while resizing 64-bit file systems.
+ * Fixed a big which could cause resize2fs to corrupt bigalloc file systems.
+ * Fix a crash while mke2fs is parsing "-E resize=NNN" with the 64bit
+ file system feature enabled
+ * Added better error checking to mke2fs to check for invalid
+ parameters when creating bigalloc file system.
+ * When creating bigalloc filesystems, the -g option to mke2fs will now
+ specify the number of clusters per block group.
+ * Added the "symlink", "zap_block", "block_dump", and "extent_open"
+ commands to debugfs
+ * Fixed debugfs's htree command so that all its messages are sent
+ through the pager.
+ * Fixed debugfs's dump_file and cat functions so they work correctly
+ on file systems with a block size greater than 8k.
+ * Fixed mke2fs's handling of the mmp_update_interval option
+ * Fixed e2freefrag so it works on 64-bit file systems, and so it uses
+ much less memory.
+ * E2image can now include all data blocks in the e2image output
+ file when the user specifies the -a option.
+ * Fixed debugfs's mknod command so that it updates the block group
+ statistics
+ * Document the bigalloc feature in the mke2fs man page.
+ (Closes: #669730)
+ * Update Czech, Dutch, French, German, Polish, Sweedish, and
+ Vietnamese translations
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Tue, 21 Jan 2013 21:52:58 -0500
+
+e2fsprogs (1.42.6-1) unstable; urgency=low
+
+ * New upstream version
+ * Fix build dependencies to avoid requiring dc, and to allow
+ cross-building to work (Closes: #677497)
+ * Updated/fixed various man pages
+ * Mke2fs will now update its progress indicators at most once a second
+ to avoid overwhelming serial consoles.
+ * Resize2fs will support lazy_itable_init, speeding up off-line growth
+ of uninit_bg file systems.
+ * Resize2fs now supports on-line resizing 64-bit file systems beyond
+ 16TB. A number of bugs in resize2fs which prevented this have been
+ fixed.
+ * Resize2fs now correctly handles resizing 32-bit file systems to 16TB.
+ * Fixed a potential segfault in e2fsck when there is an I/O error
+ while reading the superblock.
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Fri, 21 Sep 2012 12:14:41 -0400
+
+e2fsprogs (1.42.5-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * e2fsck-static, e2fsprogs: let preinst remove a symbolic link in
+ /usr/share/doc, that should have been replaced with a directory since
+ 1.39+1.40-WIP-2006.10.02+dfsg-1. (Closes: #698879).
+
+ -- Nicolas Boulenguez <nicolas@debian.org> Fri, 22 Feb 2013 23:14:59 +0100
+
+e2fsprogs (1.42.5-1) unstable; urgency=low
+
+ * New upstream version
+ * Mark the e2fsprogs package as Multi-Arch: foreign, so if a package
+ foo:i386 depends on e2fsprogs and is installed on an amd64 system,
+ the native e2fsprogs will satisfy the dependency. (Closes: #678395)
+ * Fix a fd leak which could cause logsave (and hence a boot-time rc
+ init script) to hang (Closes: #682592)
+ * Fix a problem if e2fsck where if the root file system is mounted
+ read-only, e2fsck would not clear an error indication in the journal
+ superblock. Combined with a kernel bug, this would cause the e2fsck
+ to check the file system after every single boot
+ * Fixed filefrag so it would not seg fault on virtual filesystems such
+ as /proc: e.g., "filefrag /proc/partitions"
+ * Fix filefrag so that it correctly reports the number of extents
+ * Fixed a bug which caused "mke2fs -N 256 -t ext4 /tmp/foo.img 256m"
+ to write blocks out until /tmp filled
+ * Fixed a bug in how e2fsck would uniquify directory entry names
+ * Change e2fsck so it will allow file systems mounted read-only to be
+ checked with the -f option.
+ * Fix e2fsck so that the file system is marked as containing an
+ error if the user chooses not to fix the quota usage information.
+ * Fix tune2fs so that it correctly removes the quota feature when
+ the last quota inode is removed.
+ * Fix tune2fs so that after removing a quota inode, the block bitmap
+ is updated; otherwise, e2fsck would complain after running 'tune2fs
+ -O ^quota <dev>'.
+ * Fix tune2fs so that when converting a file system from using legacy
+ quota files to the new quota file system feature with hidden quota
+ files, the accounting for these files is handled correctly so that
+ e2fsck doesn't complain.
+ * The e4defrag program now allows device symlinks, such as
+ /dev/mapper/testvg-testlv, instead of insisting on less
+ human-friendly names such as /dev/dm-2
+ * Updated/fixed various man pages (Closes: #680114)
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Sun, 29 Jul 2012 19:59:56 -0400
+
+e2fsprogs (1.42.4-3) unstable; urgency=medium
+
+ * Add the -C option to chattr's usage message
+ * Fix e2fsprogs so it is blhc (build log hardening check) clean. This
+ fixed e2fsck.static which previously was not getting built with the
+ security hardening flags.
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Wed, 13 Jun 2012 16:03:24 -0400
+
+e2fsprogs (1.42.4-2) unstable; urgency=medium
+
+ * Fix FTBFS problem on the hurd and freebsd platforms
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Tue, 12 Jun 2012 18:26:40 -0400
+
+e2fsprogs (1.42.4-1) unstable; urgency=medium
+
+ * New upstream version
+ * Fix 64-bit block number bugs in e2fsck, dumpe2fs, and debugfs which
+ could corrupt file systems
+ * Fixed e2fsck's handling of how errors propagate from the journal to
+ the file system superblock
+ * Fixed a false positive complaint from e2fsck if all of the extents
+ in the last extent block are uninitialized and located after the
+ end of the file.
+ * dumpe2fs will display the journal's error indicator in the
+ superblock if it is set
+ * Fixed a bug which caused e2fsck to incorrectly use O_EXCLUSIVE in
+ some corner cases.
+ * Fix truncation of extent-mapped inodes in e2fsck and libext2fs
+ * Fixed i_blocks accounting in bigalloc file systems.
+ * Add support for btrfs's No_COW flag to lsattr and chattr
+ * Debugfs interprets the date strings of the form "@ddd" as ddd
+ seconds after the epoch
+ * Updated/fixed various man pages (Closes: #674453, #674694)
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Tue, 12 Jun 2012 18:20:55 -0400
+
+e2fsprogs (1.42.3-1) unstable; urgency=low
+
+ * New upstream version
+ * Fix bugs on 32-bit systems which could corrupt > 16TB file systems
+ * Quiet complaints in e2fsck when the total free blocks or inodes are
+ incorrect in the superblock after an system crash, since we don't
+ update nor depend on the superblock summaries at each commit boundary
+ * Fixed support for (hidden) quota files built into ext4; in
+ particular, don't rewrite the quota inode unless the quotas are
+ inconsistent
+ * Optimized reading and writing bitmaps if direct I/O was enabled
+ * Update Czech, Dutch, French, German, Polish, Sweedish, and
+ Vietnamese translations
+ * Fixed incorrect indentation in tune2fs man page
+ * Update debian policy compliance to 3.9.3
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Mon, 14 May 2012 14:43:09 -0400
+
+e2fsprogs (1.42.2-2) unstable; urgency=low
+
+ * Fixed e2fsck.conf's man page (Closes: #646963)
+ * Fixed 32-bit binary compatibility problem for the libext2fs shared
+ library introduced in 1.42.2
+ * mke2fs will no longer fail if the /etc/mtab file is not present
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Mon, 09 Apr 2012 14:54:33 -0400
+
e2fsprogs (1.42.2-1) unstable; urgency=low
* New upstream version
diff --git a/debian/comerr-dev.doc-base b/debian/comerr-dev.doc-base
index ccde9543..463eb767 100644
--- a/debian/comerr-dev.doc-base
+++ b/debian/comerr-dev.doc-base
@@ -8,5 +8,5 @@ Abstract: A library, and associated utilities,
Section: Programming
Format: HTML
-Index: /usr/share/doc/comerr-dev/html-info/com_err_toc.html
+Index: /usr/share/doc/comerr-dev/html-info/com_err.html
Files: /usr/share/doc/comerr-dev/html-info/*.html
diff --git a/debian/control.in b/debian/control.in
index 135ca92f..3982974e 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -9,10 +9,11 @@ Source: e2fsprogs
Section: admin
Priority: required
Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
-Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, DIETLIBC_DEFINES gcc-multilib [mips mipsel], debhelper (>= 7.0), UTIL_LINUX_NG_DEFINES m4
-Standards-Version: 3.9.2
+Build-Depends: gettext, texinfo, pkg-config, DIETLIBC_DEFINES gcc-multilib [mips mipsel], debhelper (>= 7.0), UTIL_LINUX_NG_DEFINES m4
+Standards-Version: 3.9.5
Homepage: http://e2fsprogs.sourceforge.net
+ifdef(`E2FSCK_STATIC',``
Package: e2fsck-static
Priority: optional
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -27,6 +28,7 @@ Description: statically-linked version of the ext2/ext3/ext4 filesystem checker
.
You may want to install a statically-linked shell as well, to be able
to run this program if something like your C library gets corrupted.
+'')dnl
Package: libcomerr2
Section: libs
@@ -122,6 +124,7 @@ Description: runtime components for the Universally Unique ID library
different CPU’s. It is used by libuuid as well as the uuidgen
program.
+ifdef(`UDEB_PKGS',``
Package: libuuid1-udeb
XC-Package-Type: udeb
Section: debian-installer
@@ -133,6 +136,7 @@ Description: stripped down universally unique id library, for debian-installer
See RFC 4122 for more information.
.
This is a minimal package for debian-installer.
+'')dnl
Package: uuid-dev
Section: libdevel
@@ -157,6 +161,7 @@ Description: block device id library
filesystems by hard-coded device names, but via a logical naming
system instead.
+ifdef(`UDEB_PKGS',``
Package: libblkid1-udeb
XC-Package-Type: udeb
Section: debian-installer
@@ -171,6 +176,7 @@ Description: stripped down block device id library, for debian-installer
system instead.
.
This is a minimal package for debian-installer.
+'')dnl
Package: libblkid-dev
Section: libdevel
@@ -187,6 +193,7 @@ Description: block device id library - headers and static libraries
This package contains the development environment for the blkid library.
'')dnl
+ifdef(`UDEB_PKGS',``
Package: e2fsprogs-udeb
XC-Package-Type: udeb
Section: debian-installer
@@ -197,8 +204,9 @@ Description: stripped-down versions of e2fsprogs, for debian-installer
This package is an e2fsprogs package built for a reduced size, so that
it can help to save space in debian-installer.
.
- Don't attempt to install this package, it has no support for a couple of
+ Don'''``t attempt to install this package, it has no support for a couple of
features you surely want. Anyway it should refuse to install.
+'')dnl
Package: e2fslibs
Section: libs
@@ -240,6 +248,7 @@ ifdef(`UTIL_LINUX_NG',
'',
``Pre-Depends: ${shlibs:Depends}, ${misc:Depends}
'')dnl
+Multi-Arch: foreign
Suggests: gpart, parted, e2fsck-static
Conflicts: dump (<< 0.4b4-4), quota (<< 1.55-8.1), initscripts (<< 2.85-4), sysvinit (<< 2.85-4)
Replaces: hurd (<= 20040301-1), libblkid1 (<< 1.38+1.39-WIP-2005.12.10-2), libuuid1 (<< 1.38+1.39-WIP-2005.12.10-2)
@@ -250,7 +259,8 @@ Description: ext2/ext3/ext4 file system utilities
hard disks on Debian and other Linux systems.
.
This package contains programs for creating, checking, and maintaining
- ext2/3/4-based file systems.
+ ext2/3/4-based file systems. It also includes the "badblocks" program,
+ which can be used to scan for bad blocks on a disk or other storage device.
Package: e2fsprogs-dbg
Section: debug
diff --git a/debian/e2fsck-static.preinst b/debian/e2fsck-static.preinst
new file mode 100644
index 00000000..e756adea
--- /dev/null
+++ b/debian/e2fsck-static.preinst
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Abort on error.
+set -e
+
+PKG=e2fsck-static
+DOCLNK=/usr/share/doc/$PKG
+if test "$1" = upgrade \
+ -a -L $DOCLNK
+then
+ rm $DOCLNK
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/e2fslibs-dev.doc-base b/debian/e2fslibs-dev.doc-base
index d1023155..19d04f42 100644
--- a/debian/e2fslibs-dev.doc-base
+++ b/debian/e2fslibs-dev.doc-base
@@ -6,5 +6,5 @@ Abstract: The EXT2FS library is designed to allow
Section: Programming
Format: HTML
-Index: /usr/share/doc/e2fslibs/html-info/libext2fs_toc.html
+Index: /usr/share/doc/e2fslibs/html-info/libext2fs.html
Files: /usr/share/doc/e2fslibs/html-info/*.html
diff --git a/debian/e2fslibs-dev.files.in b/debian/e2fslibs-dev.files.in
index a1a66a6e..b2cd6c92 100644
--- a/debian/e2fslibs-dev.files.in
+++ b/debian/e2fslibs-dev.files.in
@@ -1,5 +1,7 @@
-usr/lib/*/*.so
-usr/lib/*/*.a
+usr/lib/*/libext2fs*.so
+usr/lib/*/libext2fs*.a
+usr/lib/*/libe2p*.so
+usr/lib/*/libe2p*.a
usr/include/ext2fs
usr/include/e2p
usr/share/info/libext2fs.info*
diff --git a/debian/e2fslibs.files.in b/debian/e2fslibs.files.in
index 276b4b66..11198f76 100644
--- a/debian/e2fslibs.files.in
+++ b/debian/e2fslibs.files.in
@@ -1,2 +1,2 @@
-lib/*/libext2fs*
-lib/*/libe2p*
+lib/*/libext2fs*.so.*
+lib/*/libe2p*.so.*
diff --git a/debian/e2fslibs.symbols b/debian/e2fslibs.symbols
index c9d1b338..5422544f 100644
--- a/debian/e2fslibs.symbols
+++ b/debian/e2fslibs.symbols
@@ -44,6 +44,7 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_add_dir_block2@Base 1.42
ext2fs_add_dir_block@Base 1.37
ext2fs_add_journal_device@Base 1.37
+ ext2fs_add_journal_inode2@Base 1.42.9-3~
ext2fs_add_journal_inode@Base 1.37
ext2fs_adjust_ea_refcount2@Base 1.42
ext2fs_adjust_ea_refcount@Base 1.37
@@ -82,10 +83,12 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_bg_itable_unused_set@Base 1.42
ext2fs_bg_used_dirs_count@Base 1.42
ext2fs_bg_used_dirs_count_set@Base 1.42
+ ext2fs_bitcount@Base 1.42.7
ext2fs_blkmap64_bitarray@Base 1.42
ext2fs_blkmap64_rbtree@Base 1.42.1
ext2fs_block_alloc_stats2@Base 1.42
ext2fs_block_alloc_stats@Base 1.37
+ ext2fs_block_alloc_stats_range@Base 1.42.9-3~
ext2fs_block_bitmap_loc@Base 1.42
ext2fs_block_bitmap_loc_set@Base 1.42
ext2fs_block_iterate2@Base 1.37
@@ -148,12 +151,15 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_expand_dir@Base 1.37
ext2fs_ext_attr_hash_entry@Base 1.41.0
ext2fs_extent_delete@Base 1.41.0
+ ext2fs_extent_fix_parents@Base 1.42.7
ext2fs_extent_free@Base 1.41.0
ext2fs_extent_get@Base 1.41.0
ext2fs_extent_get_info@Base 1.41.0
+ ext2fs_extent_goto2@Base 1.42.7
ext2fs_extent_goto@Base 1.41.0
ext2fs_extent_header_verify@Base 1.41.0
ext2fs_extent_insert@Base 1.41.0
+ ext2fs_extent_node_split@Base 1.42.7
ext2fs_extent_open2@Base 1.41.6
ext2fs_extent_open@Base 1.41.0
ext2fs_extent_replace@Base 1.41.0
@@ -182,6 +188,7 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_fast_unmark_inode_bitmap@Base 1.37
ext2fs_file_acl_block@Base 1.42
ext2fs_file_acl_block_set@Base 1.42
+ ext2fs_file_block_offset_too_big@Base 1.42.9
ext2fs_file_close@Base 1.37
ext2fs_file_flush@Base 1.37
ext2fs_file_get_fs@Base 1.37
@@ -198,7 +205,12 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_file_set_size@Base 1.37
ext2fs_file_write@Base 1.37
ext2fs_find_block_device@Base 1.37
+ ext2fs_find_first_set_block_bitmap2@Base 1.42.9-3~
+ ext2fs_find_first_set_generic_bitmap@Base 1.42.9-3~
+ ext2fs_find_first_set_generic_bmap@Base 1.42.9-3~
+ ext2fs_find_first_set_inode_bitmap2@Base 1.42.9-3~
ext2fs_find_first_zero_block_bitmap2@Base 1.42.2
+ ext2fs_find_first_zero_generic_bitmap@Base 1.42.3
ext2fs_find_first_zero_generic_bmap@Base 1.42.2
ext2fs_find_first_zero_inode_bitmap2@Base 1.42.2
ext2fs_flush2@Base 1.42
@@ -237,6 +249,7 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_get_device_sectsize@Base 1.37
ext2fs_get_device_size2@Base 1.41.4
ext2fs_get_device_size@Base 1.37
+ ext2fs_get_dio_alignment@Base 1.42.3
ext2fs_get_free_blocks2@Base 1.42
ext2fs_get_free_blocks@Base 1.37
ext2fs_get_generic_bitmap_end@Base 1.41.0
@@ -262,8 +275,8 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_get_pathname@Base 1.37
ext2fs_get_rec_len@Base 1.41.7
ext2fs_group_blocks_count@Base 1.42
- ext2fs_group_desc_csum@Base 1.42.2
ext2fs_group_desc@Base 1.42
+ ext2fs_group_desc_csum@Base 1.42.2
ext2fs_group_desc_csum_set@Base 1.41.0
ext2fs_group_desc_csum_verify@Base 1.41.0
ext2fs_group_first_block2@Base 1.42
@@ -295,8 +308,8 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_inode_bitmap_loc_set@Base 1.42
ext2fs_inode_data_blocks2@Base 1.42
ext2fs_inode_data_blocks@Base 1.37
- ext2fs_inode_has_valid_blocks@Base 1.37
ext2fs_inode_has_valid_blocks2@Base 1.42
+ ext2fs_inode_has_valid_blocks@Base 1.37
ext2fs_inode_i_blocks@Base 1.42
ext2fs_inode_io_intern2@Base 1.37
ext2fs_inode_io_intern@Base 1.37
@@ -308,6 +321,7 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_llseek@Base 1.37
ext2fs_lookup@Base 1.37
ext2fs_make_generic_bitmap@Base 1.41.0
+ ext2fs_map_cluster_block@Base 1.42.9
ext2fs_mark_bb_dirty@Base 1.37
ext2fs_mark_block_bitmap2@Base 1.42
ext2fs_mark_block_bitmap@Base 1.37
@@ -346,7 +360,6 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_open_file@Base 1.42
ext2fs_open_inode_scan@Base 1.37
ext2fs_parse_version_string@Base 1.37
- ext2fs_print_bmap_statistics@Base 1.42.1
ext2fs_process_dir_block@Base 1.37
ext2fs_punch@Base 1.42
ext2fs_r_blocks_count@Base 1.42
@@ -410,6 +423,7 @@ libext2fs.so.2 e2fslibs #MINVER#
ext2fs_swab16@Base 1.37
ext2fs_swab32@Base 1.37
ext2fs_swab64@Base 1.40
+ ext2fs_symlink@Base 1.42.7
ext2fs_sync_device@Base 1.37
ext2fs_tdb_append@Base 1.40
ext2fs_tdb_chainlock@Base 1.40
@@ -523,6 +537,7 @@ libext2fs.so.2 e2fslibs #MINVER#
initialize_ext2_error_table@Base 1.37
initialize_ext2_error_table_r@Base 1.37
inode_io_manager@Base 1.37
+ io_channel_alloc_buf@Base 1.42.3
io_channel_discard@Base 1.42
io_channel_read_blk64@Base 1.41.1
io_channel_set_options@Base 1.37
diff --git a/debian/e2fsprogs.preinst b/debian/e2fsprogs.preinst
new file mode 100644
index 00000000..bfa9f6b0
--- /dev/null
+++ b/debian/e2fsprogs.preinst
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Abort on error.
+set -e
+
+PKG=e2fsprogs
+DOCLNK=/usr/share/doc/$PKG
+if test "$1" = upgrade \
+ -a -L $DOCLNK
+then
+ rm $DOCLNK
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/libblkid-dev.files.in b/debian/libblkid-dev.files.in
index 84dc3f2c..7b3da368 100644
--- a/debian/libblkid-dev.files.in
+++ b/debian/libblkid-dev.files.in
@@ -1,4 +1,4 @@
-usr/lib/*/libblkid*
+usr/lib/*/libblkid*.so.*
usr/include/blkid
usr/share/man/man3/libblkid.3
usr/lib/*/pkgconfig/blkid.pc
diff --git a/debian/libblkid1.files.in b/debian/libblkid1.files.in
index 871d7be0..54ef86de 100644
--- a/debian/libblkid1.files.in
+++ b/debian/libblkid1.files.in
@@ -1 +1 @@
-lib/*/libblkid*
+lib/*/libblkid*.so.*
diff --git a/debian/libcomerr2.files.in b/debian/libcomerr2.files.in
index e4e5efc0..16b039ef 100644
--- a/debian/libcomerr2.files.in
+++ b/debian/libcomerr2.files.in
@@ -1 +1 @@
-lib/*/libcom_err*
+lib/*/libcom_err*.so.*
diff --git a/debian/libss2.files.in b/debian/libss2.files.in
index e5d8182b..386e1854 100644
--- a/debian/libss2.files.in
+++ b/debian/libss2.files.in
@@ -1 +1 @@
-lib/*/libss*
+lib/*/libss*.so.*
diff --git a/debian/libuuid1.files.in b/debian/libuuid1.files.in
index 6dc05ce3..0761f3b8 100644
--- a/debian/libuuid1.files.in
+++ b/debian/libuuid1.files.in
@@ -1 +1 @@
-lib/*/libuuid*
+lib/*/libuuid*.so.*
diff --git a/debian/rules b/debian/rules
index 1f6e7b4a..5e55e68a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,13 +12,6 @@
# be paranoid
export LC_ALL ?= C
-# Allow distro-specific behaviour
-DISTRO :=$(shell sed -ne '/DISTRIB_ID/s/.*=//p' /etc/lsb-release 2>/dev/null || echo Debian)
-SYS_BLKID_VER := $(shell dpkg-query -W libblkid1 | cut -f 2 | cut -b 1)
-ifeq ($(SYS_BLKID_VER),2)
-UTIL_LINUX_NG ?= yes
-endif
-
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
@@ -28,6 +21,10 @@ DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)
+# Allow distro-specific behaviour
+DISTRO :=$(shell sed -ne '/DISTRIB_ID/s/.*=//p' /etc/lsb-release 2>/dev/null || echo Debian)
+UTIL_LINUX_NG ?= yes
+
# find the version for the main package, from changelog file
MAIN_VERSION = $(shell head -n 1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g')
# find versions for libraries going into their own packages, from their Makefile.in's,
@@ -114,6 +111,13 @@ INSTALL_PROGRAM ?= $(INSTALL) -p -o root -g root -m 0755
#INSTALL_PROGRAM += -s
#endif
+ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
+SYMBOL_LIBS := e2fslibs libcomerr2 libss2
+ifneq ($(UTIL_LINUX_NG),yes)
+SYMBOL_LIBS += libblkid1 libuuid1
+endif
+endif
+
DEFAULT_CFLAGS ?= -g -O2
DEFAULT_LDFLAGS ?= -Wl,-Bsymbolic-functions
@@ -142,6 +146,10 @@ BUILD_STATIC = build-static
E2FSCK_STATIC = ${staticbuilddir}/e2fsck/e2fsck.static
endif
+ifneq ($(SKIP_UDEB),)
+SKIP_BF ?= yes
+endif
+
ifeq ($(SKIP_BF),yes)
BUILD_BF =
bfbuilddir ?= ${stdbuilddir}
@@ -152,13 +160,12 @@ endif
BF_CFLAGS = -Os -fomit-frame-pointer
-COMMON_CONF_FLAGS = --disable-e2initrd-helper --enable-elf-shlibs \
- --enable-quota --infodir=/usr/share/info
ifeq ($(UTIL_LINUX_NG),yes)
-COMMON_CONF_FLAGS += --disable-fsck --disable-libblkid \
+UTIL_CONF_FLAGS ?= --disable-fsck --disable-libblkid \
--disable-libuuid --disable-uuidd
else
-COMMON_CONF_FLAGS += --enable-fsck
+UTIL_CONF_FLAGS ?= --enable-fsck --enable-libblkid \
+ --enable-libuuid --enable-uuidd
endif
ifneq ($(strip $(DEB_HOST_MULTIARCH)),)
@@ -171,10 +178,16 @@ else
USRLIB ?= /usr/lib
endif
-STD_CONF_FLAGS ?= --enable-symlink-install $(MULTIARCH_CONF)
+BACKTRACE_CONF_FLAGS ?= $(shell if ${debdir}/scripts/test-backtrace ; then echo --disable-backtrace ; fi)
+
+COMMON_CONF_FLAGS = --disable-e2initrd-helper --enable-quota \
+ --infodir=/usr/share/info --enable-symlink-install \
+ $(MULTIARCH_CONF) $(BACKTRACE_CONF_FLAGS) $(UTIL_CONF_FLAGS)
-BF_CONF_FLAGS ?= --disable-nls --disable-imager --disable-testio-debug \
- --disable-uuidd --disable-tls --disable-debugfs
+STD_CONF_FLAGS ?= --enable-elf-shlibs
+
+BF_CONF_FLAGS ?= --enable-elf-shlibs --disable-nls --disable-imager \
+ --disable-testio-debug --disable-uuidd --disable-tls --disable-debugfs
STATIC_CONF_FLAGS ?= --disable-nls --disable-imager \
--disable-uuidd --disable-tls
@@ -211,7 +224,20 @@ M4_ARGS+=-UDIETLIBC
WITH_DIET_LIBC =
else
M4_ARGS+=-DDIETLIBC
-WITH_DIET_LIBC = --with-diet-libc
+WITH_DIET_LIBC = --with-diet-libc --enable-libuuid --enable-libblkid
+endif
+
+ifneq ($(BUILD_E2FSCK_STATIC),no)
+M4_ARGS+=-DE2FSCK_STATIC
+else
+M4_ARGS+=-UE2FSCK_STATIC
+endif
+
+ifeq ($(SKIP_UDEB),)
+INSTALL_UDEB = install-udeb
+M4_ARGS+=-DUDEB_PKGS
+else
+M4_ARGS+=-UUDEB_PKGS
endif
FILES_FIXUP= libcomerr2.files comerr-dev.files libss2.files ss-dev.files \
@@ -246,21 +272,27 @@ ${CFGSTDSTAMP}:
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
cd ${stdbuilddir} && AWK=/usr/bin/awk \
${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
- CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
+ ${EXTRA_CONF_FLAGS} CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" \
+ LDFLAGS="$(LDFLAGS)"
else
cd ${stdbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
- --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
- CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
+ ${EXTRA_CONF_FLAGS} --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) CFLAGS="${CFLAGS}" \
+ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
endif
# specially-built MIPS libs
ifneq ($(ismips),)
mkdir -p ${mipsbuilddir} ${mipsbuilddir64}
cd ${mipsbuilddir} && AWK=/usr/bin/awk \
- ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}"
+ ${topdir}/configure ${COMMON_CONF_FLAGS} \
+ ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}" \
+ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
cd ${mipsbuilddir64} && AWK=/usr/bin/awk \
- ${topdir}/configure ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}"
+ ${topdir}/configure ${COMMON_CONF_FLAGS} \
+ ${MIPS_NOPIC_CONF_FLAGS} CFLAGS="${CFLAGS}" \
+ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
endif
mkdir -p ${STAMPSDIR}
@@ -274,12 +306,14 @@ ${CFGBFSTAMP}:
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
cd ${bfbuilddir} && AWK=/usr/bin/awk \
${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
- CFLAGS="${CFLAGS} ${BF_CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
+ ${EXTRA_CONF_FLAGS} CFLAGS="${CFLAGS} ${BF_CFLAGS}" \
+ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
else
cd ${bfbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
- --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
- CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
+ ${EXTRA_CONF_FLAGS} --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) CFLAGS="${CFLAGS}" \
+ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
endif
mkdir -p ${STAMPSDIR}
touch ${CFGBFSTAMP}
@@ -292,18 +326,22 @@ ${CFGSTATICSTAMP}:
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
if type diet > /dev/null 2>&1 ; then \
cd ${staticbuilddir} && AWK=/usr/bin/awk \
- ${topdir}/configure ${STATIC_CONF_FLAGS} \
- ${WITH_DIET_LIBC} CFLAGS="${CFLAGS}"; \
+ ${topdir}/configure ${COMMON_CONF_FLAGS} ${STATIC_CONF_FLAGS} \
+ ${EXTRA_CONF_FLAGS} ${WITH_DIET_LIBC} CFLAGS="${CFLAGS}" \
+ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"; \
else \
cd ${staticbuilddir} && AWK=/usr/bin/awk \
- ${topdir}/configure ${STATIC_CONF_FLAGS} \
- CFLAGS="${CFLAGS}"; \
+ ${topdir}/configure ${COMMON_CONF_FLAGS} \
+ ${STATIC_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
+ CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" \
+ LDFLAGS="$(LDFLAGS)"; \
fi
else
cd ${staticbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
${topdir}/configure ${COMMON_CONF_FLAGS} ${STATIC_CONF_FLAGS} \
- --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
- CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
+ ${EXTRA_CONF_FLAGS} --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) CFLAGS="${CFLAGS}" \
+ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
endif
mkdir -p ${STAMPSDIR}
touch ${CFGSTATICSTAMP}
@@ -316,11 +354,13 @@ build-std: ${BUILDSTDSTAMP}
${BUILDSTDSTAMP}: ${CFGSTDSTAMP}
dh_testdir
$(MAKE) -C ${stdbuilddir} V=1 all
+ifneq ($(BUILD_E2FSCK_STATIC),no)
$(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static
+endif
$(MAKE) -C ${stdbuilddir}/po V=1 update-gmo
- ( cd ${stdbuilddir}/doc && $(MAKE) V=1 libext2fs_abt.html )
- ( cd ${stdbuilddir}/lib/et && $(MAKE) V=1 com_err.info com_err_abt.html )
+ ( cd ${stdbuilddir}/doc && $(MAKE) V=1 libext2fs.html )
+ ( cd ${stdbuilddir}/lib/et && $(MAKE) V=1 com_err.info com_err.html )
# specially-built MIPS libs
ifneq ($(ismips),)
@@ -342,21 +382,24 @@ ${BUILDBFSTAMP}: ${CFGBFSTAMP}
$(MAKE) -C ${bfbuilddir} V=1 libs
$(MAKE) -C ${bfbuilddir}/e2fsck V=1 all
$(MAKE) -C ${bfbuilddir}/misc V=1 all
+ $(MAKE) -C ${bfbuilddir}/resize V=1 all
touch ${BUILDBFSTAMP}
build-static: ${BUILDSTATICSTAMP}
${BUILDSTATICSTAMP}: ${CFGSTATICSTAMP}
dh_testdir
$(MAKE) -C ${staticbuilddir} V=1 libs
+ifneq ($(BUILD_E2FSCK_STATIC),no)
$(MAKE) -C ${staticbuilddir}/e2fsck V=1 all e2fsck.static
+endif
touch ${BUILDSTATICSTAMP}
clean:
dh_testdir
rm -rf ${STAMPSDIR}
- [ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} distclean
- [ ! -f ${bfbuilddir}/Makefile ] || $(MAKE) -C ${bfbuilddir} distclean
- [ ! -f ${staticbuilddir}/Makefile ] || $(MAKE) -C ${staticbuilddir} distclean
+ [ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} V=1 distclean
+ [ ! -f ${bfbuilddir}/Makefile ] || $(MAKE) -C ${bfbuilddir} V=1 distclean
+ [ ! -f ${staticbuilddir}/Makefile ] || $(MAKE) -C ${staticbuilddir} V=1 distclean
rm -rf ${stdbuilddir} ${bfbuilddir} ${staticbuilddir} ${mipsbuilddir} ${mipsbuilddir64}
rm -f debian/*.substvars
dh_clean
@@ -378,17 +421,16 @@ install-std: build
dh_installdirs
mkdir -p ${tmpdir}/sbin
- $(MAKE) -C ${stdbuilddir} install DESTDIR=${tmpdir} \
+ $(MAKE) -C ${stdbuilddir} V=1 install DESTDIR=${tmpdir} \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
# static libs and .h files
- $(MAKE) -C ${stdbuilddir} install-libs DESTDIR=${tmpdir} LDCONFIG=true
+ $(MAKE) -C ${stdbuilddir} V=1 install-libs DESTDIR=${tmpdir} LDCONFIG=true
+ifneq ($(BUILD_E2FSCK_STATIC),no)
# statically-linked fsck
${INSTALL_PROGRAM} $(E2FSCK_STATIC) ${tmpdir}/sbin
cp ${mandir}/man8/e2fsck.8 ${mandir}/man8/e2fsck.static.8
- # remove static quota library for now
- rm ${tmpdir}/usr/include/quota/mkquota.h
- find ${tmpdir}/usr/lib -name quota.pc -o -name libquota.a | xargs rm
+endif
ifeq ($(DEB_BUILD_GNU_SYSTEM), gnu)
${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf
@@ -410,13 +452,13 @@ install-udeb: build
dh_testdir
dh_testroot
- $(MAKE) -C ${bfbuilddir} install-shlibs-libs-recursive DESTDIR=${udebdir} \
+ $(MAKE) -C ${bfbuilddir} V=1 install-shlibs-libs-recursive DESTDIR=${udebdir} \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
- $(MAKE) -C ${bfbuilddir}/e2fsck install DESTDIR=${udebdir} \
+ $(MAKE) -C ${bfbuilddir}/e2fsck V=1 install DESTDIR=${udebdir} \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
- $(MAKE) -C ${bfbuilddir}/misc install DESTDIR=${udebdir} \
+ $(MAKE) -C ${bfbuilddir}/misc V=1 install DESTDIR=${udebdir} \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
- $(MAKE) -C ${bfbuilddir}/resize install DESTDIR=${udebdir} \
+ $(MAKE) -C ${bfbuilddir}/resize V=1 install DESTDIR=${udebdir} \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true
rm -rf ${udebdir}/usr
@@ -441,7 +483,7 @@ binary-indep:
# no arch-independant debs.
binary-arch: DH_OPTIONS= -a
-binary-arch: install install-udeb
+binary-arch: install $(INSTALL_UDEB)
dh_testdir
dh_testroot
@@ -515,9 +557,12 @@ endif
DH_OPTIONS= dh_installchangelogs -pe2fsprogs \
-plibcomerr${COMERR_SOVERSION} \
-plibss${SS_SOVERSION} \
- -pe2fslibs -pe2fsck-static \
+ -pe2fslibs \
-pe2fsprogs-dbg -pe2fslibs-dbg \
-plibcomerr2-dbg -plibss2-dbg
+ifneq ($(BUILD_E2FSCK_STATIC),no)
+ DH_OPTIONS= dh_installchangelogs -pe2fsck-static
+endif
ifneq ($(UTIL_LINUX_NG),yes)
DH_OPTIONS= dh_installchangelogs -plibuuid${UUID_SOVERSION} \
-puuid-dev -puuid-runtime -puuid-runtime-dbg -plibuuid1-dbg \
@@ -525,62 +570,26 @@ ifneq ($(UTIL_LINUX_NG),yes)
endif
dh_fixperms
+ dh_strip -pe2fsprogs --dbg-package=e2fsprogs-dbg
+ifneq ($(BUILD_E2FSCK_STATIC),no)
+ dh_strip -pe2fsck-static --dbg-package=e2fsprogs-dbg
+endif
ifneq ($(ismips),)
- dh_strip -k -Xlib64ext2fs-nopic.a
+ dh_strip -pe2fslibs --dbg-package=e2fslibs-dbg -Xlib64ext2fs-nopic.a
else
- dh_strip -k
-endif
-
- # debug package stuff
- rm -rf ${udebdir}/usr
-ifneq ($(UTIL_LINUX_NG),yes)
- rm -rf ${blkidudebdir}/usr
- rm -rf ${uuidudebdir}/usr
+ dh_strip -pe2fslibs --dbg-package=e2fslibs-dbg
endif
-
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
- mkdir -p ${debugdir}/$(USRLIB)
- mv ${maindir}/usr/lib/debug ${debugdir}/$(USRLIB)
- rm -rf ${maindir}/usr/lib/debug
- mv ${e2fsckstaticdir}/usr/lib/debug/sbin/* \
- ${debugdir}/$(USRLIB)/debug
- rm -rf ${e2fsckstaticdir}/usr/lib
-
-ifneq ($(UTIL_LINUX_NG),yes)
- mkdir -p ${uuidruntimedbgdir}/$(USRLIB)
- mv ${uuidruntimedir}/usr/lib/debug ${uuidruntimedbgdir}/$(USRLIB)
- rmdir ${uuidruntimedir}/usr/lib
-endif
-
- mkdir -p ${libext2dbgdir}/$(USRLIB)
- mv ${libext2dir}/usr/lib/debug ${libext2dbgdir}/$(USRLIB)
- rmdir ${libext2dir}/usr/lib
-
- mkdir -p ${libcomerrdbgdir}/$(USRLIB)
- mv ${libcomerrdir}/usr/lib/debug ${libcomerrdbgdir}/$(USRLIB)
- rmdir ${libcomerrdir}/usr/lib
-
- mkdir -p ${libssdbgdir}/$(USRLIB)
- mv ${libssdir}/usr/lib/debug ${libssdbgdir}/$(USRLIB)
- rmdir ${libssdir}/usr/lib
-
+ dh_strip -plibss${SS_SOVERSION} --dbg-package=libss${SS_SOVERSION}-dbg
+ dh_strip -plibcomerr${COMERR_SOVERSION} \
+ --dbg-package=libcomerr${COMERR_SOVERSION}-dbg
ifneq ($(UTIL_LINUX_NG),yes)
- mkdir -p ${libuuiddbgdir}/$(USRLIB)
- mv ${libuuiddir}/usr/lib/debug ${libuuiddbgdir}/$(USRLIB)
- rmdir ${libuuiddir}/usr/lib
-
- mkdir -p ${libblkiddbgdir}/$(USRLIB)
- mv ${libblkiddir}/usr/lib/debug ${libblkiddbgdir}/$(USRLIB)
- rmdir ${libblkiddir}/usr/lib
-endif
+ dh_strip -plibblkid${BLKID_SOVERSION} \
+ --dbg-package=libblkid${BLKID_SOVERSION}-dbg
+ dh_strip -plibuuid${UUID_SOVERSION} --dbg-package=libuuid${UUID_SOVERSION}-dbg
endif
+ dh_strip
# dpkg symbol handling
-ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
-SYMBOL_LIBS := e2fslibs libcomerr2 libss2
-ifneq ($(UTIL_LINUX_NG),yes)
-SYMBOL_LIBS += libblkid1 libuuid1
-endif
for i in $(SYMBOL_LIBS); \
do \
echo "Generating symbols for $$i..."; \
@@ -589,7 +598,6 @@ endif
patch debian/$$i.symbols < debian/$$i.tmp-patch; \
/bin/rm debian/$$i.tmp-patch; \
done
-endif
for i in e2fsprogs e2fsprogs-dbg e2fslibs e2fslibs-dbg; do \
$(INSTALL) -p -m 0644 debian/copyright \
@@ -618,6 +626,7 @@ endif
dh_compress
dh_makeshlibs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+ifeq ($(SKIP_UDEB),)
dh_makeshlibs --add-udeb=e2fsprogs-udeb -plibcomerr${COMERR_SOVERSION} \
-V 'libcomerr2 (>= 1.33-3)'
ifneq ($(UTIL_LINUX_NG),yes)
@@ -626,13 +635,16 @@ ifneq ($(UTIL_LINUX_NG),yes)
debian/libblkid1/DEBIAN/shlibs
echo "udeb: libuuid 1 libuuid1-udeb" >> debian/libuuid1/DEBIAN/shlibs
endif
+endif
dh_installdeb
dh_shlibdeps -l${stdbuilddir}/lib
dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \
-u"-Ldebian/e2fsprogs.shlibs.local"
+ifeq ($(SKIP_UDEB),)
dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \
-u"-Ldebian/e2fsprogs-udeb.shlibs.local"
+endif
dh_gencontrol -Ncomerr-dev -Nss-dev -Nuuid-dev \
-Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
@@ -644,24 +656,30 @@ ifneq ($(UTIL_LINUX_NG),yes)
DH_OPTIONS= dh_gencontrol -puuid-dev \
-u '-v${UUID_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
endif
+ifeq ($(SKIP_UDEB),)
dh_gencontrol -pe2fsprogs-udeb -- -fdebian/files~
ifneq ($(UTIL_LINUX_NG),yes)
dh_gencontrol -plibblkid1-udeb -- -fdebian/files~
dh_gencontrol -plibuuid1-udeb -- -fdebian/files~
endif
+endif
+ifeq ($(SKIP_UDEB),)
dpkg-distaddfile $(UDEB_NAME) debian-installer $(UDEB_PRIORITY)
ifneq ($(UTIL_LINUX_NG),yes)
dpkg-distaddfile $(BLKID_UDEB_NAME) debian-installer $(BLKID_UDEB_PRIORITY)
dpkg-distaddfile $(UUID_UDEB_NAME) debian-installer $(UUID_UDEB_PRIORITY)
endif
+endif
dh_md5sums -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
dh_builddeb -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+ifeq ($(SKIP_UDEB),)
dh_builddeb -pe2fsprogs-udeb --filename=$(UDEB_NAME)
ifneq ($(UTIL_LINUX_NG),yes)
dh_builddeb -plibblkid1-udeb --filename=$(BLKID_UDEB_NAME)
dh_builddeb -plibuuid1-udeb --filename=$(UUID_UDEB_NAME)
endif
+endif
binary: binary-indep binary-arch
diff --git a/debian/scripts/test-backtrace b/debian/scripts/test-backtrace
new file mode 100755
index 00000000..d90486a0
--- /dev/null
+++ b/debian/scripts/test-backtrace
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# Test to see if backtrace requires a library in /usr/lib
+# Returns true if the backtrace command works and requires a library in /usr/lib
+# This is a nasty workaround for Debian bug #708307, which is really a glibc bug
+#
+
+cat > /tmp/backtrace$$.c << EOF
+
+#include <execinfo.h>
+
+int main(int argc, char **argv)
+{
+ void *stack_syms[32];
+ int frames;
+
+ frames = backtrace(stack_syms, 32);
+ backtrace_symbols_fd(stack_syms, frames, 0);
+}
+EOF
+
+if ! cc -o /tmp/backtrace$$ /tmp/backtrace$$.c; then
+ exit 1
+fi
+
+if ! ldd /tmp/backtrace$$ > /tmp/backtrace$$.ldd 2>&1 ; then
+ exit 1
+fi
+
+grep -q /usr/lib /tmp/backtrace$$.ldd
+ret=$?
+
+/bin/rm -f /tmp/backtrace$$*
+exit $ret
diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides
index 8c0cd0ff..fd597df4 100644
--- a/debian/source.lintian-overrides
+++ b/debian/source.lintian-overrides
@@ -1,3 +1,4 @@
e2fsprogs source: weak-library-dev-dependency ss-dev on libss2 (= ${mainBinary})
e2fsprogs source: weak-library-dev-dependency comerr-dev on libcomerr2 (= ${mainBinary})
e2fsprogs source: weak-library-dev-dependency uuid-dev on libuuid1 (= ${mainBinary})
+e2fsprogs source: source-is-missing misc/util.o
diff --git a/debugfs/Makefile.in b/debugfs/Makefile.in
index 7e71c3f4..3dd06f03 100644
--- a/debugfs/Makefile.in
+++ b/debugfs/Makefile.in
@@ -18,25 +18,35 @@ MK_CMDS= _SS_DIR_OVERRIDE=../lib/ss ../lib/ss/mk_cmds
DEBUG_OBJS= debug_cmds.o debugfs.o util.o ncheck.o icheck.o ls.o \
lsdel.o dump.o set_fields.o logdump.o htree.o unused.o e2freefrag.o \
- filefrag.o
+ filefrag.o extent_cmds.o extent_inode.o zap.o quota.o
RO_DEBUG_OBJS= ro_debug_cmds.o ro_debugfs.o util.o ncheck.o icheck.o ls.o \
- lsdel.o logdump.o htree.o e2freefrag.o filefrag.o
+ lsdel.o logdump.o htree.o e2freefrag.o filefrag.o extent_cmds.o \
+ extent_inode.o quota.o
SRCS= debug_cmds.c $(srcdir)/debugfs.c $(srcdir)/util.c $(srcdir)/ls.c \
$(srcdir)/ncheck.c $(srcdir)/icheck.c $(srcdir)/lsdel.c \
$(srcdir)/dump.c $(srcdir)/set_fields.c ${srcdir}/logdump.c \
$(srcdir)/htree.c $(srcdir)/unused.c ${srcdir}/../misc/e2freefrag.c \
- $(srcdir)/filefrag.c
+ $(srcdir)/filefrag.c $(srcdir)/extent_inode.c $(srcdir)/zap.c \
+ $(srcdir)/quota.c
-LIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) \
- $(LIBUUID)
-DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(DEPLIBSS) $(DEPLIBCOM_ERR) \
+LIBS= $(LIBQUOTA) $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) \
+ $(LIBUUID) $(SYSLIBS)
+DEPLIBS= $(DEPLIBQUOTA) $(LIBEXT2FS) $(LIBE2P) $(DEPLIBSS) $(DEPLIBCOM_ERR) \
$(DEPLIBBLKID) $(DEPLIBUUID)
+STATIC_LIBS= $(STATIC_LIBQUOTA) $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) \
+ $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \
+ $(STATIC_LIBE2P) $(SYSLIBS)
+STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBSS) \
+ $(DEPSTATIC_LIBCOM_ERR) $(DEPSTATIC_LIBUUID) \
+ $(DEPSTATIC_LIBE2P)
+
.c.o:
$(E) " CC $<"
$(Q) $(CC) -c $(ALL_CFLAGS) $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
all:: $(PROGS) $(MANPAGES)
@@ -44,6 +54,11 @@ debugfs: $(DEBUG_OBJS) $(DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o debugfs $(DEBUG_OBJS) $(LIBS)
+debugfs.static: $(DEBUG_OBJS) $(STATIC_DEPLIBS)
+ $(E) " LD $@"
+ $(Q) $(CC) $(LDFLAGS_STATIC) -o debugfs.static $(DEBUG_OBJS) \
+ $(STATIC_LIBS) $(READLINE_LIB)
+
rdebugfs: $(RO_DEBUG_OBJS) $(DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o rdebugfs $(RO_DEBUG_OBJS) $(LIBS)
@@ -52,6 +67,10 @@ debug_cmds.c debug_cmds.h: debug_cmds.ct
$(E) " MK_CMDS $@"
$(Q) $(MK_CMDS) $(srcdir)/debug_cmds.ct
+extent_cmds.c extent_cmds.h: extent_cmds.ct
+ $(E) " MK_CMDS $@"
+ $(Q) $(MK_CMDS) $(srcdir)/extent_cmds.ct
+
ro_debug_cmds.c ro_debug_cmds.h: ro_debug_cmds.ct
$(E) " MK_CMDS $@"
$(Q) $(MK_CMDS) $(srcdir)/ro_debug_cmds.ct
@@ -100,9 +119,9 @@ uninstall:
$(RM) -f $(DESTDIR)$(man8dir)/$$i; \
done
-clean:
+clean::
$(RM) -f $(PROGS) debugfs.8 \#* *.s *.o *.a *~ debug_cmds.c \
- ro_debug_cmds.c core rdebugfs
+ extent_cmds.c ro_debug_cmds.c core rdebugfs debugfs.static
mostlyclean: clean
distclean: clean
@@ -116,76 +135,153 @@ distclean: clean
#
debug_cmds.o: debug_cmds.c $(top_srcdir)/lib/ss/ss.h \
$(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h
-debugfs.o: $(srcdir)/debugfs.c $(top_srcdir)/lib/et/com_err.h \
- $(top_srcdir)/lib/ss/ss.h $(top_builddir)/lib/ss/ss_err.h \
+debugfs.o: $(srcdir)/debugfs.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
+ $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/version.h $(srcdir)/jfs_user.h \
+ $(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \
+ $(top_srcdir)/lib/ext2fs/kernel-list.h
+util.o: $(srcdir)/util.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/debugfs.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
$(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/version.h $(srcdir)/jfs_user.h \
- $(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \
- $(top_srcdir)/lib/ext2fs/kernel-list.h
-util.o: $(srcdir)/util.c $(srcdir)/debugfs.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+ls.o: $(srcdir)/ls.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
-ls.o: $(srcdir)/ls.c $(srcdir)/debugfs.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
- $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
- $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
-ncheck.o: $(srcdir)/ncheck.c $(srcdir)/debugfs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+ncheck.o: $(srcdir)/ncheck.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
-icheck.o: $(srcdir)/icheck.c $(srcdir)/debugfs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+icheck.o: $(srcdir)/icheck.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
-lsdel.o: $(srcdir)/lsdel.c $(srcdir)/debugfs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+lsdel.o: $(srcdir)/lsdel.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
-dump.o: $(srcdir)/dump.c $(srcdir)/debugfs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+dump.o: $(srcdir)/dump.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
-set_fields.o: $(srcdir)/set_fields.c $(srcdir)/debugfs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+set_fields.o: $(srcdir)/set_fields.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
$(top_srcdir)/lib/e2p/e2p.h
-logdump.o: $(srcdir)/logdump.c $(srcdir)/debugfs.h \
+logdump.o: $(srcdir)/logdump.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
$(srcdir)/jfs_user.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \
$(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h
-htree.o: $(srcdir)/htree.c $(srcdir)/debugfs.h \
+htree.o: $(srcdir)/htree.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
$(top_srcdir)/lib/e2p/e2p.h
-unused.o: $(srcdir)/unused.c $(srcdir)/debugfs.h \
+unused.o: $(srcdir)/unused.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+e2freefrag.o: $(srcdir)/../misc/e2freefrag.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(srcdir)/../misc/e2freefrag.h
+filefrag.o: $(srcdir)/filefrag.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+extent_inode.o: $(srcdir)/extent_inode.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+zap.o: $(srcdir)/zap.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
+quota.o: $(srcdir)/quota.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \
+ $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
diff --git a/debugfs/debug_cmds.ct b/debugfs/debug_cmds.ct
index af969b1c..6a18df67 100644
--- a/debugfs/debug_cmds.ct
+++ b/debugfs/debug_cmds.ct
@@ -160,13 +160,16 @@ request do_bmap, "Calculate the logical->physical block mapping for an inode",
request do_punch, "Punch (or truncate) blocks from an inode by deallocating them",
punch, truncate;
+request do_symlink, "Create a symbolic link",
+ symlink;
+
request do_imap, "Calculate the location of an inode",
imap;
request do_dump_unused, "Dump unused blocks",
dump_unused;
-request do_set_current_time, "Set current time to use when setting filesystme fields",
+request do_set_current_time, "Set current time to use when setting filesystem fields",
set_current_time;
request do_supported_features, "Print features supported by this version of e2fsprogs",
@@ -178,5 +181,20 @@ request do_dump_mmp, "Dump MMP information",
request do_set_mmp_value, "Set MMP value",
set_mmp_value, smmp;
+request do_extent_open, "Open inode for extent manipulation",
+ extent_open, eo;
+
+request do_zap_block, "Zap block: fill with 0, pattern, flip bits etc.",
+ zap_block, zap;
+
+request do_block_dump, "Dump contents of a block",
+ block_dump, bd;
+
+request do_list_quota, "List quota",
+ list_quota, lq;
+
+request do_get_quota, "Get quota",
+ get_quota, gq;
+
end;
diff --git a/debugfs/debugfs.8.in b/debugfs/debugfs.8.in
index ea3375e3..73254d31 100644
--- a/debugfs/debugfs.8.in
+++ b/debugfs/debugfs.8.in
@@ -1,7 +1,7 @@
.\" -*- nroff -*-
.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved.
.\" This file may be copied under the terms of the GNU Public License.
-.\"
+.\"
.TH DEBUGFS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
debugfs \- ext2/ext3/ext4 file system debugger
@@ -19,7 +19,7 @@ blocksize
superblock
]
[
-.B \-f
+.B \-f
cmd_file
]
[
@@ -34,8 +34,8 @@ data_source_device
device
]
.SH DESCRIPTION
-The
-.B debugfs
+The
+.B debugfs
program is an interactive file system debugger. It can be used to
examine and change the state of an ext2, ext3, or ext4 file system.
.br
@@ -55,30 +55,30 @@ useful for filesystems with significant corruption, but because of this,
catastrophic mode forces the filesystem to be opened read-only.
.TP
.I \-i
-Specifies that
+Specifies that
.I device
represents an ext2 image file created by the
.B e2image
program. Since the ext2 image file only contains the superblock, block
-group descriptor, block and inode allocation bitmaps, and
+group descriptor, block and inode allocation bitmaps, and
the inode table, many
.B debugfs
-commands will not function properly.
+commands will not function properly.
.B Warning:
-no safety checks are in place, and
-.B debugfs
+no safety checks are in place, and
+.B debugfs
may fail in interesting ways if commands such as
-.IR ls ", " dump ", "
-etc. are tried without specifying the
+.IR ls ", " dump ", "
+etc. are tried without specifying the
.I data_source_device
-using the
+using the
.I \-d
option.
-.B debugfs
+.B debugfs
is a debugging tool. It has rough edges!
.TP
.I -d data_source_device
-Used with the
+Used with the
.I \-i
option, specifies that
.I data_source_device
@@ -99,11 +99,11 @@ option, you must also provide the blocksize of the filesystem via the
option.
.TP
.I -f cmd_file
-Causes
+Causes
.B debugfs
-to read in commands from
-.IR cmd_file ,
-and execute them. When
+to read in commands from
+.IR cmd_file ,
+and execute them. When
.B debugfs
is finished executing those commands, it will exit.
.TP
@@ -115,14 +115,14 @@ that some Linux devices, notably device mapper as of this writing, do
not support Direct I/O.
.TP
.I -R request
-Causes
+Causes
.B debugfs
-to execute the single command
+to execute the single command
.IR request ,
and then exit.
.TP
.I -V
-print the version number of
+print the version number of
.B debugfs
and exit.
.SH SPECIFYING FILES
@@ -130,128 +130,140 @@ Many
.B debugfs
commands take a
.I filespec
-as an argument to specify an inode (as opposed to a pathname)
-in the filesystem which is currently opened by
-.BR debugfs .
+as an argument to specify an inode (as opposed to a pathname)
+in the filesystem which is currently opened by
+.BR debugfs .
The
.I filespec
-argument may be specified in two forms. The first form is an inode
-number surrounded by angle brackets, e.g.,
+argument may be specified in two forms. The first form is an inode
+number surrounded by angle brackets, e.g.,
.IR <2> .
The second form is a pathname; if the pathname is prefixed by a forward slash
-('/'), then it is interpreted relative to the root of the filesystem
-which is currently opened by
+('/'), then it is interpreted relative to the root of the filesystem
+which is currently opened by
+.BR debugfs .
+If not, the pathname is
+interpreted relative to the current working directory as maintained by
.BR debugfs .
-If not, the pathname is
-interpreted relative to the current working directory as maintained by
-.BR debugfs .
-This may be modified by using the
+This may be modified by using the
.B debugfs
command
.IR cd .
-.\"
+.\"
.\"
.\"
.SH COMMANDS
-This is a list of the commands which
+This is a list of the commands which
.B debugfs
supports.
.TP
-.I blocks filespace
+.BI blocks " filespace"
Print the blocks used by the inode
.I filespec
to stdout.
.TP
-.I bmap filespec logical_block
+.BI bmap " filespec logical_block"
Print the physical block number corresponding to the logical block number
.I logical_block
in the inode
.IR filespec .
.TP
-.I cat filespec
-Dump the contents of the inode
+.BI block_dump " [-f filespec] block_num"
+Dump the filesystem block given by
+.I block_num
+in hex and ASCII format to the console. If the
+.I -f
+option is specified, the block number is relative to the start of the given
+.BR filespec .
+.TP
+.BI cat " filespec"
+Dump the contents of the inode
.I filespec
to stdout.
.TP
-.I cd filespec
-Change the current working directory to
+.BI cd " filespec"
+Change the current working directory to
.IR filespec .
.TP
-.I chroot filespec
-Change the root directory to be the directory
+.BI chroot " filespec"
+Change the root directory to be the directory
.IR filespec .
.TP
-.I close [-a]
-Close the currently open file system. If the
+.BI close " [-a]"
+Close the currently open file system. If the
.I -a
option is specified, write out any changes to the superblock and block
group descriptors to all of the backup superblocks, not just to the
master superblock.
.TP
-.I clri file
-Clear the contents of the inode
-.IR file .
+.BI clri " filespec"
+Clear the contents of the inode
+.IR filespec .
.TP
-.I dirsearch filespec filename
+.BI dirsearch " filespec filename"
Search the directory
.I filespec
for
.IR filename .
.TP
-.I dump [-p] filespec out_file
-Dump the contents of the inode
+.B dirty
+Mark the filesystem as dirty, so that the superblocks will be written on exit.
+.TP
+.BI dump " [-p] filespec out_file"
+Dump the contents of the inode
.I filespec
-to the output file
-.IR out_file .
-If the
-.I -p
-option is given set the owner, group and permissions information on
-.I out_file
-to match
+to the output file
+.IR out_file .
+If the
+.I -p
+option is given set the owner, group and permissions information on
+.I out_file
+to match
.IR filespec .
.TP
-.I dump_mmp
+.B dump_mmp
Display the multiple-mount protection (mmp) field values.
.TP
-.I dx_hash [-h hash_alg] [-s hash_seed] filename
+.BI dx_hash " [-h hash_alg] [-s hash_seed] filename"
Calculate the directory hash of
.IR filename .
The hash algorithm specified with
.I -h
-may be "legacy" "half_md4" or "tea".
+may be
+.BR legacy , " half_md4" ", or " tea .
The hash seed specified with
.I -s
must be in UUID format.
.TP
-.I dump_extents [-n] [-l] filespec
+.BI dump_extents " [-n] [-l] filespec"
Dump the the extent tree of the inode
.IR filespec .
-The
+The
.I -n
flag will cause
-.I dump_extents
+.B dump_extents
to only display the interior nodes in the extent tree. The
-.I -l
-flag cause
-.I dump_extents
+.I -l
+flag will cause
+.B dump_extents
to only display the leaf nodes in the extent tree.
.IP
(Please note that the length and range of blocks for the last extent in
an interior node is an estimate by the extents library functions, and is
not stored in filesystem data structures. Hence, the values displayed
-may not necessarily by accurate and does not indicate a problem or
+may not necessarily by accurate and does not indicate a problem or
corruption in the file system.)
.TP
-.I expand_dir filespec
+.BI expand_dir " filespec"
Expand the directory
.IR filespec .
.TP
-.I feature [fs_feature] [-fs_feature] ...
+.BI feature " [fs_feature] [-fs_feature] ..."
Set or clear various filesystem features in the superblock. After setting
or clearing any filesystem features that were requested, print the current
state of the filesystem feature set.
.TP
-.I filefrag [-dvr] filespec
+.BI filefrag " [-dvr] filespec"
Print the number of contiguous extents in
.IR filespec .
If
@@ -272,36 +284,39 @@ option will cause
.I filefrag
to do a recursive listing of the directory.
.TP
-.I find_free_block [count [goal]]
-Find the first
+.BI find_free_block " [count [goal]]"
+Find the first
.I count
free blocks, starting from
.I goal
-and allocate it.
+and allocate it. Also available as
+.BR ffb .
.TP
-.I find_free_inode [dir [mode]]
-Find a free inode and allocate it. If present,
+.BI find_free_inode " [dir [mode]]"
+Find a free inode and allocate it. If present,
.I dir
-specifies the inode number of the directory
-which the inode is to be located. The second
+specifies the inode number of the directory
+which the inode is to be located. The second
optional argument
.I mode
specifies the permissions of the new inode. (If the directory bit is set
-on the mode, the allocation routine will function differently.)
+on the mode, the allocation routine will function differently.) Also
+available as
+.BR ffi .
.TP
-.I freeb block [count]
+.BI freeb " block [count]"
Mark the block number
.I block
as not allocated.
-If the optional argument
-.I count
-is present, then
+If the optional argument
+.I count
+is present, then
.I count
blocks starting at block number
.I block
will be marked as not allocated.
.TP
-.I freefrag [-c chunk_kb ]
+.BI freefrag " [-c chunk_kb]"
Report free space fragmentation on the currently open file system.
If the
.I \-c
@@ -311,145 +326,159 @@ chunks of size
can be found in the file system. The chunk size must be a power of two
and be larger than the file system block size.
.TP
-.I freei filespec [num]
-Free the inode specified by
+.BI freei " filespec [num]"
+Free the inode specified by
.IR filespec .
If
.I num
is specified, also clear num-1 inodes after the specified inode.
.TP
-.I help
-Print a list of commands understood by
+.B help
+Print a list of commands understood by
.BR debugfs .
.TP
-.I htree_dump filespec
+.BI htree_dump " filespec"
Dump the hash-indexed directory
.IR filespec ,
showing its tree structure.
.TP
-.I icheck block ...
+.BI icheck " block ..."
Print a listing of the inodes which use the one or more blocks specified
on the command line.
.TP
-.I imap filespec
-Print the location of the inode data structure (in the inode table)
+.BI imap " filespec"
+Print the location of the inode data structure (in the inode table)
of the inode
.IR filespec .
.TP
-.I init_filesys device blocksize
+.BI init_filesys " device blocksize"
Create an ext2 file system on
.I device
with device size
.IR blocksize .
-Note that this does not fully initialize all of the data structures;
-to do this, use the
+Note that this does not fully initialize all of the data structures;
+to do this, use the
.BR mke2fs (8)
program. This is just a call to the low-level library, which sets up
the superblock and block descriptors.
.TP
-.I kill_file filespec
-Deallocate the inode
+.BI kill_file " filespec"
+Deallocate the inode
.I filespec
and its blocks. Note that this does not remove any directory
-entries (if any) to this inode. See the
+entries (if any) to this inode. See the
.BR rm (1)
command if you wish to unlink a file.
.TP
-.I lcd directory
+.BI lcd " directory"
Change the current working directory of the
.B debugfs
process to
.I directory
on the native filesystem.
.TP
-.I ln filespec dest_file
-Create a link named
+.BI ln " filespec dest_file"
+Create a link named
.I dest_file
-which is a link to
+which is a hard link to
.IR filespec .
Note this does not adjust the inode reference counts.
.TP
-.I logdump [-acs] [-b<block>] [-i<filespec>] [-f<journal_file>] [output_file]
-Dump the contents of the ext3 journal. By default, the journal inode as
-specified in the superblock. However, this can be overridden with the
+.BI logdump " [-acs] [-b block] [-i filespec] [-f journal_file] [output_file]"
+Dump the contents of the ext3 journal. By default, dump the journal inode as
+specified in the superblock. However, this can be overridden with the
.I \-i
-option, which uses an inode specifier to specify the journal to be
-used. A file containing journal data can be specified using the
+option, which dumps the journal from the internal inode given by
+.IR filespec .
+A regular file containing journal data can be specified using the
.I \-f
-option. Finally, the
+option. Finally, the
.I \-s
option utilizes the backup information in the superblock to locate the
journal.
.IP
-The
+The
.I \-a
-option causes the
-.I logdump
+option causes the
+.B logdump
program to print the contents of all of the descriptor blocks.
-The
+The
.I \-b
-option causes
-.I logdump
-to print all journal records that are refer to the specified block.
-The
+option causes
+.B logdump
+to print all journal records that are refer to the specified block.
+The
.I \-c
option will print out the contents of all of the data blocks selected by
-the
+the
.I \-a
-and
+and
.I \-b
options.
.TP
-.I ls [-l] [-d] [-p] filespec
+.BI ls " [-d] [-l] [-p] filespec"
Print a listing of the files in the directory
.IR filespec .
-The
-.I \-l
-flag will list files using a more verbose format.
The
.I \-d
flag will list deleted entries in the directory.
-The
+The
+.I \-l
+flag will list files using a more verbose format.
+The
.I \-p
flag will list the files in a format which is more easily parsable by
scripts, as well as making it more clear when there are spaces or other
non-printing characters at the end of filenames.
.TP
-.I modify_inode filespec
+.BI list_deleted_inodes " [limit]"
+List deleted inodes, optionally limited to those deleted within
+.I limit
+seconds ago. Also available as
+.BR lsdel .
+.IP
+This command was useful for recovering from accidental file deletions
+for ext2 file systems. Unfortunately, it is not useful for this purpose
+if the files were deleted using ext3 or ext4, since the inode's
+data blocks are no longer available after the inode is released.
+.TP
+.BI modify_inode " filespec"
Modify the contents of the inode structure in the inode
.IR filespec .
+Also available as
+.BR mi .
.TP
-.I mkdir filespec
+.BI mkdir " filespec"
Make a directory.
.TP
-.I mknod filespec [p|[[c|b] major minor]]
+.BI mknod " filespec [p|[[c|b] major minor]]"
Create a special device file (a named pipe, character or block device).
-If a character or block device is to be made, the
+If a character or block device is to be made, the
.I major
and
.I minor
device numbers must be specified.
.TP
-.I ncheck [-c] inode_num ...
+.BI ncheck " [-c] inode_num ..."
Take the requested list of inode numbers, and print a listing of pathnames
to those inodes. The
.I -c
flag will enable checking the file type information in the directory
entry to make sure it matches the inode's type.
.TP
-.I open [-w] [-e] [-f] [-i] [-c] [-D] [-b blocksize] [-s superblock] device
-Open a filesystem for editing. The
-.I -f
-flag forces the filesystem to be opened even if there are some unknown
-or incompatible filesystem features which would normally
+.BI open " [-weficD] [-b blocksize] [-s superblock] device"
+Open a filesystem for editing. The
+.I -f
+flag forces the filesystem to be opened even if there are some unknown
+or incompatible filesystem features which would normally
prevent the filesystem from being opened. The
.I -e
flag causes the filesystem to be opened in exclusive mode. The
.IR -b ", " -c ", " -i ", " -s ", " -w ", and " -D
-options behave the same as the command-line options to
+options behave the same as the command-line options to
.BR debugfs .
.TP
-.I punch filespec start_blk [end_blk]
+.BI punch " filespec start_blk [end_blk]"
Delete the blocks in the inode ranging from
.I start_blk
to
@@ -461,14 +490,17 @@ is, all of the blocks starting at
.I start_blk
through to the end of the file will be deallocated.
.TP
-.I pwd
+.BI symlink " filespec target"
+Make a symbolic link.
+.TP
+.B pwd
Print the current working directory.
.TP
-.I quit
+.B quit
Quit
.B debugfs
.TP
-.I rdump directory destination
+.BI rdump " directory destination"
Recursively dump
.I directory
and all its contents (including regular files, symbolic links, and other
@@ -476,161 +508,202 @@ directories) into the named
.I destination
which should be an existing directory on the native filesystem.
.TP
-.I rm pathname
-Unlink
+.BI rm " pathname"
+Unlink
.IR pathname .
-If this causes the inode pointed to by
+If this causes the inode pointed to by
.I pathname
to have no other references, deallocate the file. This command functions
as the unlink() system call.
-.I
+.I
.TP
-.I rmdir filespec
+.BI rmdir " filespec"
Remove the directory
.IR filespec .
.TP
-.I setb block [count]
+.BI setb " block [count]"
Mark the block number
.I block
as allocated.
-If the optional argument
-.I count
-is present, then
+If the optional argument
+.I count
+is present, then
.I count
blocks starting at block number
.I block
will be marked as allocated.
.TP
-.I set_block_group bgnum field value
+.BI set_block_group " bgnum field value"
Modify the block group descriptor specified by
.I bgnum
so that the block group descriptor field
.I field
has value
-.I value.
+.IR value .
+Also available as
+.BR set_bg .
.TP
-.I seti filespec [num]
-Mark inode
+.BI seti " filespec [num]"
+Mark inode
.I filespec
as in use in the inode bitmap. If
.I num
is specified, also set num-1 inodes after the specified inode.
.TP
-.I set_inode_field filespec field value
-Modify the inode specified by
+.BI set_inode_field " filespec field value"
+Modify the inode specified by
.I filespec
so that the inode field
.I field
-has value
+has value
.I value.
-The list of valid inode fields which can be set via this command
+The list of valid inode fields which can be set via this command
can be displayed by using the command:
.B set_inode_field -l
+Also available as
+.BR sif .
.TP
-.I set_mmp_value field value
-Modify the multiple-mount protection (mmp) data so that the
-mmp field
+.BI set_mmp_value " field value"
+Modify the multiple-mount protection (MMP) data so that the MMP field
.I field
has value
.I value.
-The list of valid mmp fields which can be set via this command
+The list of valid MMP fields which can be set via this command
can be displayed by using the command:
.B set_mmp_value -l
+Also available as
+.BR smmp .
.TP
-.I set_super_value field value
+.BI set_super_value " field value"
Set the superblock field
.I field
-to
+to
.I value.
-The list of valid superblock fields which can be set via this command
+The list of valid superblock fields which can be set via this command
can be displayed by using the command:
.B set_super_value -l
+Also available as
+.BR ssv .
.TP
-.I show_super_stats [-h]
+.BI show_super_stats " [-h]"
List the contents of the super block and the block group descriptors. If the
.I -h
-flag is given, only print out the superblock contents.
+flag is given, only print out the superblock contents. Also available as
+.BR stats .
.TP
-.I stat filespec
+.BI stat " filespec"
Display the contents of the inode structure of the inode
.IR filespec .
.TP
-.I testb block [count]
+.BI testb " block [count]"
Test if the block number
.I block
is marked as allocated in the block bitmap.
-If the optional argument
-.I count
-is present, then
+If the optional argument
+.I count
+is present, then
.I count
blocks starting at block number
.I block
will be tested.
.TP
-.I testi filespec
-Test if the inode
+.BI testi " filespec"
+Test if the inode
.I filespec
is marked as allocated in the inode bitmap.
.TP
-.I undel <inode num> [pathname]
+.BI undel " <inode_number> [pathname]"
Undelete the specified inode number (which must be surrounded by angle
brackets) so that it and its blocks are marked in use, and optionally
-link the recovered inode to the specified pathname. The
+link the recovered inode to the specified pathname. The
.B e2fsck
-command should always be run after using the
+command should always be run after using the
.B undel
command to recover deleted files.
.IP
Note that if you are recovering a large number of deleted files, linking
the inode to a directory may require the directory to be expanded, which
could allocate a block that had been used by one of the
-yet-to-be-undeleted files. So it is safer to undelete all of the
+yet-to-be-undeleted files. So it is safer to undelete all of the
inodes without specifying a destination pathname, and then in a separate
pass, use the debugfs
.B link
-command to link the inode to the destination pathname, or use
+command to link the inode to the destination pathname, or use
.B e2fsck
to check the filesystem and link all of the recovered inodes to the
lost+found directory.
.TP
-.I unlink pathname
-Remove the link specified by
-.I pathname
+.BI unlink " pathname"
+Remove the link specified by
+.I pathname
to an inode. Note this does not adjust the inode reference counts.
.TP
-.I write source_file out_file
-Create a file in the filesystem named
-.IR out_file ,
-and copy the contents of
+.BI write " source_file out_file"
+Copy the contents of
.I source_file
-into the destination file.
+into a newly-created file in the filesystem named
+.IR out_file .
+.TP
+.BI zap_block " [-f filespec] [-o offset] [-l length] [-p pattern] block_num"
+.TP
+Overwrite the block specified by
+.I block_num
+with zero (NUL) bytes, or if
+.I -p
+is given use the byte specified by
+.IR pattern .
+If
+.I -f
+is given then
+.I block_num
+is relative to the start of the file given by
+.IR filespec .
+The
+.I -o
+and
+.I -l
+options limit the range of bytes to zap to the specified
+.I offset
+and
+.I length
+relative to the start of the block.
+.TP
+.BI zap_block " [-f filespec] [-b bit] block_num"
+Bit-flip portions of the physical
+.IR block_num .
+If
+.I -f
+is given, then
+.I block_num
+is a logical block relative to the start of
+.IR filespec .
.SH ENVIRONMENT VARIABLES
.TP
.B DEBUGFS_PAGER, PAGER
The
.B debugfs
program always pipes the output of the some commands through a
-pager program. These commands include:
-.IR show_super_stats ,
-.IR list_directory ,
-.IR show_inode_info ,
-.IR list_deleted_inodes ,
+pager program. These commands include:
+.IR show_super_stats " (" stats ),
+.IR list_directory " (" ls ),
+.IR show_inode_info " (" stat ),
+.IR list_deleted_inodes " (" lsdel ),
and
.IR htree_dump .
The specific pager can explicitly specified by the
.B DEBUGFS_PAGER
environment variable, and if it is not set, by the
.B PAGER
-environment variable.
+environment variable.
.IP
-Note that since a pager is always used, the
+Note that since a pager is always used, the
.BR less (1)
pager is not particularly appropriate, since it clears the screen before
displaying the output of the command and clears the output the screen
-when the pager is exited. Many users prefer to use the
+when the pager is exited. Many users prefer to use the
.BR less (1)
-pager for most purposes, which is why the
-.B DEBUGFS_PAGER
+pager for most purposes, which is why the
+.B DEBUGFS_PAGER
environment variable is available to override the more general
.B PAGER
environment variable.
@@ -641,4 +714,5 @@ was written by Theodore Ts'o <tytso@mit.edu>.
.BR dumpe2fs (8),
.BR tune2fs (8),
.BR e2fsck (8),
-.BR mke2fs (8)
+.BR mke2fs (8),
+.BR ext4 (5)
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
index e82dddb4..326f41e8 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
@@ -28,8 +28,6 @@ extern char *optarg;
#include <sys/types.h>
#include <sys/stat.h>
-#include "et/com_err.h"
-#include "ss/ss.h"
#include "debugfs.h"
#include "uuid/uuid.h"
#include "e2p/e2p.h"
@@ -39,11 +37,26 @@ extern char *optarg;
#include "../version.h"
#include "jfs_user.h"
-extern ss_request_table debug_cmds;
+#ifndef BUFSIZ
+#define BUFSIZ 8192
+#endif
+
+/* 64KiB is the minimium blksize to best minimize system call overhead. */
+#ifndef IO_BUFSIZE
+#define IO_BUFSIZE 64*1024
+#endif
+
+/* Block size for `st_blocks' */
+#ifndef S_BLKSIZE
+#define S_BLKSIZE 512
+#endif
+
ss_request_table *extra_cmds;
const char *debug_prog_name;
+int sci_idx;
ext2_filsys current_fs = NULL;
+quota_ctx_t current_qctx;
ext2_ino_t root, cwd;
static void open_filesystem(char *device, int open_flags, blk64_t superblock,
@@ -169,8 +182,8 @@ void do_open_filesys(int argc, char **argv)
return;
break;
case 's':
- superblock = parse_ulong(optarg, argv[0],
- "superblock number", &err);
+ err = strtoblk(argv[0], optarg,
+ "superblock block number", &superblock);
if (err)
return;
break;
@@ -189,7 +202,8 @@ void do_open_filesys(int argc, char **argv)
return;
print_usage:
- fprintf(stderr, "%s: Usage: open [-s superblock] [-b blocksize] [-c] "
+ fprintf(stderr, "%s: Usage: open [-s superblock] [-b blocksize] "
+ "[-d image_filename] [-c] [-i] [-f] [-e] [-D] "
#ifndef READ_ONLY
"[-w] "
#endif
@@ -225,6 +239,8 @@ static void close_filesystem(NOARGS)
if (retval)
com_err("ext2fs_write_block_bitmap", retval, 0);
}
+ if (current_qctx)
+ quota_release_context(&current_qctx);
retval = ext2fs_close(current_fs);
if (retval)
com_err("ext2fs_close", retval, 0);
@@ -265,16 +281,17 @@ void do_init_filesys(int argc, char **argv)
struct ext2_super_block param;
errcode_t retval;
int err;
+ blk64_t blocks;
if (common_args_process(argc, argv, 3, 3, "initialize",
- "<device> <blocksize>", CHECK_FS_NOTOPEN))
+ "<device> <blocks>", CHECK_FS_NOTOPEN))
return;
memset(&param, 0, sizeof(struct ext2_super_block));
- ext2fs_blocks_count_set(&param, parse_ulong(argv[2], argv[0],
- "blocks count", &err));
+ err = strtoblk(argv[0], argv[2], "blocks count", &blocks);
if (err)
return;
+ ext2fs_blocks_count_set(&param, blocks);
retval = ext2fs_initialize(argv[1], 0, &param,
unix_io_manager, &current_fs);
if (retval) {
@@ -1000,7 +1017,7 @@ void do_freei(int argc, char *argv[])
if (common_args_process(argc, argv, 2, 3, argv[0], "<file> [num]",
CHECK_FS_RW | CHECK_FS_BITMAPS))
- return 1;
+ return;
if (check_fs_read_write(argv[0]))
return;
@@ -1018,7 +1035,7 @@ void do_freei(int argc, char *argv[])
!ext2fs_test_inode_bitmap2(current_fs->inode_map,inode))
com_err(argv[0], 0, "Warning: inode already clear");
while (len-- > 0)
- ext2fs_unmark_inode_bitmap2(current_fs->inode_map, inode);
+ ext2fs_unmark_inode_bitmap2(current_fs->inode_map, inode++);
ext2fs_mark_ib_dirty(current_fs);
}
@@ -1561,22 +1578,38 @@ void do_find_free_inode(int argc, char *argv[])
}
#ifndef READ_ONLY
-static errcode_t copy_file(int fd, ext2_ino_t newfile)
+static errcode_t copy_file(int fd, ext2_ino_t newfile, int bufsize, int make_holes)
{
ext2_file_t e2_file;
errcode_t retval;
int got;
unsigned int written;
- char buf[8192];
+ char *buf;
char *ptr;
+ char *zero_buf;
+ int cmp;
retval = ext2fs_file_open(current_fs, newfile,
EXT2_FILE_WRITE, &e2_file);
if (retval)
return retval;
+ retval = ext2fs_get_mem(bufsize, &buf);
+ if (retval) {
+ com_err("copy_file", retval, "can't allocate buffer\n");
+ return retval;
+ }
+
+ /* This is used for checking whether the whole block is zero */
+ retval = ext2fs_get_memzero(bufsize, &zero_buf);
+ if (retval) {
+ com_err("copy_file", retval, "can't allocate buffer\n");
+ ext2fs_free_mem(&buf);
+ return retval;
+ }
+
while (1) {
- got = read(fd, buf, sizeof(buf));
+ got = read(fd, buf, bufsize);
if (got == 0)
break;
if (got < 0) {
@@ -1584,6 +1617,21 @@ static errcode_t copy_file(int fd, ext2_ino_t newfile)
goto fail;
}
ptr = buf;
+
+ /* Sparse copy */
+ if (make_holes) {
+ /* Check whether all is zero */
+ cmp = memcmp(ptr, zero_buf, got);
+ if (cmp == 0) {
+ /* The whole block is zero, make a hole */
+ retval = ext2fs_file_lseek(e2_file, got, EXT2_SEEK_CUR, NULL);
+ if (retval)
+ goto fail;
+ got = 0;
+ }
+ }
+
+ /* Normal copy */
while (got > 0) {
retval = ext2fs_file_write(e2_file, ptr,
got, &written);
@@ -1594,10 +1642,14 @@ static errcode_t copy_file(int fd, ext2_ino_t newfile)
ptr += written;
}
}
+ ext2fs_free_mem(&buf);
+ ext2fs_free_mem(&zero_buf);
retval = ext2fs_file_close(e2_file);
return retval;
fail:
+ ext2fs_free_mem(&buf);
+ ext2fs_free_mem(&zero_buf);
(void) ext2fs_file_close(e2_file);
return retval;
}
@@ -1610,6 +1662,8 @@ void do_write(int argc, char *argv[])
ext2_ino_t newfile;
errcode_t retval;
struct ext2_inode inode;
+ int bufsize = IO_BUFSIZE;
+ int make_holes = 0;
if (common_args_process(argc, argv, 3, 3, "write",
"<native file> <new file>", CHECK_FS_RW))
@@ -1667,14 +1721,33 @@ void do_write(int argc, char *argv[])
inode.i_links_count = 1;
inode.i_size = statbuf.st_size;
if (current_fs->super->s_feature_incompat &
- EXT3_FEATURE_INCOMPAT_EXTENTS)
+ EXT3_FEATURE_INCOMPAT_EXTENTS) {
+ int i;
+ struct ext3_extent_header *eh;
+
+ eh = (struct ext3_extent_header *) &inode.i_block[0];
+ eh->eh_depth = 0;
+ eh->eh_entries = 0;
+ eh->eh_magic = ext2fs_cpu_to_le16(EXT3_EXT_MAGIC);
+ i = (sizeof(inode.i_block) - sizeof(*eh)) /
+ sizeof(struct ext3_extent);
+ eh->eh_max = ext2fs_cpu_to_le16(i);
inode.i_flags |= EXT4_EXTENTS_FL;
+ }
if (debugfs_write_new_inode(newfile, &inode, argv[0])) {
close(fd);
return;
}
if (LINUX_S_ISREG(inode.i_mode)) {
- retval = copy_file(fd, newfile);
+ if (statbuf.st_blocks < statbuf.st_size / S_BLKSIZE) {
+ make_holes = 1;
+ /*
+ * Use I/O blocksize as buffer size when
+ * copying sparse files.
+ */
+ bufsize = statbuf.st_blksize;
+ }
+ retval = copy_file(fd, newfile, bufsize, make_holes);
if (retval)
com_err("copy_file", retval, 0);
}
@@ -1749,8 +1822,7 @@ void do_mknod(int argc, char *argv[])
}
if (ext2fs_test_inode_bitmap2(current_fs->inode_map,newfile))
com_err(argv[0], 0, "Warning: inode already set");
- ext2fs_mark_inode_bitmap2(current_fs->inode_map, newfile);
- ext2fs_mark_ib_dirty(current_fs);
+ ext2fs_inode_alloc_stats2(current_fs, newfile, +1, 0);
memset(&inode, 0, sizeof(inode));
inode.i_mode = mode;
inode.i_atime = inode.i_ctime = inode.i_mtime =
@@ -1973,13 +2045,11 @@ void do_rmdir(int argc, char *argv[])
void do_show_debugfs_params(int argc EXT2FS_ATTR((unused)),
char *argv[] EXT2FS_ATTR((unused)))
{
- FILE *out = stdout;
-
if (current_fs)
- fprintf(out, "Open mode: read-%s\n",
- current_fs->flags & EXT2_FLAG_RW ? "write" : "only");
- fprintf(out, "Filesystem in use: %s\n",
- current_fs ? current_fs->device_name : "--none--");
+ printf("Open mode: read-%s\n",
+ current_fs->flags & EXT2_FLAG_RW ? "write" : "only");
+ printf("Filesystem in use: %s\n",
+ current_fs ? current_fs->device_name : "--none--");
}
#ifndef READ_ONLY
@@ -2032,11 +2102,13 @@ void do_bmap(int argc, char *argv[])
ino = string_to_inode(argv[1]);
if (!ino)
return;
- blk = parse_ulong(argv[2], argv[0], "logical_block", &err);
+ err = strtoblk(argv[0], argv[2], "logical block", &blk);
+ if (err)
+ return;
errcode = ext2fs_bmap2(current_fs, ino, 0, 0, 0, blk, 0, &pblk);
if (errcode) {
- com_err("argv[0]", errcode,
+ com_err(argv[0], errcode,
"while mapping logical block %llu\n", blk);
return;
}
@@ -2177,10 +2249,14 @@ void do_punch(int argc, char *argv[])
ino = string_to_inode(argv[1]);
if (!ino)
return;
- start = parse_ulong(argv[2], argv[0], "logical_block", &err);
- if (argc == 4)
- end = parse_ulong(argv[3], argv[0], "logical_block", &err);
- else
+ err = strtoblk(argv[0], argv[2], "logical block", &start);
+ if (err)
+ return;
+ if (argc == 4) {
+ err = strtoblk(argv[0], argv[3], "logical block", &end);
+ if (err)
+ return;
+ } else
end = ~0;
errcode = ext2fs_punch(current_fs, ino, 0, 0, start, end);
@@ -2194,6 +2270,49 @@ void do_punch(int argc, char *argv[])
}
#endif /* READ_ONLY */
+void do_symlink(int argc, char *argv[])
+{
+ char *cp;
+ ext2_ino_t parent;
+ char *name, *target;
+ errcode_t retval;
+
+ if (common_args_process(argc, argv, 3, 3, "symlink",
+ "<filename> <target>", CHECK_FS_RW))
+ return;
+
+ cp = strrchr(argv[1], '/');
+ if (cp) {
+ *cp = 0;
+ parent = string_to_inode(argv[1]);
+ if (!parent) {
+ com_err(argv[1], ENOENT, 0);
+ return;
+ }
+ name = cp+1;
+ } else {
+ parent = cwd;
+ name = argv[1];
+ }
+ target = argv[2];
+
+try_again:
+ retval = ext2fs_symlink(current_fs, parent, 0, name, target);
+ if (retval == EXT2_ET_DIR_NO_SPACE) {
+ retval = ext2fs_expand_dir(current_fs, parent);
+ if (retval) {
+ com_err(argv[0], retval, "while expanding directory");
+ return;
+ }
+ goto try_again;
+ }
+ if (retval) {
+ com_err("ext2fs_symlink", retval, 0);
+ return;
+ }
+
+}
+
void do_dump_mmp(int argc EXT2FS_ATTR((unused)), char *argv[])
{
struct ext2_super_block *sb;
@@ -2205,11 +2324,6 @@ void do_dump_mmp(int argc EXT2FS_ATTR((unused)), char *argv[])
return;
sb = current_fs->super;
- if (sb->s_mmp_block <= sb->s_first_data_block ||
- sb->s_mmp_block >= ext2fs_blocks_count(sb)) {
- com_err(argv[0], EXT2_ET_MMP_BAD_BLOCK, "while dumping it.\n");
- return;
- }
if (current_fs->mmp_buf == NULL) {
retval = ext2fs_get_mem(current_fs->blocksize,
@@ -2241,10 +2355,10 @@ void do_dump_mmp(int argc EXT2FS_ATTR((unused)), char *argv[])
fprintf(stdout, "magic: 0x%x\n", mmp_s->mmp_magic);
}
-static int source_file(const char *cmd_file, int sci_idx)
+static int source_file(const char *cmd_file, int ss_idx)
{
FILE *f;
- char buf[256];
+ char buf[BUFSIZ];
char *cp;
int exit_status = 0;
int retval;
@@ -2272,9 +2386,9 @@ static int source_file(const char *cmd_file, int sci_idx)
if (cp)
*cp = 0;
printf("debugfs: %s\n", buf);
- retval = ss_execute_line(sci_idx, buf);
+ retval = ss_execute_line(ss_idx, buf);
if (retval) {
- ss_perror(sci_idx, retval, buf);
+ ss_perror(ss_idx, retval, buf);
exit_status++;
}
}
@@ -2286,7 +2400,6 @@ static int source_file(const char *cmd_file, int sci_idx)
int main(int argc, char **argv)
{
int retval;
- int sci_idx;
const char *usage =
"Usage: %s [-b blocksize] [-s superblock] [-f cmd_file] "
"[-R request] [-V] ["
@@ -2346,8 +2459,11 @@ int main(int argc, char **argv)
"block size", 0);
break;
case 's':
- superblock = parse_ulong(optarg, argv[0],
- "superblock number", 0);
+ retval = strtoblk(argv[0], optarg,
+ "superblock block number",
+ &superblock);
+ if (retval)
+ return 1;
break;
case 'c':
catastrophic = 1;
diff --git a/debugfs/debugfs.h b/debugfs/debugfs.h
index 994577ce..9b67f69c 100644
--- a/debugfs/debugfs.h
+++ b/debugfs/debugfs.h
@@ -2,8 +2,10 @@
* debugfs.h --- header file for the debugfs program
*/
+#include "ss/ss.h"
#include "ext2fs/ext2_fs.h"
#include "ext2fs/ext2fs.h"
+#include "quota/quotaio.h"
#ifdef __STDC__
#define NOARGS void
@@ -20,7 +22,10 @@
#define CHECK_FS_NOTOPEN 0x0004
extern ext2_filsys current_fs;
+extern quota_ctx_t current_qctx;
extern ext2_ino_t root, cwd;
+extern int sci_idx;
+extern ss_request_table debug_cmds, extent_cmds;
extern void reset_getopt(void);
extern FILE *open_pager(void);
@@ -36,7 +41,8 @@ extern unsigned long parse_ulong(const char *str, const char *cmd,
const char *descr, int *err);
extern unsigned long long parse_ulonglong(const char *str, const char *cmd,
const char *descr, int *err);
-extern int strtoblk(const char *cmd, const char *str, blk64_t *ret);
+extern int strtoblk(const char *cmd, const char *str, const char *errmsg,
+ blk64_t *ret);
extern int common_args_process(int argc, char *argv[], int min_argc,
int max_argc, const char *cmd,
const char *usage, int flags);
@@ -63,6 +69,32 @@ extern void do_dump(int argc, char **argv);
extern void do_cat(int argc, char **argv);
extern void do_rdump(int argc, char **argv);
+/* extent_inode.c */
+extern void do_extent_open(int argc, char **argv);
+extern void do_extent_close(int argc, char **argv);
+extern void do_current_node(int argc, char **argv);
+extern void do_root_node(int argc, char **argv);
+extern void do_last_leaf(int argc, char **argv);
+extern void do_first_sib(int argc, char **argv);
+extern void do_last_sib(int argc, char **argv);
+extern void do_next_sib(int argc, char **argv);
+extern void do_prev_sib(int argc, char **argv);
+extern void do_next_leaf(int argc, char **argv);
+extern void do_prev_leaf(int argc, char **argv);
+extern void do_next(int argc, char **argv);
+extern void do_prev(int argc, char **argv);
+extern void do_up(int argc, char **argv);
+extern void do_down(int argc, char **argv);
+extern void do_delete_node(int argc, char **argv);
+extern void do_replace_node(int argc, char **argv);
+extern void do_split_node(int argc, char **argv);
+extern void do_insert_node(int argc, char **argv);
+extern void do_set_bmap(int argc, char **argv);
+extern void do_print_all(int argc, char **argv);
+extern void do_fix_parents(int argc, char **argv);
+extern void do_info(int argc, char **argv);
+extern void do_goto_block(int argc, char **argv);
+
/* htree.c */
extern void do_htree_dump(int argc, char **argv);
extern void do_dx_hash(int argc, char **argv);
@@ -133,9 +165,21 @@ extern void do_imap(int argc, char **argv);
extern void do_set_current_time(int argc, char **argv);
extern void do_supported_features(int argc, char **argv);
extern void do_punch(int argc, char **argv);
+extern void do_symlink(int argc, char **argv);
extern void do_dump_mmp(int argc, char **argv);
extern void do_set_mmp_value(int argc, char **argv);
extern void do_freefrag(int argc, char **argv);
extern void do_filefrag(int argc, char *argv[]);
+
+/* quota.c */
+extern void do_list_quota(int argc, char *argv[]);
+extern void do_get_quota(int argc, char *argv[]);
+
+/* util.c */
+extern time_t string_to_time(const char *arg);
+
+/* zap.c */
+extern void do_zap_block(int argc, char **argv);
+extern void do_block_dump(int argc, char **argv);
diff --git a/debugfs/dump.c b/debugfs/dump.c
index a15a0b73..51bc734a 100644
--- a/debugfs/dump.c
+++ b/debugfs/dump.c
@@ -105,10 +105,10 @@ static void dump_file(const char *cmdname, ext2_ino_t ino, int fd,
{
errcode_t retval;
struct ext2_inode inode;
- char buf[8192];
+ char *buf = 0;
ext2_file_t e2_file;
int nbytes;
- unsigned int got;
+ unsigned int got, blocksize = current_fs->blocksize;
if (debugfs_read_inode(ino, &inode, cmdname))
return;
@@ -118,8 +118,13 @@ static void dump_file(const char *cmdname, ext2_ino_t ino, int fd,
com_err(cmdname, retval, "while opening ext2 file");
return;
}
+ retval = ext2fs_get_mem(blocksize, &buf);
+ if (retval) {
+ com_err(cmdname, retval, "while allocating memory");
+ return;
+ }
while (1) {
- retval = ext2fs_file_read(e2_file, buf, sizeof(buf), &got);
+ retval = ext2fs_file_read(e2_file, buf, blocksize, &got);
if (retval)
com_err(cmdname, retval, "while reading ext2 file");
if (got == 0)
@@ -128,6 +133,8 @@ static void dump_file(const char *cmdname, ext2_ino_t ino, int fd,
if ((unsigned) nbytes != got)
com_err(cmdname, errno, "while writing file");
}
+ if (buf)
+ ext2fs_free_mem(&buf);
retval = ext2fs_file_close(e2_file);
if (retval) {
com_err(cmdname, retval, "while closing ext2 file");
@@ -136,8 +143,6 @@ static void dump_file(const char *cmdname, ext2_ino_t ino, int fd,
if (preserve)
fix_perms("dump_file", &inode, fd, outname);
- else if (fd != 1)
- close(fd);
return;
}
@@ -184,6 +189,11 @@ void do_dump(int argc, char **argv)
}
dump_file(argv[0], inode, fd, preserve, out_fn);
+ if (close(fd) != 0) {
+ com_err(argv[0], errno, "while closing %s for dump_inode",
+ out_fn);
+ return;
+ }
return;
}
@@ -266,6 +276,10 @@ static void rdump_inode(ext2_ino_t ino, struct ext2_inode *inode,
goto errout;
}
dump_file("rdump", ino, fd, 1, fullname);
+ if (close(fd) != 0) {
+ com_err("rdump", errno, "while dumping %s", fullname);
+ goto errout;
+ }
}
else if (LINUX_S_ISDIR(inode->i_mode) && strcmp(name, ".") && strcmp(name, "..")) {
errcode_t retval;
diff --git a/lib/ext2fs/extent_dbg.ct b/debugfs/extent_cmds.ct
index d0571f47..e1c4395c 100644
--- a/lib/ext2fs/extent_dbg.ct
+++ b/debugfs/extent_cmds.ct
@@ -4,9 +4,6 @@
#
command_table extent_cmds;
-request do_inode, "Open an inode",
- inode;
-
request do_current_node, "Current extent node",
current_node, current;
@@ -55,6 +52,9 @@ request do_insert_node, "Insert node",
request do_split_node, "Split node",
split_node, split;
+request do_fix_parents, "Fix parents",
+ fix_parents, fixp;
+
request do_set_bmap, "Set block mapping",
set_bmap;
@@ -70,5 +70,8 @@ request do_goto_block, "Goto extent containing specified block",
request do_info, "Print extent info",
info;
+request do_extent_close, "Close extent handle",
+ extent_close, ec;
+
end;
diff --git a/debugfs/extent_inode.c b/debugfs/extent_inode.c
new file mode 100644
index 00000000..8b22f5e3
--- /dev/null
+++ b/debugfs/extent_inode.c
@@ -0,0 +1,537 @@
+/*
+ * extent_inode.c --- direct extent tree manipulation
+ *
+ * Copyright (C) 2012 Theodore Ts'o. This file may be redistributed
+ * under the terms of the GNU Public License.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#else
+extern int optind;
+extern char *optarg;
+#endif
+
+#include "debugfs.h"
+
+static ext2_ino_t current_ino;
+static ext2_extent_handle_t current_handle;
+
+static void dbg_print_extent(char *desc, struct ext2fs_extent *extent)
+{
+ if (desc)
+ printf("%s: ", desc);
+ printf("extent: lblk %llu--%llu, len %u, pblk %llu, flags: ",
+ extent->e_lblk, extent->e_lblk + extent->e_len - 1,
+ extent->e_len, extent->e_pblk);
+ if (extent->e_flags & EXT2_EXTENT_FLAGS_LEAF)
+ fputs("LEAF ", stdout);
+ if (extent->e_flags & EXT2_EXTENT_FLAGS_UNINIT)
+ fputs("UNINIT ", stdout);
+ if (extent->e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT)
+ fputs("2ND_VISIT ", stdout);
+ if (!extent->e_flags)
+ fputs("(none)", stdout);
+ fputc('\n', stdout);
+
+}
+
+static int common_extent_args_process(int argc, char *argv[], int min_argc,
+ int max_argc, const char *cmd,
+ const char *usage, int flags)
+{
+ if (common_args_process(argc, argv, min_argc, max_argc, cmd,
+ usage, flags))
+ return 1;
+
+ if (!current_handle) {
+ com_err(cmd, 0, "Extent handle not open");
+ return 1;
+ }
+ return 0;
+}
+
+static char *orig_prompt, *extent_prompt;
+
+void do_extent_open(int argc, char *argv[])
+{
+ ext2_ino_t inode;
+ int ret;
+ errcode_t retval;
+ char *cp;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ if (argc == 1) {
+ if (current_ino)
+ printf("Current inode is %d\n", current_ino);
+ else
+ printf("No current inode\n");
+ return;
+ }
+
+ if (common_inode_args_process(argc, argv, &inode, 0))
+ return;
+
+ current_ino = 0;
+
+ retval = ext2fs_extent_open(current_fs, inode, &current_handle);
+ if (retval) {
+ com_err(argv[1], retval, "while opening extent handle");
+ return;
+ }
+
+ current_ino = inode;
+
+ orig_prompt = ss_get_prompt(sci_idx);
+ extent_prompt = malloc(strlen(orig_prompt) + 32);
+ strcpy(extent_prompt, orig_prompt);
+ cp = strchr(extent_prompt, ':');
+ if (cp)
+ *cp = 0;
+ sprintf(extent_prompt + strlen(extent_prompt), " (extent ino %d): ",
+ current_ino);
+ ss_add_request_table(sci_idx, &extent_cmds, 1, &ret);
+ ss_set_prompt(sci_idx, extent_prompt);
+ return;
+}
+
+void do_extent_close(int argc, char *argv[])
+{
+ int ret;
+
+ if (common_args_process(argc, argv, 1, 1,
+ "extent_close", "", 0))
+ return;
+
+ if (!current_handle) {
+ com_err(argv[0], 0, "Extent handle not open");
+ return;
+ }
+
+ ext2fs_extent_free(current_handle);
+ current_handle = NULL;
+ current_ino = 0;
+ ss_delete_request_table(sci_idx, &extent_cmds, &ret);
+ ss_set_prompt(sci_idx, orig_prompt);
+ free(extent_prompt);
+ extent_prompt = NULL;
+}
+
+static void generic_goto_node(const char *my_name, int argc,
+ char **argv, int op)
+{
+ struct ext2fs_extent extent;
+ errcode_t retval;
+
+ if (my_name && common_args_process(argc, argv, 1, 1,
+ my_name, "", 0))
+ return;
+
+ if (!current_handle) {
+ com_err(argv[0], 0, "Extent handle not open");
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle, op, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ dbg_print_extent(0, &extent);
+}
+
+void do_current_node(int argc, char *argv[])
+{
+ generic_goto_node("current_node", argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_root_node(int argc, char *argv[])
+{
+ generic_goto_node("root_node", argc, argv, EXT2_EXTENT_ROOT);
+}
+
+void do_last_leaf(int argc, char *argv[])
+{
+ generic_goto_node("last_leaf", argc, argv, EXT2_EXTENT_LAST_LEAF);
+}
+
+void do_first_sib(int argc, char *argv[])
+{
+ generic_goto_node("first_sib", argc, argv, EXT2_EXTENT_FIRST_SIB);
+}
+
+void do_last_sib(int argc, char *argv[])
+{
+ generic_goto_node("next_sib", argc, argv, EXT2_EXTENT_LAST_SIB);
+}
+
+void do_next_sib(int argc, char *argv[])
+{
+ generic_goto_node("next_sib", argc, argv, EXT2_EXTENT_NEXT_SIB);
+}
+
+void do_prev_sib(int argc, char *argv[])
+{
+ generic_goto_node("prev_sib", argc, argv, EXT2_EXTENT_PREV_SIB);
+}
+
+void do_next_leaf(int argc, char *argv[])
+{
+ generic_goto_node("next_leaf", argc, argv, EXT2_EXTENT_NEXT_LEAF);
+}
+
+void do_prev_leaf(int argc, char *argv[])
+{
+ generic_goto_node("prev_leaf", argc, argv, EXT2_EXTENT_PREV_LEAF);
+}
+
+void do_next(int argc, char *argv[])
+{
+ generic_goto_node("next", argc, argv, EXT2_EXTENT_NEXT);
+}
+
+void do_prev(int argc, char *argv[])
+{
+ generic_goto_node("prev", argc, argv, EXT2_EXTENT_PREV);
+}
+
+void do_up(int argc, char *argv[])
+{
+ generic_goto_node("up", argc, argv, EXT2_EXTENT_UP);
+}
+
+void do_down(int argc, char *argv[])
+{
+ generic_goto_node("down", argc, argv, EXT2_EXTENT_DOWN);
+}
+
+void do_delete_node(int argc, char *argv[])
+{
+ struct ext2fs_extent extent;
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "delete_node",
+ "", CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ retval = ext2fs_extent_delete(current_handle, 0);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle, EXT2_EXTENT_CURRENT,
+ &extent);
+ if (retval)
+ return;
+ dbg_print_extent(0, &extent);
+}
+
+void do_replace_node(int argc, char *argv[])
+{
+ const char *usage = "[--uninit] <lblk> <len> <pblk>";
+ errcode_t retval;
+ struct ext2fs_extent extent;
+ int err;
+
+ if (common_extent_args_process(argc, argv, 3, 5, "replace_node",
+ usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ extent.e_flags = 0;
+
+ if (!strcmp(argv[1], "--uninit")) {
+ argc--;
+ argv++;
+ extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
+ }
+
+ if (argc != 4) {
+ fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
+ return;
+ }
+
+ err = strtoblk(argv[0], argv[1], "logical block", &extent.e_lblk);
+ if (err)
+ return;
+
+ extent.e_len = parse_ulong(argv[2], argv[0], "length", &err);
+ if (err)
+ return;
+
+ err = strtoblk(argv[0], argv[3], "physical block", &extent.e_pblk);
+ if (err)
+ return;
+
+ retval = ext2fs_extent_replace(current_handle, 0, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_split_node(int argc, char *argv[])
+{
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "split_node",
+ "", CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ retval = ext2fs_extent_node_split(current_handle);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_insert_node(int argc, char *argv[])
+{
+ const char *usage = "[--after] [--uninit] <lblk> <len> <pblk>";
+ errcode_t retval;
+ struct ext2fs_extent extent;
+ char *cmd;
+ int err;
+ int flags = 0;
+
+ if (common_extent_args_process(argc, argv, 3, 6, "insert_node",
+ usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ cmd = argv[0];
+
+ extent.e_flags = 0;
+
+ while (argc > 2) {
+ if (!strcmp(argv[1], "--after")) {
+ argc--;
+ argv++;
+ flags |= EXT2_EXTENT_INSERT_AFTER;
+ continue;
+ }
+ if (!strcmp(argv[1], "--uninit")) {
+ argc--;
+ argv++;
+ extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
+ continue;
+ }
+ break;
+ }
+
+ if (argc != 4) {
+ fprintf(stderr, "usage: %s %s\n", cmd, usage);
+ return;
+ }
+
+ err = strtoblk(cmd, argv[1], "logical block", &extent.e_lblk);
+ if (err)
+ return;
+
+ extent.e_len = parse_ulong(argv[2], cmd, "length", &err);
+ if (err)
+ return;
+
+ err = strtoblk(cmd, argv[3], "physical block", &extent.e_pblk);
+ if (err)
+ return;
+
+ retval = ext2fs_extent_insert(current_handle, flags, &extent);
+ if (retval) {
+ com_err(cmd, retval, 0);
+ return;
+ }
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_set_bmap(int argc, char **argv)
+{
+ const char *usage = "[--uninit] <lblk> <pblk>";
+ struct ext2fs_extent extent;
+ errcode_t retval;
+ blk64_t logical;
+ blk64_t physical;
+ char *cmd = argv[0];
+ int flags = 0;
+ int err;
+
+ if (common_extent_args_process(argc, argv, 3, 5, "set_bmap",
+ usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ if (argc > 2 && !strcmp(argv[1], "--uninit")) {
+ argc--;
+ argv++;
+ flags |= EXT2_EXTENT_SET_BMAP_UNINIT;
+ }
+
+ if (argc != 3) {
+ fprintf(stderr, "Usage: %s %s\n", cmd, usage);
+ return;
+ }
+
+ err = strtoblk(cmd, argv[1], "logical block", &logical);
+ if (err)
+ return;
+
+ err = strtoblk(cmd, argv[2], "physical block", &physical);
+ if (err)
+ return;
+
+ retval = ext2fs_extent_set_bmap(current_handle, logical,
+ physical, flags);
+ if (retval) {
+ com_err(cmd, retval, 0);
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle, EXT2_EXTENT_CURRENT,
+ &extent);
+ if (retval)
+ return;
+ dbg_print_extent(0, &extent);
+}
+
+void do_print_all(int argc, char **argv)
+{
+ const char *usage = "[--leaf-only|--reverse|--reverse-leaf]";
+ struct ext2fs_extent extent;
+ errcode_t retval;
+ errcode_t end_err = EXT2_ET_EXTENT_NO_NEXT;
+ int op = EXT2_EXTENT_NEXT;
+ int first_op = EXT2_EXTENT_ROOT;
+
+
+ if (common_extent_args_process(argc, argv, 1, 2, "print_all",
+ usage, 0))
+ return;
+
+ if (argc == 2) {
+ if (!strcmp(argv[1], "--leaf-only"))
+ op = EXT2_EXTENT_NEXT_LEAF;
+ else if (!strcmp(argv[1], "--reverse")) {
+ op = EXT2_EXTENT_PREV;
+ first_op = EXT2_EXTENT_LAST_LEAF;
+ end_err = EXT2_ET_EXTENT_NO_PREV;
+ } else if (!strcmp(argv[1], "--reverse-leaf")) {
+ op = EXT2_EXTENT_PREV_LEAF;
+ first_op = EXT2_EXTENT_LAST_LEAF;
+ end_err = EXT2_ET_EXTENT_NO_PREV;
+ } else {
+ fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
+ return;
+ }
+ }
+
+ retval = ext2fs_extent_get(current_handle, first_op, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ dbg_print_extent(0, &extent);
+
+ while (1) {
+ retval = ext2fs_extent_get(current_handle, op, &extent);
+ if (retval == end_err)
+ break;
+
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ dbg_print_extent(0, &extent);
+ }
+}
+
+void do_fix_parents(int argc, char **argv)
+{
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "fix_parents", "",
+ CHECK_FS_RW))
+ return;
+
+ retval = ext2fs_extent_fix_parents(current_handle);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+}
+
+void do_info(int argc, char **argv)
+{
+ struct ext2fs_extent extent;
+ struct ext2_extent_info info;
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "info", "", 0))
+ return;
+
+ retval = ext2fs_extent_get_info(current_handle, &info);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle,
+ EXT2_EXTENT_CURRENT, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+
+ dbg_print_extent(0, &extent);
+
+ printf("Current handle location: %d/%d (max: %d, bytes %d), level %d/%d\n",
+ info.curr_entry, info.num_entries, info.max_entries,
+ info.bytes_avail, info.curr_level, info.max_depth);
+ printf("\tmax lblk: %llu, max pblk: %llu\n", info.max_lblk,
+ info.max_pblk);
+ printf("\tmax_len: %u, max_uninit_len: %u\n", info.max_len,
+ info.max_uninit_len);
+}
+
+void do_goto_block(int argc, char **argv)
+{
+ errcode_t retval;
+ blk64_t blk;
+ int level = 0, err;
+
+ if (common_extent_args_process(argc, argv, 2, 3, "goto_block",
+ "block [level]", 0))
+ return;
+
+ if (strtoblk(argv[0], argv[1], NULL, &blk))
+ return;
+
+ if (argc == 3) {
+ level = parse_ulong(argv[2], argv[0], "level", &err);
+ if (err)
+ return;
+ }
+
+ retval = ext2fs_extent_goto2(current_handle, level, (blk64_t) blk);
+
+ if (retval) {
+ com_err(argv[0], retval,
+ "while trying to go to block %llu, level %d",
+ (unsigned long long) blk, level);
+ return;
+ }
+
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
diff --git a/debugfs/filefrag.c b/debugfs/filefrag.c
index 7f28bc0b..0adea405 100644
--- a/debugfs/filefrag.c
+++ b/debugfs/filefrag.c
@@ -289,7 +289,7 @@ void do_filefrag(int argc, char *argv[])
if (argc > optind+1) {
print_usage:
- com_err(0, 0, "Usage: filefrag [-dv] file");
+ com_err(0, 0, "Usage: filefrag [-dvr] file");
return;
}
diff --git a/debugfs/htree.c b/debugfs/htree.c
index 05745eb3..24f8250c 100644
--- a/debugfs/htree.c
+++ b/debugfs/htree.c
@@ -52,7 +52,7 @@ static void htree_dump_leaf_node(ext2_filsys fs, ext2_ino_t ino,
return;
}
- printf("Reading directory block %llu, phys %llu\n", blk, pblk);
+ fprintf(pager, "Reading directory block %llu, phys %llu\n", blk, pblk);
errcode = ext2fs_read_dir_block2(current_fs, pblk, buf, 0);
if (errcode) {
com_err("htree_dump_leaf_node", errcode,
@@ -201,7 +201,6 @@ void do_htree_dump(int argc, char *argv[])
char *buf = NULL;
struct ext2_dx_root_info *rootnode;
struct ext2_dx_entry *ent;
- struct ext2_dx_countlimit *limit;
errcode_t errcode;
if (check_fs_open(argv[0]))
@@ -255,7 +254,6 @@ void do_htree_dump(int argc, char *argv[])
fprintf(pager, "\t Flags: %d\n", rootnode->unused_flags);
ent = (struct ext2_dx_entry *) (buf + 24 + rootnode->info_length);
- limit = (struct ext2_dx_countlimit *) ent;
htree_dump_int_node(current_fs, ino, &inode, rootnode, ent,
buf + current_fs->blocksize,
diff --git a/debugfs/icheck.c b/debugfs/icheck.c
index 48f432aa..3b9bd145 100644
--- a/debugfs/icheck.c
+++ b/debugfs/icheck.c
@@ -86,7 +86,7 @@ void do_icheck(int argc, char **argv)
}
for (i=1; i < argc; i++) {
- if (strtoblk(argv[0], argv[i], &bw.barray[i-1].blk))
+ if (strtoblk(argv[0], argv[i], NULL, &bw.barray[i-1].blk))
goto error_out;
}
diff --git a/debugfs/logdump.c b/debugfs/logdump.c
index 6e39b74c..d2c3b301 100644
--- a/debugfs/logdump.c
+++ b/debugfs/logdump.c
@@ -37,12 +37,12 @@ extern char *optarg;
enum journal_location {JOURNAL_IS_INTERNAL, JOURNAL_IS_EXTERNAL};
-#define ANY_BLOCK ((blk_t) -1)
+#define ANY_BLOCK ((blk64_t) -1)
-int dump_all, dump_contents, dump_descriptors;
-blk_t block_to_dump, bitmap_to_dump, inode_block_to_dump;
-unsigned int group_to_dump, inode_offset_to_dump;
-ext2_ino_t inode_to_dump;
+static int dump_all, dump_contents, dump_descriptors;
+static blk64_t block_to_dump, bitmap_to_dump, inode_block_to_dump;
+static unsigned int group_to_dump, inode_offset_to_dump;
+static ext2_ino_t inode_to_dump;
struct journal_source
{
@@ -162,7 +162,7 @@ void do_logdump(int argc, char **argv)
(group_offset / inodes_per_block);
inode_offset_to_dump = ((group_offset % inodes_per_block)
* sizeof(struct ext2_inode));
- printf("Inode %u is at group %u, block %u, offset %u\n",
+ printf("Inode %u is at group %u, block %llu, offset %u\n",
inode_to_dump, inode_group,
inode_block_to_dump, inode_offset_to_dump);
}
@@ -273,42 +273,43 @@ print_usage:
static int read_journal_block(const char *cmd, struct journal_source *source,
- off_t offset, char *buf, int size,
- unsigned int *got)
+ off_t offset, char *buf, unsigned int size)
{
int retval;
+ unsigned int got;
if (source->where == JOURNAL_IS_EXTERNAL) {
if (lseek(source->fd, offset, SEEK_SET) < 0) {
retval = errno;
- com_err(cmd, retval, "while seeking in reading journal");
- return retval;
+ goto seek_err;
}
retval = read(source->fd, buf, size);
- if (retval >= 0) {
- *got = retval;
- retval = 0;
- } else
+ if (retval < 0) {
retval = errno;
+ goto read_err;
+ }
+ got = retval;
+ retval = 0;
} else {
retval = ext2fs_file_lseek(source->file, offset,
EXT2_SEEK_SET, NULL);
if (retval) {
+ seek_err:
com_err(cmd, retval, "while seeking in reading journal");
return retval;
}
-
- retval = ext2fs_file_read(source->file, buf, size, got);
+ retval = ext2fs_file_read(source->file, buf, size, &got);
+ if (retval) {
+ read_err:
+ com_err(cmd, retval, "while reading journal");
+ return retval;
+ }
}
-
- if (retval)
- com_err(cmd, retval, "while reading journal");
- else if (*got != (unsigned int) size) {
- com_err(cmd, 0, "short read (read %d, expected %d) "
- "while reading journal", *got, size);
+ if (got != size) {
+ com_err(cmd, 0, "short read (read %u, expected %u) "
+ "while reading journal", got, size);
retval = -1;
}
-
return retval;
}
@@ -338,7 +339,6 @@ static void dump_journal(char *cmdname, FILE *out_file,
char buf[8192];
journal_superblock_t *jsb;
unsigned int blocksize = 1024;
- unsigned int got;
int retval;
__u32 magic, sequence, blocktype;
journal_header_t *header;
@@ -347,8 +347,7 @@ static void dump_journal(char *cmdname, FILE *out_file,
unsigned int blocknr = 0;
/* First, check to see if there's an ext2 superblock header */
- retval = read_journal_block(cmdname, source, 0,
- buf, 2048, &got);
+ retval = read_journal_block(cmdname, source, 0, buf, 2048);
if (retval)
return;
@@ -377,7 +376,7 @@ static void dump_journal(char *cmdname, FILE *out_file,
/* Next, read the journal superblock */
retval = read_journal_block(cmdname, source, blocknr*blocksize,
- jsb_buffer, 1024, &got);
+ jsb_buffer, 1024);
if (retval)
return;
@@ -401,8 +400,8 @@ static void dump_journal(char *cmdname, FILE *out_file,
while (1) {
retval = read_journal_block(cmdname, source,
blocknr*blocksize, buf,
- blocksize, &got);
- if (retval || got != blocksize)
+ blocksize);
+ if (retval)
return;
header = (journal_header_t *) buf;
@@ -576,7 +575,6 @@ static void dump_metadata_block(FILE *out_file, struct journal_source *source,
int blocksize,
tid_t transaction)
{
- unsigned int got;
int retval;
char buf[8192];
@@ -612,7 +610,7 @@ static void dump_metadata_block(FILE *out_file, struct journal_source *source,
retval = read_journal_block("logdump", source,
blocksize * log_blocknr,
- buf, blocksize, &got);
+ buf, blocksize);
if (retval)
return;
@@ -624,7 +622,7 @@ static void dump_metadata_block(FILE *out_file, struct journal_source *source,
offset = ((block_to_dump - super->s_first_data_block) %
super->s_blocks_per_group);
- fprintf(out_file, " (block bitmap for block %u: "
+ fprintf(out_file, " (block bitmap for block %llu: "
"block is %s)\n",
block_to_dump,
ext2fs_test_bit(offset, buf) ? "SET" : "CLEAR");
diff --git a/debugfs/lsdel.c b/debugfs/lsdel.c
index bed0ce61..e5b2d203 100644
--- a/debugfs/lsdel.c
+++ b/debugfs/lsdel.c
@@ -87,7 +87,7 @@ void do_lsdel(int argc, char **argv)
time_t now;
FILE *out;
- if (common_args_process(argc, argv, 1, 2, "ls_deleted_inodes",
+ if (common_args_process(argc, argv, 1, 2, "list_deleted_inodes",
"[secs]", 0))
return;
diff --git a/debugfs/quota.c b/debugfs/quota.c
new file mode 100644
index 00000000..95d064b2
--- /dev/null
+++ b/debugfs/quota.c
@@ -0,0 +1,171 @@
+/*
+ * quota.c --- debugfs quota commands
+ *
+ * Copyright (C) 2014 Theodore Ts'o. This file may be redistributed
+ * under the terms of the GNU Public License.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#else
+extern int optind;
+extern char *optarg;
+#endif
+
+#include "debugfs.h"
+
+const char *quota_type[] = { "user", "group", NULL };
+
+static int load_quota_ctx(char *progname)
+{
+ errcode_t retval;
+
+ if (check_fs_open(progname))
+ return 1;
+
+ if (!EXT2_HAS_RO_COMPAT_FEATURE(current_fs->super,
+ EXT4_FEATURE_RO_COMPAT_QUOTA)) {
+ com_err(progname, 0, "quota feature not eanbled");
+ return 1;
+ }
+
+ if (current_qctx)
+ return 0;
+
+ retval = quota_init_context(&current_qctx, current_fs, -1);
+ if (retval) {
+ com_err(current_fs->device_name, retval,
+ "while trying to load quota information");
+ return 1;
+ }
+ return 0;
+}
+
+static int parse_quota_type(const char *cmdname, const char *str)
+{
+ errcode_t retval;
+ char *t;
+ int flags = 0;
+ int i;
+
+ for (i = 0; i < MAXQUOTAS; i++) {
+ if (strcasecmp(str, quota_type[i]) == 0)
+ break;
+ }
+ if (i >= MAXQUOTAS) {
+ i = strtol(str, &t, 0);
+ if (*t)
+ i = -1;
+ }
+ if (i < 0 || i >= MAXQUOTAS) {
+ com_err(0, 0, "Invalid quota type: %s", str);
+ printf("Valid quota types are: ");
+ for (i = 0; i < MAXQUOTAS; i++)
+ printf("%s ", quota_type[i]);
+ printf("\n");
+ return -1;
+ }
+
+ if (current_fs->flags & EXT2_FLAG_RW)
+ flags |= EXT2_FILE_WRITE;
+
+ retval = quota_file_open(current_qctx, NULL, 0, i, -1, flags);
+ if (retval) {
+ com_err(cmdname, retval,
+ "while opening quota inode (type %d)", i);
+ return -1;
+ }
+ return i;
+}
+
+
+static int list_quota_callback(struct dquot *dq, void *cb_data)
+{
+ printf("%8u %8lld %8lld %8lld %8lld %8lld %8lld\n",
+ dq->dq_id, dq->dq_dqb.dqb_curspace,
+ dq->dq_dqb.dqb_bsoftlimit, dq->dq_dqb.dqb_bhardlimit,
+ dq->dq_dqb.dqb_curinodes,
+ dq->dq_dqb.dqb_isoftlimit, dq->dq_dqb.dqb_ihardlimit);
+ return 0;
+}
+
+void do_list_quota(int argc, char *argv[])
+{
+ errcode_t retval;
+ int i, type;
+ int flags = 0;
+ struct quota_handle *qh;
+
+ if (load_quota_ctx(argv[0]))
+ return;
+
+ if (argc != 2) {
+ com_err(0, 0, "Usage: list_quota <quota_type>\n");
+ return;
+ }
+
+ type = parse_quota_type(argv[0], argv[1]);
+ if (type < 0)
+ return;
+
+ printf("%8s %8s %8s %8s %8s %8s %8s\n",
+ (type == 0) ? "user id" : "group id",
+ "blocks", "quota", "limit", "inodes", "quota", "limit");
+ qh = current_qctx->quota_file[type];
+ retval = qh->qh_ops->scan_dquots(qh, list_quota_callback, NULL);
+ if (retval) {
+ com_err(argv[0], retval, "while scanning dquots");
+ return;
+ }
+}
+
+void do_get_quota(int argc, char *argv[])
+{
+ errcode_t retval;
+ int i, err, type;
+ int flags = 0;
+ struct quota_handle *qh;
+ struct dquot *dq;
+ qid_t id;
+
+ if (load_quota_ctx(argv[0]))
+ return;
+
+ if (argc != 3) {
+ com_err(0, 0, "Usage: get_quota <quota_type> <id>\n");
+ return;
+ }
+
+ type = parse_quota_type(argv[0], argv[1]);
+ if (type < 0)
+ return;
+
+ id = parse_ulong(argv[2], argv[0], "id", &err);
+ if (err)
+ return;
+
+ printf("%8s %8s %8s %8s %8s %8s %8s\n",
+ (type == 0) ? "user id" : "group id",
+ "blocks", "quota", "limit", "inodes", "quota", "limit");
+
+ qh = current_qctx->quota_file[type];
+
+ dq = qh->qh_ops->read_dquot(qh, id);
+ if (dq) {
+ list_quota_callback(dq, NULL);
+ ext2fs_free_mem(&dq);
+ } else
+ com_err(argv[0], 0, "couldn't read quota record");
+
+}
diff --git a/debugfs/ro_debug_cmds.ct b/debugfs/ro_debug_cmds.ct
index 4feb621c..736ade6a 100644
--- a/debugfs/ro_debug_cmds.ct
+++ b/debugfs/ro_debug_cmds.ct
@@ -87,5 +87,13 @@ request do_supported_features, "Print features supported by this version of e2fs
request do_dump_mmp, "Dump MMP information",
dump_mmp;
-end;
+request do_extent_open, "Open inode for extent manipulation",
+ extent_open, eo;
+
+request do_list_quota, "List quota",
+ lost_quota, lq;
+request do_get_quota, "Get quota",
+ get_quota, gq;
+
+end;
diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c
index 08bfd8da..ffbda746 100644
--- a/debugfs/set_fields.c
+++ b/debugfs/set_fields.c
@@ -150,6 +150,8 @@ static struct field_set_info super_fields[] = {
{ "usr_quota_inum", &set_sb.s_usr_quota_inum, NULL, 4, parse_uint },
{ "grp_quota_inum", &set_sb.s_grp_quota_inum, NULL, 4, parse_uint },
{ "overhead_blocks", &set_sb.s_overhead_blocks, NULL, 4, parse_uint },
+ { "backup_bgs", &set_sb.s_backup_bgs[0], NULL, 4, parse_uint,
+ FLAG_ARRAY, 2 },
{ "checksum", &set_sb.s_checksum, NULL, 4, parse_uint },
{ 0, 0, 0, 0 }
};
@@ -389,7 +391,10 @@ static errcode_t parse_uint(struct field_set_info *info, char *field,
n = num & mask;
switch (size) {
case 8:
- *u.ptr64 = n;
+ /* Should never get here */
+ fprintf(stderr, "64-bit field %s has a second 64-bit field\n"
+ "defined; BUG?!?\n", info->name);
+ *u.ptr64 = 0;
break;
case 4:
*u.ptr32 = n;
@@ -526,22 +531,20 @@ static errcode_t parse_hashalg(struct field_set_info *info,
static errcode_t parse_bmap(struct field_set_info *info,
char *field EXT2FS_ATTR((unused)), char *arg)
{
- unsigned long num;
- blk_t blk;
+ blk64_t blk;
errcode_t retval;
char *tmp;
- num = strtoul(arg, &tmp, 0);
+ blk = strtoull(arg, &tmp, 0);
if (*tmp) {
fprintf(stderr, "Couldn't parse '%s' for field %s.\n",
arg, info->name);
return EINVAL;
}
- blk = num;
- retval = ext2fs_bmap(current_fs, set_ino,
+ retval = ext2fs_bmap2(current_fs, set_ino,
(struct ext2_inode *) &set_inode,
- 0, BMAP_SET, array_idx, &blk);
+ NULL, BMAP_SET, array_idx, NULL, &blk);
if (retval) {
com_err("set_inode", retval, "while setting block map");
}
@@ -701,11 +704,14 @@ void do_set_block_group_descriptor(int argc, char *argv[])
int size;
/*
- *Determine whether we are editing an ext2 or ext4 block
- * group descriptor
+ * Determine whether we are editing an ext2 or ext4 block group
+ * descriptor. Descriptors larger than ext4_group_desc cannot
+ * have their fields edited yet, because they do not have any
+ * names assigned. When that happens, this function needs to
+ * be updated for the new descriptor struct and fields.
*/
- if (current_fs && current_fs->super->s_feature_incompat &
- EXT4_FEATURE_INCOMPAT_64BIT) {
+ if (current_fs &&
+ EXT2_DESC_SIZE(current_fs->super) >= EXT2_MIN_DESC_SIZE_64BIT) {
table = ext4_bg_fields;
edit = &set_gd4;
size = sizeof(set_gd4);
@@ -801,7 +807,7 @@ void do_set_mmp_value(int argc, char *argv[])
if (retval) {
com_err(argv[0], retval, "reading MMP block %llu.\n",
(long long)current_fs->super->s_mmp_block);
- ext2fs_free_mem(mmp_s);
+ ext2fs_free_mem(&mmp_s);
return;
}
current_fs->mmp_buf = mmp_s;
diff --git a/debugfs/util.c b/debugfs/util.c
index f43b4704..9ddfe0ba 100644
--- a/debugfs/util.c
+++ b/debugfs/util.c
@@ -201,7 +201,7 @@ char *time_to_string(__u32 cl)
tz = ss_safe_getenv("TZ");
if (!tz)
tz = "";
- do_gmt = !strcmp(tz, "GMT");
+ do_gmt = !strcmp(tz, "GMT") | !strcmp(tz, "GMT0");
}
return asctime((do_gmt) ? gmtime(&t) : localtime(&t));
@@ -211,7 +211,7 @@ char *time_to_string(__u32 cl)
* Parse a string as a time. Return ((time_t)-1) if the string
* doesn't appear to be a sane time.
*/
-extern time_t string_to_time(const char *arg)
+time_t string_to_time(const char *arg)
{
struct tm ts;
time_t ret;
@@ -220,9 +220,20 @@ extern time_t string_to_time(const char *arg)
if (strcmp(arg, "now") == 0) {
return time(0);
}
+ if (arg[0] == '@') {
+ /* interpret it as an integer */
+ arg++;
+ fallback:
+ ret = strtoul(arg, &tmp, 0);
+ if (*tmp)
+ return ((time_t) -1);
+ return ret;
+ }
memset(&ts, 0, sizeof(ts));
#ifdef HAVE_STRPTIME
- strptime(arg, "%Y%m%d%H%M%S", &ts);
+ tmp = strptime(arg, "%Y%m%d%H%M%S", &ts);
+ if (tmp == NULL)
+ goto fallback;
#else
sscanf(arg, "%4d%2d%2d%2d%2d%2d", &ts.tm_year, &ts.tm_mon,
&ts.tm_mday, &ts.tm_hour, &ts.tm_min, &ts.tm_sec);
@@ -234,13 +245,9 @@ extern time_t string_to_time(const char *arg)
ts.tm_mday = 0;
#endif
ts.tm_isdst = -1;
- ret = mktime(&ts);
- if (ts.tm_mday == 0 || ret == ((time_t) -1)) {
- /* Try it as an integer... */
- ret = strtoul(arg, &tmp, 0);
- if (*tmp)
- return ((time_t) -1);
- }
+ ret = ts.tm_sec + ts.tm_min*60 + ts.tm_hour*3600 + ts.tm_yday*86400 +
+ (ts.tm_year-70)*31536000 + ((ts.tm_year-69)/4)*86400 -
+ ((ts.tm_year-1)/100)*86400 + ((ts.tm_year+299)/400)*86400;
return ret;
}
@@ -294,17 +301,20 @@ unsigned long long parse_ulonglong(const char *str, const char *cmd,
/*
* This function will convert a string to a block number. It returns
- * 0 on success, 1 on failure.
+ * 0 on success, 1 on failure. On failure, it outputs either an optionally
+ * specified error message or a default.
*/
-int strtoblk(const char *cmd, const char *str, blk64_t *ret)
+int strtoblk(const char *cmd, const char *str, const char *errmsg,
+ blk64_t *ret)
{
- blk_t blk;
+ blk64_t blk;
int err;
- blk = parse_ulonglong(str, cmd, "block number", &err);
+ if (errmsg == NULL)
+ blk = parse_ulonglong(str, cmd, "block number", &err);
+ else
+ blk = parse_ulonglong(str, cmd, errmsg, &err);
*ret = blk;
- if (err)
- com_err(cmd, 0, "Invalid block number: %s", str);
return err;
}
@@ -362,7 +372,7 @@ int common_block_args_process(int argc, char *argv[],
"<block> [count]", CHECK_FS_BITMAPS))
return 1;
- if (strtoblk(argv[0], argv[1], block))
+ if (strtoblk(argv[0], argv[1], NULL, block))
return 1;
if (*block == 0) {
com_err(argv[0], 0, "Invalid block number 0");
@@ -370,7 +380,7 @@ int common_block_args_process(int argc, char *argv[],
}
if (argc > 2) {
- *count = parse_ulong(argv[2], argv[0], "count", &err);
+ err = strtoblk(argv[0], argv[2], "count", count);
if (err)
return 1;
}
diff --git a/debugfs/zap.c b/debugfs/zap.c
new file mode 100644
index 00000000..81092097
--- /dev/null
+++ b/debugfs/zap.c
@@ -0,0 +1,260 @@
+/*
+ * zap.c --- zap block
+ *
+ * Copyright (C) 2012 Theodore Ts'o. This file may be redistributed
+ * under the terms of the GNU Public License.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#else
+extern int optind;
+extern char *optarg;
+#endif
+
+#include "debugfs.h"
+
+void do_zap_block(int argc, char *argv[])
+{
+ unsigned long pattern = 0;
+ unsigned char *buf;
+ ext2_ino_t inode;
+ errcode_t errcode;
+ blk64_t block;
+ char *file = NULL;
+ int c, err;
+ int offset = -1;
+ int length = -1;
+ int bit = -1;
+
+ if (check_fs_open(argv[0]))
+ return;
+ if (check_fs_read_write(argv[0]))
+ return;
+
+ reset_getopt();
+ while ((c = getopt (argc, argv, "b:f:l:o:p:")) != EOF) {
+ switch (c) {
+ case 'f':
+ file = optarg;
+ break;
+ case 'b':
+ bit = parse_ulong(optarg, argv[0],
+ "bit", &err);
+ if (err)
+ return;
+ if (bit >= (int) current_fs->blocksize * 8) {
+ com_err(argv[0], 0, "The bit to flip "
+ "must be within a %d block\n",
+ current_fs->blocksize);
+ return;
+ }
+ break;
+ case 'p':
+ pattern = parse_ulong(optarg, argv[0],
+ "pattern", &err);
+ if (err)
+ return;
+ if (pattern >= 256) {
+ com_err(argv[0], 0, "The fill pattern must "
+ "be an 8-bit value\n");
+ return;
+ }
+ break;
+ case 'o':
+ offset = parse_ulong(optarg, argv[0],
+ "offset", &err);
+ if (err)
+ return;
+ if (offset >= (int) current_fs->blocksize) {
+ com_err(argv[0], 0, "The offset must be "
+ "within a %d block\n",
+ current_fs->blocksize);
+ return;
+ }
+ break;
+
+ break;
+ case 'l':
+ length = parse_ulong(optarg, argv[0],
+ "length", &err);
+ if (err)
+ return;
+ break;
+ default:
+ goto print_usage;
+ }
+ }
+
+ if (bit > 0 && offset > 0) {
+ com_err(argv[0], 0, "The -o and -b options can not be mixed.");
+ return;
+ }
+
+ if (offset < 0)
+ offset = 0;
+ if (length < 0)
+ length = current_fs->blocksize - offset;
+ if ((offset + length) > (int) current_fs->blocksize) {
+ com_err(argv[0], 0, "The specified length is too bug\n");
+ return;
+ }
+
+ if (argc != optind+1) {
+ print_usage:
+ com_err(0, 0, "Usage:\tzap_block [-f file] [-o offset] "
+ "[-l length] [-p pattern] block_num");
+ com_err(0, 0, "\tzap_block [-f file] [-b bit] "
+ "block_num");
+ return;
+ }
+
+ block = parse_ulonglong(argv[optind], argv[0], "block", &err);
+ if (err)
+ return;
+
+ if (file) {
+ inode = string_to_inode(file);
+ if (!inode)
+ return;
+ errcode = ext2fs_bmap2(current_fs, inode, 0, 0, 0,
+ block, 0, &block);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while mapping logical block %llu\n", block);
+ return;
+ }
+ }
+
+ buf = malloc(current_fs->blocksize);
+ if (!buf) {
+ com_err(argv[0], 0, "Couldn't allocate block buffer");
+ return;
+ }
+
+ errcode = io_channel_read_blk64(current_fs->io, block, 1, buf);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while reading block %llu\n", block);
+ goto errout;
+ }
+
+ if (bit >= 0)
+ buf[bit >> 3] ^= 1 << (bit & 7);
+ else
+ memset(buf+offset, pattern, length);
+
+ errcode = io_channel_write_blk64(current_fs->io, block, 1, buf);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while write block %llu\n", block);
+ goto errout;
+ }
+
+errout:
+ free(buf);
+ return;
+}
+
+void do_block_dump(int argc, char *argv[])
+{
+ unsigned char *buf;
+ ext2_ino_t inode;
+ errcode_t errcode;
+ blk64_t block;
+ char *file = NULL;
+ unsigned int i, j;
+ int c, err;
+ int suppress = -1;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ reset_getopt();
+ while ((c = getopt (argc, argv, "f:")) != EOF) {
+ switch (c) {
+ case 'f':
+ file = optarg;
+ break;
+
+ default:
+ goto print_usage;
+ }
+ }
+
+ if (argc != optind + 1) {
+ print_usage:
+ com_err(0, 0, "Usage: block_dump [-f inode] block_num");
+ return;
+ }
+
+ block = parse_ulonglong(argv[optind], argv[0], "block", &err);
+ if (err)
+ return;
+
+ if (file) {
+ inode = string_to_inode(file);
+ if (!inode)
+ return;
+ errcode = ext2fs_bmap2(current_fs, inode, 0, 0, 0,
+ block, 0, &block);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while mapping logical block %llu\n", block);
+ return;
+ }
+ }
+
+ buf = malloc(current_fs->blocksize);
+ if (!buf) {
+ com_err(argv[0], 0, "Couldn't allocate block buffer");
+ return;
+ }
+
+ errcode = io_channel_read_blk64(current_fs->io, block, 1, buf);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while reading block %llu\n", block);
+ goto errout;
+ }
+
+ for (i=0; i < current_fs->blocksize; i += 16) {
+ if (suppress < 0) {
+ if (i && memcmp(buf + i, buf + i - 16, 16) == 0) {
+ suppress = i;
+ printf("*\n");
+ continue;
+ }
+ } else {
+ if (memcmp(buf + i, buf + suppress, 16) == 0)
+ continue;
+ suppress = -1;
+ }
+ printf("%04o ", i);
+ for (j = 0; j < 16; j++) {
+ printf("%02x", buf[i+j]);
+ if ((j % 2) == 1)
+ putchar(' ');
+ }
+ putchar(' ');
+ for (j = 0; j < 16; j++)
+ printf("%c", isprint(buf[i+j]) ? buf[i+j] : '.');
+ putchar('\n');
+ }
+ putchar('\n');
+
+errout:
+ free(buf);
+ return;
+}
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 3398d5f8..a2b26123 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -14,9 +14,10 @@ INSTALL = @INSTALL@
DVI=texi2dvi
DVIPS=dvips -o "$@"
INFO=@MAKEINFO@
-HTML=texi2html -split_chapter
+HTML=makeinfo --html --no-split
+PS2PDF=ps2pdf
-all:: libext2fs.info libext2fs.dvi
+all:: libext2fs.info libext2fs.dvi libext2fs.html
install-doc-libs: libext2fs.info libext2fs.dvi
$(Q) $(RM) -rf $(DESTDIR)$(infodir)/libext2fs.info*
@@ -40,12 +41,17 @@ libext2fs.dvi: $(srcdir)/libext2fs.texinfo
$(E) " TEXI2DVI $@"
-$(Q) $(DVI) $(srcdir)/libext2fs.texinfo
-libext2fs_abt.html: $(srcdir)/libext2fs.texinfo
+libext2fs.ps: libext2fs.dvi
+ $(E) " DVIPS $@"
+ -$(Q) $(DVIPS) libext2fs.dvi
+
+libext2fs.pdf: libext2fs.ps
+ $(E) " PS2PDF $@"
+ -$(Q) $(PS2PDF) libext2fs.ps
+
+libext2fs.html: $(srcdir)/libext2fs.texinfo
$(E) " TEXI2HTML $@"
-$(Q) $(HTML) $(srcdir)/libext2fs.texinfo
- -$(Q) if test -d libext2fs ; then \
- mv libext2fs/* . ; rmdir libext2fs ; \
- fi
.PHONY: distclean
distclean:: clean
@@ -59,7 +65,7 @@ clean-all:: clean-tex clean-backup clean-final clean-tarfiles clean-html
.PHONY: clean-final
clean-final::
- $(RM) -f *.ps *.info *.info-? *.html
+ $(RM) -f *.ps *.info *.info-? *.html *.pdf
.PHONY: clean-tex
clean-tex::
diff --git a/doc/libext2fs.texinfo b/doc/libext2fs.texinfo
index d5f059e0..c902c806 100644
--- a/doc/libext2fs.texinfo
+++ b/doc/libext2fs.texinfo
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename libext2fs.info
-@settitle The EXT2FS Library (version 1.42.1)
+@settitle The EXT2FS Library (version 1.42.10)
@synindex tp fn
@comment %**end of header
@@ -30,7 +30,7 @@ This file documents the ext2fs library, a library for manipulating the
ext2 filesystem.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010, 2011, 2012 by Theodore Ts'o
+2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 by Theodore Ts'o
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -60,8 +60,8 @@ by the author.
@title The EXT2FS Library
@subtitle The EXT2FS Library
-@subtitle Version 1.42.1
-@subtitle February 2012
+@subtitle Version 1.42.10
+@subtitle May 2014
@author by Theodore Ts'o
@@ -77,7 +77,7 @@ by the author.
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Theodore Ts'o
+2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Theodore Ts'o
@sp 2
@@ -97,14 +97,11 @@ by the Foundation.
@end titlepage
@headings double
-@ifinfo
@node Top, Introduction to the EXT2FS Library, (dir), (dir)
@top The EXT2FS Library
-This manual documents the EXT2FS Library, version 1.42.1.
-
-@end ifinfo
+This manual documents the EXT2FS Library, version 1.42.10.
@menu
* Introduction to the EXT2FS Library::
@@ -767,7 +764,7 @@ to initialize directory entries for @file{.} and @file{..}, respectively.
@deftypefun errcode_t ext2fs_dir_iterate (ext2_filsys @var{fs}, ext2_ino_t @var{dir}, int @var{flags}, char *@var{block_buf}, int (*@var{func})(struct ext2_dir_entry *@var{dirent}, int @var{offset}, int @var{blocksize}, char *@var{buf}, void *@var{private}), void *@var{private})
-This function interates over all of the directory entries in the
+This function iterates over all of the directory entries in the
directory @var{dir}, calling the callback function @var{func} for each
directory entry in the directory. The @var{block_buf} parameter should
either be NULL, or if the @code{ext2fs_dir_iterate} function is
diff --git a/e2fsck/Makefile.in b/e2fsck/Makefile.in
index d5589858..4b10f6fd 100644
--- a/e2fsck/Makefile.in
+++ b/e2fsck/Makefile.in
@@ -16,19 +16,20 @@ MANPAGES= e2fsck.8
FMANPAGES= e2fsck.conf.5
LIBS= $(LIBQUOTA) $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(LIBUUID) \
- $(LIBINTL) $(LIBE2P)
+ $(LIBINTL) $(LIBE2P) $(SYSLIBS)
DEPLIBS= $(DEPLIBQUOTA) $(LIBEXT2FS) $(DEPLIBCOM_ERR) $(DEPLIBBLKID) \
$(DEPLIBUUID) $(DEPLIBE2P)
STATIC_LIBS= $(STATIC_LIBQUOTA) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \
- $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(LIBINTL) $(STATIC_LIBE2P)
+ $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(LIBINTL) $(STATIC_LIBE2P) \
+ $(SYSLIBS)
STATIC_DEPLIBS= $(DEPSTATIC_LIBQUOTA) $(STATIC_LIBEXT2FS) \
$(DEPSTATIC_LIBCOM_ERR) $(DEPSTATIC_LIBBLKID) \
$(DEPSTATIC_LIBUUID) $(DEPSTATIC_LIBE2P)
PROFILED_LIBS= $(PROFILED_LIBQUOTA) $(PROFILED_LIBEXT2FS) \
$(PROFILED_LIBCOM_ERR) $(PROFILED_LIBBLKID) $(PROFILED_LIBUUID) \
- $(PROFILED_LIBE2P) $(LIBINTL) \
+ $(PROFILED_LIBE2P) $(LIBINTL) $(SYSLIBS)
PROFILED_DEPLIBS= $(DEPPROFILED_LIBQUOTA) $(PROFILED_LIBEXT2FS) \
$(DEPPROFILED_LIBCOM_ERR) $(DEPPROFILED_LIBBLKID) \
$(DEPPROFILED_LIBUUID) $(DEPPROFILED_LIBE2P)
@@ -38,6 +39,7 @@ COMPILE_ET=$(top_builddir)/lib/et/compile_et --build-tree
.c.o:
$(E) " CC $<"
$(Q) $(CC) -c $(ALL_CFLAGS) $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
#
@@ -129,21 +131,22 @@ e2fsck.static: $(OBJS) $(STATIC_DEPLIBS)
$(E) " LD $@"
$(Q) $(LD) $(LDFLAGS_STATIC) -o e2fsck.static $(OBJS) $(STATIC_LIBS)
-e2fsck.profiled: $(PROFILED_OBJS) $(PROFILED_DEPLIBS)
+e2fsck.profiled: $(OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(LD) $(ALL_LDFLAGS) -g -pg -o e2fsck.profiled $(PROFILED_OBJS) \
$(PROFILED_LIBS)
gen_crc32table: $(srcdir)/gen_crc32table.c
$(E) " CC $@"
- $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -o gen_crc32table \
+ $(Q) $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o gen_crc32table \
$(srcdir)/gen_crc32table.c
crc32table.h: gen_crc32table
$(E) " GEN32TABLE $@"
$(Q) ./gen_crc32table > crc32table.h
-tst_sigcatcher: $(srcdir)/sigcatcher.c
+tst_sigcatcher: $(srcdir)/sigcatcher.c sigcatcher.o
+ $(E) " CC $@"
$(Q) $(CC) $(BUILD_LDFLAGS) $(ALL_CFLAGS) $(RDYNAMIC) \
$(srcdir)/sigcatcher.c -DDEBUG -o tst_sigcatcher
@@ -151,26 +154,27 @@ tst_problem: $(srcdir)/problem.c $(srcdir)/problem.h $(LIBEXT2FS) \
$(DEPLIBCOM_ERR)
$(Q) $(CC) $(BUILD_LDFLAGS) $(ALL_CFLAGS) -o tst_problem \
$(srcdir)/problem.c -DUNITTEST $(LIBEXT2FS) $(LIBCOM_ERR) \
- $(LIBINTL)
+ $(LIBINTL) $(SYSLIBS)
tst_crc32: $(srcdir)/crc32.c $(LIBEXT2FS) $(DEPLIBCOM_ERR)
$(Q) $(CC) $(BUILD_LDFLAGS) $(ALL_CFLAGS) -o tst_crc32 $(srcdir)/crc32.c \
- -DUNITTEST $(LIBEXT2FS) $(LIBCOM_ERR)
+ -DUNITTEST $(LIBEXT2FS) $(LIBCOM_ERR) $(SYSLIBS)
tst_refcount: ea_refcount.c $(DEPLIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_refcount $(srcdir)/ea_refcount.c \
- $(ALL_CFLAGS) -DTEST_PROGRAM $(LIBCOM_ERR) $(LIBEXT2FS)
+ $(ALL_CFLAGS) -DTEST_PROGRAM $(LIBCOM_ERR) $(LIBEXT2FS) \
+ $(SYSLIBS)
tst_logfile: $(srcdir)/logfile.c
$(E) " LD $@"
$(Q) $(CC) -o tst_logfile $(srcdir)/logfile.c $(ALL_CFLAGS) \
- -DTEST_PROGRAM
+ -DTEST_PROGRAM $(SYSLIBS)
tst_region: region.c $(DEPLIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_region $(srcdir)/region.c \
- $(ALL_CFLAGS) -DTEST_PROGRAM $(LIBCOM_ERR)
+ $(ALL_CFLAGS) -DTEST_PROGRAM $(LIBCOM_ERR) $(SYSLIBS)
check:: tst_refcount tst_region tst_crc32 tst_problem
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_refcount
@@ -216,11 +220,11 @@ installdirs:
install: $(PROGS) $(MANPAGES) $(FMANPAGES) installdirs
$(Q) for i in $(PROGS); do \
- echo " INSTALL $(root_sbindir)/$$i"; \
+ $(ES) " INSTALL $(root_sbindir)/$$i"; \
$(INSTALL_PROGRAM) $$i $(DESTDIR)$(root_sbindir)/$$i; \
done
$(Q) for i in ext2 ext3 ext4 ext4dev; do \
- echo " LINK $(root_sbindir)/fsck.$$i"; \
+ $(ES) " LINK $(root_sbindir)/fsck.$$i"; \
(cd $(DESTDIR)$(root_sbindir); \
$(LN) $(LINK_INSTALL_FLAGS) e2fsck fsck.$$i); \
done
@@ -228,25 +232,25 @@ install: $(PROGS) $(MANPAGES) $(FMANPAGES) installdirs
for j in $(COMPRESS_EXT); do \
$(RM) -f $(DESTDIR)$(man8dir)/$$i.$$j; \
done; \
- echo " INSTALL_DATA $(man8dir)/$$i"; \
+ $(ES) " INSTALL_DATA $(man8dir)/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(man8dir)/$$i; \
done
$(Q) for i in $(FMANPAGES); do \
for j in $(COMPRESS_EXT); do \
$(RM) -f $(DESTDIR)$(man5dir)/$$i.$$j; \
done; \
- echo " INSTALL_DATA $(man5dir)/$$i"; \
+ $(ES) " INSTALL_DATA $(man5dir)/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \
done
$(Q) for i in ext2 ext3 ext4 ext4dev; do \
- echo " LINK $(man8dir)/fsck.$$i.8"; \
+ $(ES) " LINK $(man8dir)/fsck.$$i.8"; \
(cd $(DESTDIR)$(man8dir); \
$(LN) $(LINK_INSTALL_FLAGS) e2fsck.8 fsck.$$i.8); \
done
install-strip: install
$(Q) for i in $(PROGS); do \
- echo " STRIP $(root_sbindir)/$$i"; \
+ $(ES) " STRIP $(root_sbindir)/$$i"; \
$(STRIP) $(DESTDIR)$(root_sbindir)/$$i; \
done
@@ -269,7 +273,7 @@ uninstall:
$(DESTDIR)$(root_sbindir)/fsck.ext4 \
$(DESTDIR)$(root_sbindir)/fsck.ext4dev
-clean:
+clean::
$(RM) -f $(PROGS) \#* *\# *.s *.o *.a *~ core e2fsck.static \
e2fsck.shared e2fsck.profiled flushb e2fsck.8 \
tst_problem tst_crc32 tst_region tst_refcount gen_crc32table \
@@ -293,9 +297,9 @@ e2fsck.o: $(srcdir)/e2fsck.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
crc32.o: $(srcdir)/crc32.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -303,9 +307,9 @@ crc32.o: $(srcdir)/crc32.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/crc32defs.h crc32table.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/crc32defs.h crc32table.h
gen_crc32table.o: $(srcdir)/gen_crc32table.c $(srcdir)/crc32defs.h
dict.o: $(srcdir)/dict.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/dict.h
@@ -316,9 +320,9 @@ super.o: $(srcdir)/super.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
pass1.o: $(srcdir)/pass1.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -326,9 +330,9 @@ pass1.o: $(srcdir)/pass1.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
pass1b.o: $(srcdir)/pass1b.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
@@ -336,9 +340,9 @@ pass1b.o: $(srcdir)/pass1b.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h $(srcdir)/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h $(srcdir)/dict.h
pass2.o: $(srcdir)/pass2.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -346,9 +350,9 @@ pass2.o: $(srcdir)/pass2.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h $(srcdir)/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h $(srcdir)/dict.h
pass3.o: $(srcdir)/pass3.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -356,9 +360,9 @@ pass3.o: $(srcdir)/pass3.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
pass4.o: $(srcdir)/pass4.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -366,9 +370,9 @@ pass4.o: $(srcdir)/pass4.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
pass5.o: $(srcdir)/pass5.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -376,9 +380,9 @@ pass5.o: $(srcdir)/pass5.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
journal.o: $(srcdir)/journal.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/jfs_user.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -386,10 +390,11 @@ journal.o: $(srcdir)/journal.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \
- $(top_srcdir)/lib/ext2fs/kernel-list.h $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \
+ $(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h \
+ $(srcdir)/problem.h
recovery.o: $(srcdir)/recovery.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/jfs_user.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -397,10 +402,10 @@ recovery.o: $(srcdir)/recovery.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \
- $(top_srcdir)/lib/ext2fs/kernel-list.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \
+ $(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h
revoke.o: $(srcdir)/revoke.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/jfs_user.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -408,10 +413,10 @@ revoke.o: $(srcdir)/revoke.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \
- $(top_srcdir)/lib/ext2fs/kernel-list.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \
+ $(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h
badblocks.o: $(srcdir)/badblocks.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
@@ -419,8 +424,9 @@ badblocks.o: $(srcdir)/badblocks.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
util.o: $(srcdir)/util.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -428,8 +434,9 @@ util.o: $(srcdir)/util.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
unix.o: $(srcdir)/unix.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/e2p/e2p.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -437,9 +444,10 @@ unix.o: $(srcdir)/unix.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h $(top_srcdir)/version.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h \
+ $(top_srcdir)/version.h
dirinfo.o: $(srcdir)/dirinfo.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -447,9 +455,9 @@ dirinfo.o: $(srcdir)/dirinfo.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(top_srcdir)/lib/ext2fs/tdb.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(top_srcdir)/lib/ext2fs/tdb.h
dx_dirinfo.o: $(srcdir)/dx_dirinfo.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -457,8 +465,9 @@ dx_dirinfo.o: $(srcdir)/dx_dirinfo.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
ehandler.o: $(srcdir)/ehandler.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -466,8 +475,9 @@ ehandler.o: $(srcdir)/ehandler.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
problem.o: $(srcdir)/problem.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -475,9 +485,9 @@ problem.o: $(srcdir)/problem.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h $(srcdir)/problemP.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h $(srcdir)/problemP.h
message.o: $(srcdir)/message.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -485,9 +495,9 @@ message.o: $(srcdir)/message.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
ea_refcount.o: $(srcdir)/ea_refcount.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -495,8 +505,9 @@ ea_refcount.o: $(srcdir)/ea_refcount.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
rehash.o: $(srcdir)/rehash.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -504,9 +515,9 @@ rehash.o: $(srcdir)/rehash.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/problem.h
region.o: $(srcdir)/region.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -514,8 +525,9 @@ region.o: $(srcdir)/region.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
profile.o: $(srcdir)/profile.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/profile.h prof_err.h
@@ -526,8 +538,9 @@ sigcatcher.o: $(srcdir)/sigcatcher.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
logfile.o: $(srcdir)/logfile.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
@@ -535,17 +548,7 @@ logfile.o: $(srcdir)/logfile.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
prof_err.o: prof_err.c
-quota.o: $(srcdir)/quota.c $(top_builddir)/lib/config.h \
- $(top_builddir)/lib/dirpaths.h $(srcdir)/e2fsck.h \
- $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
- $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h \
- $(srcdir)/problem.h $(top_srcdir)/lib/quota/quotaio.h \
- $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h
diff --git a/e2fsck/badblocks.c b/e2fsck/badblocks.c
index 71b1c56e..7f3641b5 100644
--- a/e2fsck/badblocks.c
+++ b/e2fsck/badblocks.c
@@ -42,7 +42,7 @@ void read_bad_blocks_file(e2fsck_t ctx, const char *bad_blocks_file,
retval = ext2fs_block_iterate(fs, EXT2_BAD_INO, 0, 0,
check_bb_inode_blocks, 0);
if (retval) {
- com_err("ext2fs_block_iterate", retval,
+ com_err("ext2fs_block_iterate", retval, "%s",
_("while sanity checking the bad blocks inode"));
goto fatal;
}
@@ -54,7 +54,7 @@ void read_bad_blocks_file(e2fsck_t ctx, const char *bad_blocks_file,
if (!replace_bad_blocks) {
retval = ext2fs_read_bb_inode(fs, &bb_list);
if (retval) {
- com_err("ext2fs_read_bb_inode", retval,
+ com_err("ext2fs_read_bb_inode", retval, "%s",
_("while reading the bad blocks inode"));
goto fatal;
}
@@ -90,7 +90,7 @@ void read_bad_blocks_file(e2fsck_t ctx, const char *bad_blocks_file,
else
pclose(f);
if (retval) {
- com_err("ext2fs_read_bb_FILE", retval,
+ com_err("ext2fs_read_bb_FILE", retval, "%s",
_("while reading in list of bad blocks from file"));
goto fatal;
}
@@ -101,7 +101,7 @@ void read_bad_blocks_file(e2fsck_t ctx, const char *bad_blocks_file,
printf("%s: Updating bad block inode.\n", ctx->device_name);
retval = ext2fs_update_bb_inode(fs, bb_list);
if (retval) {
- com_err("ext2fs_update_bb_inode", retval,
+ com_err("ext2fs_update_bb_inode", retval, "%s",
_("while updating bad block inode"));
goto fatal;
}
@@ -111,6 +111,8 @@ void read_bad_blocks_file(e2fsck_t ctx, const char *bad_blocks_file,
fatal:
ctx->flags |= E2F_FLAG_ABORT;
+ if (bb_list)
+ ext2fs_badblocks_list_free(bb_list);
return;
}
diff --git a/e2fsck/dirinfo.c b/e2fsck/dirinfo.c
index c81777a5..dbaf4712 100644
--- a/e2fsck/dirinfo.c
+++ b/e2fsck/dirinfo.c
@@ -42,6 +42,7 @@ static void setup_tdb(e2fsck_t ctx, ext2_ino_t num_dirs)
struct dir_info_db *db = ctx->dir_info;
unsigned int threshold;
errcode_t retval;
+ mode_t save_umask;
char *tdb_dir, uuid[40];
int fd, enable;
@@ -62,7 +63,9 @@ static void setup_tdb(e2fsck_t ctx, ext2_ino_t num_dirs)
uuid_unparse(ctx->fs->super->s_uuid, uuid);
sprintf(db->tdb_fn, "%s/%s-dirinfo-XXXXXX", tdb_dir, uuid);
+ save_umask = umask(077);
fd = mkstemp(db->tdb_fn);
+ umask(save_umask);
if (fd < 0) {
db->tdb = NULL;
return;
@@ -320,7 +323,7 @@ int e2fsck_get_num_dirinfo(e2fsck_t ctx)
return ctx->dir_info ? ctx->dir_info->count : 0;
}
-extern struct dir_info_iter *e2fsck_dir_info_iter_begin(e2fsck_t ctx)
+struct dir_info_iter *e2fsck_dir_info_iter_begin(e2fsck_t ctx)
{
struct dir_info_iter *iter;
struct dir_info_db *db = ctx->dir_info;
@@ -334,8 +337,8 @@ extern struct dir_info_iter *e2fsck_dir_info_iter_begin(e2fsck_t ctx)
return iter;
}
-extern void e2fsck_dir_info_iter_end(e2fsck_t ctx EXT2FS_ATTR((unused)),
- struct dir_info_iter *iter)
+void e2fsck_dir_info_iter_end(e2fsck_t ctx EXT2FS_ATTR((unused)),
+ struct dir_info_iter *iter)
{
free(iter->tdb_iter.dptr);
ext2fs_free_mem(&iter);
diff --git a/e2fsck/e2fsck.8.in b/e2fsck/e2fsck.8.in
index b59a270f..f5ed7582 100644
--- a/e2fsck/e2fsck.8.in
+++ b/e2fsck/e2fsck.8.in
@@ -201,7 +201,7 @@ filesystem check (discarding blocks is useful on solid state devices and sparse
filesystem has been fully checked and only if it does not contain recognizable
errors. However there might be cases where
.B e2fsck
-does not fully recognise a problem and hence in this case this
+does not fully recognize a problem and hence in this case this
option may prevent you from further manual data recovery.
.TP
.BI nodiscard
diff --git a/e2fsck/e2fsck.c b/e2fsck/e2fsck.c
index 994f80e8..0ec15404 100644
--- a/e2fsck/e2fsck.c
+++ b/e2fsck/e2fsck.c
@@ -199,7 +199,7 @@ void e2fsck_free_context(e2fsck_t ctx)
*/
typedef void (*pass_t)(e2fsck_t ctx);
-pass_t e2fsck_passes[] = {
+static pass_t e2fsck_passes[] = {
e2fsck_pass1, e2fsck_pass2, e2fsck_pass3, e2fsck_pass4,
e2fsck_pass5, 0 };
diff --git a/e2fsck/e2fsck.conf.5.in b/e2fsck/e2fsck.conf.5.in
index 0d4651bd..9ebfbbf8 100644
--- a/e2fsck/e2fsck.conf.5.in
+++ b/e2fsck/e2fsck.conf.5.in
@@ -97,9 +97,8 @@ incorrectly set at the time when e2fsck is run.
Historically this was usually due to some distributions
having buggy init scripts and/or installers that didn't
correctly detect this case and take appropriate
-countermeasures. However, it's still possible, despite the
-best efforts of init script and installer authors to not be
-able to detect this misconfiguration, usually due to a
+countermeasures. Unfortunately, this is occasionally
+true even today, usually due to a
buggy or misconfigured virtualization manager or the
installer not having access to a network time server
during the installation process. So by default, we allow
@@ -123,6 +122,18 @@ can not be trusted; and to skip time-based checks if this is true. If
this boolean is set to true, then e2fsck will always assume that the
system clock can not be trusted.
.TP
+.I buggy_init_scripts
+This boolean relation is an alias for
+.I accept_time_fudge
+for backwards compatibility; it used to
+be that the behavior defined by
+.I accept_time_fudge
+above defaulted to false, and
+.I buggy_init_scripts
+would enable superblock time field to be wrong by up to 24 hours. When
+we changed the default, we also renamed this boolean relation to
+.IR accept_time_fudge.
+.TP
.I clear_test_fs_flag
This boolean relation controls whether or not
.BR e2fsck (8)
@@ -136,6 +147,16 @@ filesystem checks (either based on time or number of mounts) should
be doubled if the system is running on battery. This setting defaults to
true.
.TP
+.I indexed_dir_slack_percentage
+When
+.BR e2fsck (8)
+repacks a indexed directory, reserve the specified percentage of
+empty space in each leaf nodes so that a few new entries can
+be added to the directory without splitting leaf nodes, so that
+the average fill ratio of directories can be maintained at a
+higher, more efficient level. This relation defaults to 20
+percent.
+.TP
.I log_dir
If the
.I log_filename
@@ -184,15 +205,23 @@ of that type are squelched. This can be useful if the console is slow
(i.e., connected to a serial port) and so a large amount of output could
end up delaying the boot process for a long time (potentially hours).
.TP
-.I indexed_dir_slack_percentage
-When
-.BR e2fsck (8)
-repacks a indexed directory, reserve the specified percentage of
-empty space in each leaf nodes so that a few new entries can
-be added to the directory without splitting leaf nodes, so that
-the average fill ratio of directories can be maintained at a
-higher, more efficient level. This relation defaults to 20
-percent.
+.I report_features
+If this boolean relation is true, e2fsck will print the file system
+features as part of its verbose reporting (i.e., if the
+.B -v
+option is specified)
+.TP
+.I report_time
+If this boolean relation is true, e2fsck will run as if the options
+.B -tt
+are always specified. This will cause e2fsck to print timing statistics
+on a pass by pass basis for full file system checks.
+.TP
+.I report_verbose
+If this boolean relation is true, e2fsck will run as if the option
+.B -v
+is always specified. This will cause e2fsck to print some additional
+information at the end of each full file system check.
.SH THE [problems] STANZA
Each tag in the
.I [problems]
diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h
index 971390e2..c71a0a54 100644
--- a/e2fsck/e2fsck.h
+++ b/e2fsck/e2fsck.h
@@ -67,7 +67,7 @@
#define E2FSCK_ATTR(x)
#endif
-#include "quota/mkquota.h"
+#include "quota/quotaio.h"
/*
* Exit codes used by fsck-type programs
@@ -119,9 +119,9 @@ struct dx_dir_info {
struct dx_dirblock_info {
int type;
- blk_t phys;
+ blk64_t phys;
int flags;
- blk_t parent;
+ blk64_t parent;
ext2_dirhash_t min_hash;
ext2_dirhash_t max_hash;
ext2_dirhash_t node_min_hash;
@@ -189,8 +189,9 @@ struct resource_track {
#define E2F_FLAG_GOT_DEVSIZE 0x0800 /* Device size has been fetched */
#define E2F_FLAG_EXITING 0x1000 /* E2fsck exiting due to errors */
#define E2F_FLAG_TIME_INSANE 0x2000 /* Time is insane */
+#define E2F_FLAG_PROBLEMS_FIXED 0x4000 /* At least one problem was fixed */
-#define E2F_RESET_FLAGS (E2F_FLAG_TIME_INSANE)
+#define E2F_RESET_FLAGS (E2F_FLAG_TIME_INSANE | E2F_FLAG_PROBLEMS_FIXED)
/*
* Defines for indicating the e2fsck pass number
@@ -435,25 +436,24 @@ extern struct dx_dir_info *e2fsck_dx_dir_info_iter(e2fsck_t ctx, int *control);
/* ea_refcount.c */
extern errcode_t ea_refcount_create(int size, ext2_refcount_t *ret);
extern void ea_refcount_free(ext2_refcount_t refcount);
-extern errcode_t ea_refcount_fetch(ext2_refcount_t refcount, blk_t blk,
- int *ret);
+extern errcode_t ea_refcount_fetch(ext2_refcount_t refcount, blk64_t blk, int *ret);
extern errcode_t ea_refcount_increment(ext2_refcount_t refcount,
- blk_t blk, int *ret);
+ blk64_t blk, int *ret);
extern errcode_t ea_refcount_decrement(ext2_refcount_t refcount,
- blk_t blk, int *ret);
+ blk64_t blk, int *ret);
extern errcode_t ea_refcount_store(ext2_refcount_t refcount,
- blk_t blk, int count);
+ blk64_t blk, int count);
extern blk_t ext2fs_get_refcount_size(ext2_refcount_t refcount);
extern void ea_refcount_intr_begin(ext2_refcount_t refcount);
-extern blk_t ea_refcount_intr_next(ext2_refcount_t refcount, int *ret);
+extern blk64_t ea_refcount_intr_next(ext2_refcount_t refcount, int *ret);
/* ehandler.c */
extern const char *ehandler_operation(const char *op);
extern void ehandler_init(io_channel channel);
/* journal.c */
-extern int e2fsck_check_ext3_journal(e2fsck_t ctx);
-extern int e2fsck_run_ext3_journal(e2fsck_t ctx);
+extern errcode_t e2fsck_check_ext3_journal(e2fsck_t ctx);
+extern errcode_t e2fsck_run_ext3_journal(e2fsck_t ctx);
extern void e2fsck_move_ext3_journal(e2fsck_t ctx);
extern int e2fsck_fix_ext3_journal_hint(e2fsck_t ctx);
@@ -466,7 +466,7 @@ extern void e2fsck_hide_quota(e2fsck_t ctx);
/* pass1.c */
extern void e2fsck_setup_tdb_icount(e2fsck_t ctx, int flags,
ext2_icount_t *ret);
-extern void e2fsck_use_inode_shortcuts(e2fsck_t ctx, int bool);
+extern void e2fsck_use_inode_shortcuts(e2fsck_t ctx, int use_shortcuts);
extern int e2fsck_pass1_check_device_inode(ext2_filsys fs,
struct ext2_inode *inode);
extern int e2fsck_pass1_check_symlink(ext2_filsys fs, ext2_ino_t ino,
@@ -548,7 +548,7 @@ extern void e2fsck_write_inode_full(e2fsck_t ctx, unsigned long ino,
#ifdef MTRACE
extern void mtrace_print(char *mesg);
#endif
-extern blk_t get_backup_sb(e2fsck_t ctx, ext2_filsys fs,
+extern blk64_t get_backup_sb(e2fsck_t ctx, ext2_filsys fs,
const char *name, io_manager manager);
extern int ext2_file_type(unsigned int mode);
extern int write_all(int fd, char *buf, size_t count);
diff --git a/e2fsck/ea_refcount.c b/e2fsck/ea_refcount.c
index e66e6363..fcfaf497 100644
--- a/e2fsck/ea_refcount.c
+++ b/e2fsck/ea_refcount.c
@@ -25,7 +25,7 @@
* checked, its bit is set in the block_ea_map bitmap.
*/
struct ea_refcount_el {
- blk_t ea_blk;
+ blk64_t ea_blk;
int ea_count;
};
@@ -111,7 +111,7 @@ static void refcount_collapse(ext2_refcount_t refcount)
* specified position.
*/
static struct ea_refcount_el *insert_refcount_el(ext2_refcount_t refcount,
- blk_t blk, int pos)
+ blk64_t blk, int pos)
{
struct ea_refcount_el *el;
errcode_t retval;
@@ -153,7 +153,7 @@ static struct ea_refcount_el *insert_refcount_el(ext2_refcount_t refcount,
* and we can't find an entry, create one in the sorted list.
*/
static struct ea_refcount_el *get_refcount_el(ext2_refcount_t refcount,
- blk_t blk, int create)
+ blk64_t blk, int create)
{
int low, high, mid;
@@ -206,7 +206,7 @@ retry:
return 0;
}
-errcode_t ea_refcount_fetch(ext2_refcount_t refcount, blk_t blk,
+errcode_t ea_refcount_fetch(ext2_refcount_t refcount, blk64_t blk,
int *ret)
{
struct ea_refcount_el *el;
@@ -220,7 +220,7 @@ errcode_t ea_refcount_fetch(ext2_refcount_t refcount, blk_t blk,
return 0;
}
-errcode_t ea_refcount_increment(ext2_refcount_t refcount, blk_t blk, int *ret)
+errcode_t ea_refcount_increment(ext2_refcount_t refcount, blk64_t blk, int *ret)
{
struct ea_refcount_el *el;
@@ -234,7 +234,7 @@ errcode_t ea_refcount_increment(ext2_refcount_t refcount, blk_t blk, int *ret)
return 0;
}
-errcode_t ea_refcount_decrement(ext2_refcount_t refcount, blk_t blk, int *ret)
+errcode_t ea_refcount_decrement(ext2_refcount_t refcount, blk64_t blk, int *ret)
{
struct ea_refcount_el *el;
@@ -249,7 +249,7 @@ errcode_t ea_refcount_decrement(ext2_refcount_t refcount, blk_t blk, int *ret)
return 0;
}
-errcode_t ea_refcount_store(ext2_refcount_t refcount, blk_t blk, int count)
+errcode_t ea_refcount_store(ext2_refcount_t refcount, blk64_t blk, int count)
{
struct ea_refcount_el *el;
@@ -277,7 +277,7 @@ void ea_refcount_intr_begin(ext2_refcount_t refcount)
}
-blk_t ea_refcount_intr_next(ext2_refcount_t refcount,
+blk64_t ea_refcount_intr_next(ext2_refcount_t refcount,
int *ret)
{
struct ea_refcount_el *list;
@@ -310,7 +310,8 @@ errcode_t ea_refcount_validate(ext2_refcount_t refcount, FILE *out)
}
for (i=1; i < refcount->count; i++) {
if (refcount->list[i-1].ea_blk >= refcount->list[i].ea_blk) {
- fprintf(out, "%s: list[%d].blk=%u, list[%d].blk=%u\n",
+ fprintf(out,
+ "%s: list[%d].blk=%llu, list[%d].blk=%llu\n",
bad, i-1, refcount->list[i-1].ea_blk,
i, refcount->list[i].ea_blk);
ret = EXT2_ET_INVALID_ARGUMENT;
@@ -370,7 +371,7 @@ int main(int argc, char **argv)
int i = 0;
ext2_refcount_t refcount;
int size, arg;
- blk_t blk;
+ blk64_t blk;
errcode_t retval;
while (1) {
@@ -396,20 +397,20 @@ int main(int argc, char **argv)
case BCODE_STORE:
blk = (blk_t) bcode_program[i++];
arg = bcode_program[i++];
- printf("Storing blk %u with value %d\n", blk, arg);
+ printf("Storing blk %llu with value %d\n", blk, arg);
retval = ea_refcount_store(refcount, blk, arg);
if (retval)
com_err("ea_refcount_store", retval,
- "while storing blk %u", blk);
+ "while storing blk %llu", blk);
break;
case BCODE_FETCH:
blk = (blk_t) bcode_program[i++];
retval = ea_refcount_fetch(refcount, blk, &arg);
if (retval)
com_err("ea_refcount_fetch", retval,
- "while fetching blk %u", blk);
+ "while fetching blk %llu", blk);
else
- printf("bcode_fetch(%u) returns %d\n",
+ printf("bcode_fetch(%llu) returns %d\n",
blk, arg);
break;
case BCODE_INCR:
@@ -417,9 +418,9 @@ int main(int argc, char **argv)
retval = ea_refcount_increment(refcount, blk, &arg);
if (retval)
com_err("ea_refcount_increment", retval,
- "while incrementing blk %u", blk);
+ "while incrementing blk %llu", blk);
else
- printf("bcode_increment(%u) returns %d\n",
+ printf("bcode_increment(%llu) returns %d\n",
blk, arg);
break;
case BCODE_DECR:
@@ -427,9 +428,9 @@ int main(int argc, char **argv)
retval = ea_refcount_decrement(refcount, blk, &arg);
if (retval)
com_err("ea_refcount_decrement", retval,
- "while decrementing blk %u", blk);
+ "while decrementing blk %llu", blk);
else
- printf("bcode_decrement(%u) returns %d\n",
+ printf("bcode_decrement(%llu) returns %d\n",
blk, arg);
break;
case BCODE_VALIDATE:
@@ -446,7 +447,7 @@ int main(int argc, char **argv)
blk = ea_refcount_intr_next(refcount, &arg);
if (!blk)
break;
- printf("\tblk=%u, count=%d\n", blk, arg);
+ printf("\tblk=%llu, count=%d\n", blk, arg);
}
break;
case BCODE_COLLAPSE:
diff --git a/e2fsck/ehandler.c b/e2fsck/ehandler.c
index 6eecf33f..6dddf9c1 100644
--- a/e2fsck/ehandler.c
+++ b/e2fsck/ehandler.c
@@ -60,7 +60,7 @@ static errcode_t e2fsck_handle_read_error(io_channel channel,
preenhalt(ctx);
if (ask(ctx, _("Ignore error"), 1)) {
if (ask(ctx, _("Force rewrite"), 1))
- io_channel_write_blk64(channel, block, 1, data);
+ io_channel_write_blk64(channel, block, count, data);
return 0;
}
diff --git a/e2fsck/iscan.c b/e2fsck/iscan.c
index f5286b74..52cad11e 100644
--- a/e2fsck/iscan.c
+++ b/e2fsck/iscan.c
@@ -16,9 +16,6 @@
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
-#ifdef HAVE_MNTENT_H
-#include <mntent.h>
-#endif
#include <sys/ioctl.h>
#ifdef HAVE_MALLOC_H
#include <malloc.h>
@@ -110,7 +107,7 @@ int main (int argc, char *argv[])
retval = ext2fs_open(device_name, 0,
0, 0, unix_io_manager, &fs);
if (retval) {
- com_err(program_name, retval, _("while trying to open %s"),
+ com_err(program_name, retval, _("while trying to open '%s'"),
device_name);
exit(1);
}
diff --git a/e2fsck/jfs_user.h b/e2fsck/jfs_user.h
index 9e333060..bfc1bcde 100644
--- a/e2fsck/jfs_user.h
+++ b/e2fsck/jfs_user.h
@@ -18,7 +18,7 @@ struct buffer_head {
e2fsck_t b_ctx;
io_channel b_io;
int b_size;
- blk_t b_blocknr;
+ unsigned long long b_blocknr;
int b_dirty;
int b_uptodate;
int b_err;
@@ -75,20 +75,31 @@ typedef __u64 __be64;
* We use the standard libext2fs portability tricks for inline
* functions.
*/
+#ifdef NO_INLINE_FUNCS
extern lkmem_cache_t * do_cache_create(int len);
extern void do_cache_destroy(lkmem_cache_t *cache);
extern size_t journal_tag_bytes(journal_t *journal);
+#endif
#if (defined(E2FSCK_INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS))
#ifdef E2FSCK_INCLUDE_INLINE_FUNCS
-#define _INLINE_ extern
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ extern inline
#else
+#define _INLINE_ inline
+#endif
+#else /* !E2FSCK_INCLUDE_INLINE FUNCS */
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ inline
+#else /* not C99 */
#ifdef __GNUC__
#define _INLINE_ extern __inline__
#else /* For Watcom C */
#define _INLINE_ extern inline
-#endif
-#endif
+#endif /* __GNUC__ */
+#endif /* __STDC_VERSION__ >= 199901L */
+#endif /* E2FSCK_INCLUDE_INLINE_FUNCS */
+
_INLINE_ lkmem_cache_t * do_cache_create(int len)
{
@@ -121,7 +132,7 @@ _INLINE_ size_t journal_tag_bytes(journal_t *journal)
/*
* Kernel compatibility functions are defined in journal.c
*/
-int journal_bmap(journal_t *journal, blk64_t block, unsigned long *phys);
+int journal_bmap(journal_t *journal, blk64_t block, unsigned long long *phys);
struct buffer_head *getblk(kdev_t ctx, blk64_t blocknr, int blocksize);
void sync_blockdev(kdev_t kdev);
void ll_rw_block(int rw, int dummy, struct buffer_head *bh[]);
diff --git a/e2fsck/journal.c b/e2fsck/journal.c
index 915b8bbf..11ccec58 100644
--- a/e2fsck/journal.c
+++ b/e2fsck/journal.c
@@ -44,7 +44,7 @@ static int bh_count = 0;
* to use the recovery.c file virtually unchanged from the kernel, so we
* don't have to do much to keep kernel and user recovery in sync.
*/
-int journal_bmap(journal_t *journal, blk64_t block, unsigned long *phys)
+int journal_bmap(journal_t *journal, blk64_t block, unsigned long long *phys)
{
#ifdef USE_INODE_IO
*phys = block;
@@ -62,7 +62,7 @@ int journal_bmap(journal_t *journal, blk64_t block, unsigned long *phys)
retval= ext2fs_bmap2(inode->i_ctx->fs, inode->i_ino,
&inode->i_ext2, NULL, 0, block, 0, &pblk);
*phys = pblk;
- return (retval);
+ return (int) retval;
#endif
}
@@ -80,8 +80,8 @@ struct buffer_head *getblk(kdev_t kdev, blk64_t blocknr, int blocksize)
if (journal_enable_debug >= 3)
bh_count++;
#endif
- jfs_debug(4, "getblk for block %lu (%d bytes)(total %d)\n",
- (unsigned long) blocknr, blocksize, bh_count);
+ jfs_debug(4, "getblk for block %llu (%d bytes)(total %d)\n",
+ (unsigned long long) blocknr, blocksize, bh_count);
bh->b_ctx = kdev->k_ctx;
if (kdev->k_dev == K_DEV_FS)
@@ -108,44 +108,45 @@ void sync_blockdev(kdev_t kdev)
void ll_rw_block(int rw, int nr, struct buffer_head *bhp[])
{
- int retval;
+ errcode_t retval;
struct buffer_head *bh;
for (; nr > 0; --nr) {
bh = *bhp++;
if (rw == READ && !bh->b_uptodate) {
- jfs_debug(3, "reading block %lu/%p\n",
- (unsigned long) bh->b_blocknr, (void *) bh);
+ jfs_debug(3, "reading block %llu/%p\n",
+ bh->b_blocknr, (void *) bh);
retval = io_channel_read_blk64(bh->b_io,
bh->b_blocknr,
1, bh->b_data);
if (retval) {
com_err(bh->b_ctx->device_name, retval,
- "while reading block %lu\n",
- (unsigned long) bh->b_blocknr);
- bh->b_err = retval;
+ "while reading block %llu\n",
+ bh->b_blocknr);
+ bh->b_err = (int) retval;
continue;
}
bh->b_uptodate = 1;
} else if (rw == WRITE && bh->b_dirty) {
- jfs_debug(3, "writing block %lu/%p\n",
- (unsigned long) bh->b_blocknr, (void *) bh);
+ jfs_debug(3, "writing block %llu/%p\n",
+ bh->b_blocknr,
+ (void *) bh);
retval = io_channel_write_blk64(bh->b_io,
bh->b_blocknr,
1, bh->b_data);
if (retval) {
com_err(bh->b_ctx->device_name, retval,
- "while writing block %lu\n",
- (unsigned long) bh->b_blocknr);
- bh->b_err = retval;
+ "while writing block %llu\n",
+ bh->b_blocknr);
+ bh->b_err = (int) retval;
continue;
}
bh->b_dirty = 0;
bh->b_uptodate = 1;
} else {
- jfs_debug(3, "no-op %s for block %lu\n",
+ jfs_debug(3, "no-op %s for block %llu\n",
rw == READ ? "read" : "write",
- (unsigned long) bh->b_blocknr);
+ bh->b_blocknr);
}
}
}
@@ -164,8 +165,8 @@ void brelse(struct buffer_head *bh)
{
if (bh->b_dirty)
ll_rw_block(WRITE, 1, &bh);
- jfs_debug(3, "freeing block %lu/%p (total %d)\n",
- (unsigned long) bh->b_blocknr, (void *) bh, --bh_count);
+ jfs_debug(3, "freeing block %llu/%p (total %d)\n",
+ bh->b_blocknr, (void *) bh, --bh_count);
ext2fs_free_mem(&bh);
}
@@ -237,7 +238,7 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t **ret_journal)
journal_t *journal = NULL;
errcode_t retval = 0;
io_manager io_ptr = 0;
- unsigned long start = 0;
+ unsigned long long start = 0;
int ext_journal = 0;
int tried_backup_jnl = 0;
@@ -313,7 +314,7 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t **ret_journal)
BLOCK_FLAG_HOLE, 0,
process_journal_block, &pb);
if ((pb.last_block + 1) * ctx->fs->blocksize <
- EXT2_I_SIZE(&j_inode->i_ext2)) {
+ (int) EXT2_I_SIZE(&j_inode->i_ext2)) {
retval = EXT2_ET_JOURNAL_TOO_SMALL;
goto try_backup_journal;
}
@@ -338,7 +339,7 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t **ret_journal)
#else
journal->j_inode = j_inode;
ctx->journal_io = ctx->fs->io;
- if ((retval = journal_bmap(journal, 0, &start)) != 0)
+ if ((retval = (errcode_t) journal_bmap(journal, 0, &start)) != 0)
goto errout;
#endif
} else {
@@ -371,15 +372,27 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t **ret_journal)
#ifndef USE_INODE_IO
if (ext_journal)
#endif
- retval = io_ptr->open(journal_name,
- IO_FLAG_RW | IO_FLAG_EXCLUSIVE,
+ {
+ int flags = IO_FLAG_RW;
+ if (!(ctx->mount_flags & EXT2_MF_ISROOT &&
+ ctx->mount_flags & EXT2_MF_READONLY))
+ flags |= IO_FLAG_EXCLUSIVE;
+ if ((ctx->mount_flags & EXT2_MF_READONLY) &&
+ (ctx->options & E2F_OPT_FORCE))
+ flags &= ~IO_FLAG_EXCLUSIVE;
+
+
+ retval = io_ptr->open(journal_name, flags,
&ctx->journal_io);
+ }
if (retval)
goto errout;
io_channel_set_blksize(ctx->journal_io, ctx->fs->blocksize);
if (ext_journal) {
+ blk64_t maxlen;
+
if (ctx->fs->blocksize == 1024)
start = 1;
bh = getblk(dev_journal, start, ctx->fs->blocksize);
@@ -413,7 +426,8 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t **ret_journal)
goto errout;
}
- journal->j_maxlen = ext2fs_blocks_count(&jsuper);
+ maxlen = ext2fs_blocks_count(&jsuper);
+ journal->j_maxlen = (maxlen < 1ULL << 32) ? maxlen : (1ULL << 32) - 1;
start++;
}
@@ -507,7 +521,7 @@ static errcode_t e2fsck_journal_load(journal_t *journal)
ll_rw_block(READ, 1, &jbh);
if (jbh->b_err) {
- com_err(ctx->device_name, jbh->b_err,
+ com_err(ctx->device_name, jbh->b_err, "%s",
_("reading journal superblock\n"));
return jbh->b_err;
}
@@ -690,7 +704,7 @@ static void e2fsck_journal_release(e2fsck_t ctx, journal_t *journal,
* This function makes sure that the superblock fields regarding the
* journal are consistent.
*/
-int e2fsck_check_ext3_journal(e2fsck_t ctx)
+errcode_t e2fsck_check_ext3_journal(e2fsck_t ctx)
{
struct ext2_super_block *sb = ctx->fs->super;
journal_t *journal;
@@ -699,7 +713,7 @@ int e2fsck_check_ext3_journal(e2fsck_t ctx)
struct problem_context pctx;
problem_t problem;
int reset = 0, force_fsck = 0;
- int retval;
+ errcode_t retval;
/* If we don't have any journal features, don't do anything more */
if (!(sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) &&
@@ -802,6 +816,19 @@ no_has_journal:
*/
}
+ /*
+ * If we don't need to do replay the journal, check to see if
+ * the journal's errno is set; if so, we need to mark the file
+ * system as being corrupt and clear the journal's s_errno.
+ */
+ if (!(sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) &&
+ journal->j_superblock->s_errno) {
+ ctx->fs->super->s_state |= EXT2_ERROR_FS;
+ ext2fs_mark_super_dirty(ctx->fs);
+ journal->j_superblock->s_errno = 0;
+ mark_buffer_dirty(journal->j_sb_buffer);
+ }
+
e2fsck_journal_release(ctx, journal, reset, 0);
return retval;
}
@@ -810,7 +837,7 @@ static errcode_t recover_ext3_journal(e2fsck_t ctx)
{
struct problem_context pctx;
journal_t *journal;
- int retval;
+ errcode_t retval;
clear_problem_context(&pctx);
@@ -834,15 +861,7 @@ static errcode_t recover_ext3_journal(e2fsck_t ctx)
if (journal->j_failed_commit) {
pctx.ino = journal->j_failed_commit;
fix_problem(ctx, PR_0_JNL_TXN_CORRUPT, &pctx);
- ctx->fs->super->s_state |= EXT2_ERROR_FS;
- ext2fs_mark_super_dirty(ctx->fs);
- }
-
-
- if (journal->j_superblock->s_errno) {
- ctx->fs->super->s_state |= EXT2_ERROR_FS;
- ext2fs_mark_super_dirty(ctx->fs);
- journal->j_superblock->s_errno = 0;
+ journal->j_superblock->s_errno = -EINVAL;
mark_buffer_dirty(journal->j_sb_buffer);
}
@@ -853,7 +872,7 @@ errout:
return retval;
}
-int e2fsck_run_ext3_journal(e2fsck_t ctx)
+errcode_t e2fsck_run_ext3_journal(e2fsck_t ctx)
{
io_manager io_ptr = ctx->fs->io->manager;
int blocksize = ctx->fs->blocksize;
@@ -900,8 +919,14 @@ int e2fsck_run_ext3_journal(e2fsck_t ctx)
ctx->fs->super->s_kbytes_written += kbytes_written;
/* Set the superblock flags */
- e2fsck_clear_recover(ctx, recover_retval);
- return recover_retval;
+ e2fsck_clear_recover(ctx, recover_retval != 0);
+
+ /*
+ * Do one last sanity check, and propagate journal->s_errno to
+ * the EXT2_ERROR_FS flag in the fs superblock if needed.
+ */
+ retval = e2fsck_check_ext3_journal(ctx);
+ return retval ? retval : recover_retval;
}
/*
@@ -920,7 +945,8 @@ void e2fsck_move_ext3_journal(e2fsck_t ctx)
ext2_ino_t ino;
errcode_t retval;
const char * const * cpp;
- int group, mount_flags;
+ dgrp_t group;
+ int mount_flags;
clear_problem_context(&pctx);
@@ -1051,8 +1077,10 @@ int e2fsck_fix_ext3_journal_hint(e2fsck_t ctx)
if (!journal_name)
return 0;
- if (stat(journal_name, &st) < 0)
+ if (stat(journal_name, &st) < 0) {
+ free(journal_name);
return 0;
+ }
if (st.st_rdev != sb->s_journal_dev) {
clear_problem_context(&pctx);
diff --git a/e2fsck/logfile.c b/e2fsck/logfile.c
index 76ae52d1..c48b8eb8 100644
--- a/e2fsck/logfile.c
+++ b/e2fsck/logfile.c
@@ -13,6 +13,9 @@
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
#include "e2fsck.h"
#include <pwd.h>
@@ -33,19 +36,25 @@ static void alloc_string(struct string *s, int len)
static void append_string(struct string *s, const char *a, int len)
{
+ int needlen;
+
if (!len)
len = strlen(a);
- if (s->end + len >= s->len) {
- char *n = realloc(s, s->len * 2);
+ needlen = s->end + len + 1;
+ if (needlen > s->len) {
+ char *n;
+
+ if (s->len * 2 > needlen)
+ needlen = s->len * 2;
+ n = realloc(s->s, needlen);
if (n) {
s->s = n;
- s->len = s->len * 2;
+ s->len = needlen;
} else {
- len = s->len - s->end - 1;
- if (len <= 0)
- return;
+ /* Don't append if we ran out of memory */
+ return;
}
}
memcpy(s->s + s->end, a, len);
@@ -126,7 +135,11 @@ static void expand_percent_expression(e2fsck_t ctx, char ch,
strcpy(buf, "tytso");
break;
#else
+#ifdef HAVE_GETPWUID_R
getpwuid_r(getuid(), &pw_struct, buf, sizeof(buf), &pw);
+#else
+ pw = getpwuid(getuid());
+#endif
if (pw)
append_string(s, pw->pw_name, 0);
return;
diff --git a/e2fsck/message.c b/e2fsck/message.c
index 980dc4b8..7b843594 100644
--- a/e2fsck/message.c
+++ b/e2fsck/message.c
@@ -197,7 +197,7 @@ static void safe_print(FILE *f, const char *cp, int len)
static void print_pathname(FILE *f, ext2_filsys fs, ext2_ino_t dir,
ext2_ino_t ino)
{
- errcode_t retval;
+ errcode_t retval = 0;
char *path;
if (!dir && (ino < num_special_inodes)) {
@@ -226,7 +226,8 @@ static void print_time(FILE *f, time_t t)
time_str = getenv("TZ");
if (!time_str)
time_str = "";
- do_gmt = !strcmp(time_str, "GMT0");
+ do_gmt = !strcmp(time_str, "GMT") ||
+ !strcmp(time_str, "GMT0");
}
#endif
time_str = asctime((do_gmt > 0) ? gmtime(&t) : localtime(&t));
@@ -361,8 +362,7 @@ static _INLINE_ void expand_dirent_expression(FILE *f, ext2_filsys fs, char ch,
struct problem_context *ctx)
{
struct ext2_dir_entry *dirent;
- unsigned int rec_len;
- int len;
+ unsigned int rec_len, len;
if (!ctx || !ctx->dirent)
goto no_dirent;
@@ -451,7 +451,7 @@ static _INLINE_ void expand_percent_expression(FILE *f, ext2_filsys fs,
fprintf(f, "%*u", width, ctx->dir);
break;
case 'g':
- fprintf(f, "%*d", width, ctx->group);
+ fprintf(f, "%*u", width, ctx->group);
break;
case 'i':
fprintf(f, "%*u", width, ctx->ino);
@@ -490,7 +490,7 @@ static _INLINE_ void expand_percent_expression(FILE *f, ext2_filsys fs,
#endif
break;
case 'S':
- fprintf(f, "%u", get_backup_sb(NULL, fs, NULL, NULL));
+ fprintf(f, "%llu", get_backup_sb(NULL, fs, NULL, NULL));
break;
case 's':
fprintf(f, "%*s", width, ctx->str ? ctx->str : "NULL");
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c
index c7645d15..9ef724ad 100644
--- a/e2fsck/pass1.c
+++ b/e2fsck/pass1.c
@@ -274,16 +274,15 @@ static void check_ea_in_inode(e2fsck_t ctx, struct problem_context *pctx)
struct ext2_super_block *sb = ctx->fs->super;
struct ext2_inode_large *inode;
struct ext2_ext_attr_entry *entry;
- char *start, *end;
+ char *start;
unsigned int storage_size, remain;
- int problem = 0;
+ problem_t problem = 0;
inode = (struct ext2_inode_large *) pctx->inode;
storage_size = EXT2_INODE_SIZE(ctx->fs->super) - EXT2_GOOD_OLD_INODE_SIZE -
inode->i_extra_isize;
start = ((char *) inode) + EXT2_GOOD_OLD_INODE_SIZE +
inode->i_extra_isize + sizeof(__u32);
- end = (char *) inode + EXT2_INODE_SIZE(ctx->fs->super);
entry = (struct ext2_ext_attr_entry *) start;
/* scan all entry's headers first */
@@ -308,7 +307,7 @@ static void check_ea_in_inode(e2fsck_t ctx, struct problem_context *pctx)
remain -= EXT2_EXT_ATTR_SIZE(entry->e_name_len);
/* check value size */
- if (entry->e_value_size == 0 || entry->e_value_size > remain) {
+ if (entry->e_value_size > remain) {
pctx->num = entry->e_value_size;
problem = PR_1_ATTR_VALUE_SIZE;
goto fix;
@@ -510,8 +509,8 @@ static void check_is_really_dir(e2fsck_t ctx, struct problem_context *pctx,
}
}
-extern void e2fsck_setup_tdb_icount(e2fsck_t ctx, int flags,
- ext2_icount_t *ret)
+void e2fsck_setup_tdb_icount(e2fsck_t ctx, int flags,
+ ext2_icount_t *ret)
{
unsigned int threshold;
ext2_ino_t num_dirs;
@@ -547,9 +546,9 @@ void e2fsck_pass1(e2fsck_t ctx)
__u64 max_sizes;
ext2_filsys fs = ctx->fs;
ext2_ino_t ino = 0;
- struct ext2_inode *inode;
- ext2_inode_scan scan;
- char *block_buf;
+ struct ext2_inode *inode = NULL;
+ ext2_inode_scan scan = NULL;
+ char *block_buf = NULL;
#ifdef RESOURCE_TRACK
struct resource_track rtrack;
#endif
@@ -560,7 +559,7 @@ void e2fsck_pass1(e2fsck_t ctx)
const char *old_op;
unsigned int save_type;
int imagic_fs, extent_fs;
- int busted_fs_time = 0;
+ int low_dtime_check = 1;
int inode_size;
init_resource_track(&rtrack, ctx->fs->io);
@@ -663,8 +662,7 @@ void e2fsck_pass1(e2fsck_t ctx)
if (pctx.errcode) {
fix_problem(ctx, PR_1_ALLOCATE_DBCOUNT, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
- ext2fs_free_mem(&inode);
- return;
+ goto endit;
}
/*
@@ -687,8 +685,7 @@ void e2fsck_pass1(e2fsck_t ctx)
if (pctx.errcode) {
fix_problem(ctx, PR_1_CONVERT_SUBCLUSTER, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
- ext2fs_free_mem(&inode);
- return;
+ goto endit;
}
block_buf = (char *) e2fsck_allocate_memory(ctx, fs->blocksize * 3,
"block interate buffer");
@@ -700,25 +697,25 @@ void e2fsck_pass1(e2fsck_t ctx)
if (pctx.errcode) {
fix_problem(ctx, PR_1_ISCAN_ERROR, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
- ext2fs_free_mem(&block_buf);
- ext2fs_free_mem(&inode);
- return;
+ goto endit;
}
ext2fs_inode_scan_flags(scan, EXT2_SF_SKIP_MISSING_ITABLE, 0);
ctx->stashed_inode = inode;
scan_struct.ctx = ctx;
scan_struct.block_buf = block_buf;
ext2fs_set_inode_callback(scan, scan_callback, &scan_struct);
- if (ctx->progress)
- if ((ctx->progress)(ctx, 1, 0, ctx->fs->group_desc_count))
- return;
+ if (ctx->progress && ((ctx->progress)(ctx, 1, 0,
+ ctx->fs->group_desc_count)))
+ goto endit;
if ((fs->super->s_wtime < fs->super->s_inodes_count) ||
- (fs->super->s_mtime < fs->super->s_inodes_count))
- busted_fs_time = 1;
+ (fs->super->s_mtime < fs->super->s_inodes_count) ||
+ (fs->super->s_mkfs_time &&
+ fs->super->s_mkfs_time < fs->super->s_inodes_count))
+ low_dtime_check = 0;
if ((fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_MMP) &&
- !(fs->super->s_mmp_block <= fs->super->s_first_data_block ||
- fs->super->s_mmp_block >= fs->super->s_blocks_count))
+ fs->super->s_mmp_block > fs->super->s_first_data_block &&
+ fs->super->s_mmp_block < ext2fs_blocks_count(fs->super))
ext2fs_mark_block_bitmap2(ctx->block_found_map,
fs->super->s_mmp_block);
@@ -743,7 +740,7 @@ void e2fsck_pass1(e2fsck_t ctx)
if (pctx.errcode) {
fix_problem(ctx, PR_1_ISCAN_ERROR, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
- return;
+ goto endit;
}
if (!ino)
break;
@@ -757,7 +754,7 @@ void e2fsck_pass1(e2fsck_t ctx)
pctx.num = inode->i_links_count;
fix_problem(ctx, PR_1_ICOUNT_STORE, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
- return;
+ goto endit;
}
}
@@ -847,7 +844,7 @@ void e2fsck_pass1(e2fsck_t ctx)
pctx.num = 4;
fix_problem(ctx, PR_1_ALLOCATE_BBITMAP_ERROR, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
- return;
+ goto endit;
}
pb.ino = EXT2_BAD_INO;
pb.num_blocks = pb.last_block = 0;
@@ -864,12 +861,12 @@ void e2fsck_pass1(e2fsck_t ctx)
if (pctx.errcode) {
fix_problem(ctx, PR_1_BLOCK_ITERATE, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
- return;
+ goto endit;
}
if (pb.bbcheck)
if (!fix_problem(ctx, PR_1_BBINODE_BAD_METABLOCK_PROMPT, &pctx)) {
ctx->flags |= E2F_FLAG_ABORT;
- return;
+ goto endit;
}
ext2fs_mark_inode_bitmap2(ctx->inode_used_map, ino);
clear_problem_context(&pctx);
@@ -928,8 +925,8 @@ void e2fsck_pass1(e2fsck_t ctx)
ext2fs_mark_inode_bitmap2(ctx->inode_used_map, ino);
if ((fs->super->s_feature_ro_compat &
EXT4_FEATURE_RO_COMPAT_QUOTA) &&
- (fs->super->s_usr_quota_inum == ino) ||
- (fs->super->s_grp_quota_inum == ino)) {
+ ((fs->super->s_usr_quota_inum == ino) ||
+ (fs->super->s_grp_quota_inum == ino))) {
if (!LINUX_S_ISREG(inode->i_mode) &&
fix_problem(ctx, PR_1_QUOTA_BAD_MODE,
&pctx)) {
@@ -951,7 +948,7 @@ void e2fsck_pass1(e2fsck_t ctx)
inode_size, "pass1");
}
} else if (ino < EXT2_FIRST_INODE(fs->super)) {
- int problem = 0;
+ problem_t problem = 0;
ext2fs_mark_inode_bitmap2(ctx->inode_used_map, ino);
if (ino == EXT2_BOOT_LOADER_INO) {
@@ -993,7 +990,7 @@ void e2fsck_pass1(e2fsck_t ctx)
* than nothing. The right answer is that there
* shouldn't be any bugs in the orphan list handling. :-)
*/
- if (inode->i_dtime && !busted_fs_time &&
+ if (inode->i_dtime && low_dtime_check &&
inode->i_dtime < ctx->fs->super->s_inodes_count) {
if (fix_problem(ctx, PR_1_LOW_DTIME, &pctx)) {
inode->i_dtime = inode->i_links_count ?
@@ -1147,17 +1144,18 @@ void e2fsck_pass1(e2fsck_t ctx)
check_blocks(ctx, &pctx, block_buf);
if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
- return;
+ goto endit;
if (process_inode_count >= ctx->process_inode_size) {
process_inodes(ctx, block_buf);
if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
- return;
+ goto endit;
}
}
process_inodes(ctx, block_buf);
ext2fs_close_inode_scan(scan);
+ scan = NULL;
/*
* If any extended attribute blocks' reference counts need to
@@ -1196,7 +1194,7 @@ void e2fsck_pass1(e2fsck_t ctx)
if (!fix_problem(ctx, PR_1_RESIZE_INODE_CREATE,
&pctx)) {
ctx->flags |= E2F_FLAG_ABORT;
- return;
+ goto endit;
}
pctx.errcode = 0;
}
@@ -1234,10 +1232,15 @@ void e2fsck_pass1(e2fsck_t ctx)
endit:
e2fsck_use_inode_shortcuts(ctx, 0);
- ext2fs_free_mem(&block_buf);
- ext2fs_free_mem(&inode);
+ if (scan)
+ ext2fs_close_inode_scan(scan);
+ if (block_buf)
+ ext2fs_free_mem(&block_buf);
+ if (inode)
+ ext2fs_free_mem(&inode);
- print_resource_track(ctx, _("Pass 1"), &rtrack, ctx->fs->io);
+ if ((ctx->flags & E2F_FLAG_SIGNAL_MASK) == 0)
+ print_resource_track(ctx, _("Pass 1"), &rtrack, ctx->fs->io);
}
/*
@@ -1432,6 +1435,16 @@ static _INLINE_ void mark_block_used(e2fsck_t ctx, blk64_t block)
}
}
+static _INLINE_ void mark_blocks_used(e2fsck_t ctx, blk64_t block,
+ unsigned int num)
+{
+ if (ext2fs_test_block_bitmap_range2(ctx->block_found_map, block, num))
+ ext2fs_mark_block_bitmap_range2(ctx->block_found_map, block, num);
+ else
+ while (num--)
+ mark_block_used(ctx, block++);
+}
+
/*
* Adjust the extended attribute block's reference counts at the end
* of pass 1, either by subtracting out references for EA blocks that
@@ -1751,15 +1764,16 @@ void e2fsck_clear_inode(e2fsck_t ctx, ext2_ino_t ino,
static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
struct process_block_struct *pb,
- blk64_t start_block,
+ blk64_t start_block, blk64_t end_block,
+ blk64_t eof_block,
ext2_extent_handle_t ehandle)
{
struct ext2fs_extent extent;
- blk64_t blk;
+ blk64_t blk, last_lblk;
e2_blkcnt_t blockcnt;
unsigned int i;
int is_dir, is_leaf;
- errcode_t problem;
+ problem_t problem;
struct ext2_extent_info info;
pctx->errcode = ext2fs_extent_get_info(ehandle, &info);
@@ -1771,6 +1785,7 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
while (!pctx->errcode && info.num_entries-- > 0) {
is_leaf = extent.e_flags & EXT2_EXTENT_FLAGS_LEAF;
is_dir = LINUX_S_ISDIR(pctx->inode->i_mode);
+ last_lblk = extent.e_lblk + extent.e_len - 1;
problem = 0;
if (extent.e_pblk == 0 ||
@@ -1779,18 +1794,27 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
problem = PR_1_EXTENT_BAD_START_BLK;
else if (extent.e_lblk < start_block)
problem = PR_1_OUT_OF_ORDER_EXTENTS;
- else if (extent.e_len == 0)
+ else if ((end_block && last_lblk > end_block) &&
+ (!(extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT &&
+ last_lblk > eof_block)))
+ problem = PR_1_EXTENT_END_OUT_OF_BOUNDS;
+ else if (is_leaf && extent.e_len == 0)
problem = PR_1_EXTENT_LENGTH_ZERO;
else if (is_leaf &&
(extent.e_pblk + extent.e_len) >
ext2fs_blocks_count(ctx->fs->super))
problem = PR_1_EXTENT_ENDS_BEYOND;
+ else if (is_leaf && is_dir &&
+ ((extent.e_lblk + extent.e_len) >
+ (1 << (21 - ctx->fs->super->s_log_block_size))))
+ problem = PR_1_TOOBIG_DIR;
if (problem) {
- report_problem:
+report_problem:
pctx->blk = extent.e_pblk;
pctx->blk2 = extent.e_lblk;
pctx->num = extent.e_len;
+ pctx->blkcount = extent.e_lblk + extent.e_len;
if (fix_problem(ctx, problem, pctx)) {
e2fsck_read_bitmaps(ctx);
pctx->errcode =
@@ -1799,6 +1823,7 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
pctx->str = "ext2fs_extent_delete";
return;
}
+ ext2fs_extent_fix_parents(ehandle);
pctx->errcode = ext2fs_extent_get(ehandle,
EXT2_EXTENT_CURRENT,
&extent);
@@ -1812,6 +1837,8 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
}
if (!is_leaf) {
+ blk64_t lblk = extent.e_lblk;
+
blk = extent.e_pblk;
pctx->errcode = ext2fs_extent_get(ehandle,
EXT2_EXTENT_DOWN, &extent);
@@ -1822,7 +1849,20 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
goto report_problem;
return;
}
- scan_extent_node(ctx, pctx, pb, extent.e_lblk, ehandle);
+ /* The next extent should match this index's logical start */
+ if (extent.e_lblk != lblk) {
+ struct ext2_extent_info e_info;
+
+ ext2fs_extent_get_info(ehandle, &e_info);
+ pctx->blk = lblk;
+ pctx->blk2 = extent.e_lblk;
+ pctx->num = e_info.curr_level - 1;
+ problem = PR_1_EXTENT_INDEX_START_INVALID;
+ if (fix_problem(ctx, problem, pctx))
+ ext2fs_extent_fix_parents(ehandle);
+ }
+ scan_extent_node(ctx, pctx, pb, extent.e_lblk,
+ last_lblk, eof_block, ehandle);
if (pctx->errcode)
return;
pctx->errcode = ext2fs_extent_get(ehandle,
@@ -1857,7 +1897,8 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
}
pb->fragmented = 1;
}
- while (is_dir && ++pb->last_db_block < extent.e_lblk) {
+ while (is_dir && (++pb->last_db_block <
+ (e2_blkcnt_t) extent.e_lblk)) {
pctx->errcode = ext2fs_add_dir_block2(ctx->fs->dblist,
pb->ino, 0,
pb->last_db_block);
@@ -1867,15 +1908,19 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
goto failed_add_dir_block;
}
}
+ if (!ctx->fs->cluster_ratio_bits) {
+ mark_blocks_used(ctx, extent.e_pblk, extent.e_len);
+ pb->num_blocks += extent.e_len;
+ }
for (blk = extent.e_pblk, blockcnt = extent.e_lblk, i = 0;
i < extent.e_len;
blk++, blockcnt++, i++) {
- if (!(ctx->fs->cluster_ratio_bits &&
- pb->previous_block &&
+ if (ctx->fs->cluster_ratio_bits &&
+ !(pb->previous_block &&
(EXT2FS_B2C(ctx->fs, blk) ==
EXT2FS_B2C(ctx->fs, pb->previous_block)) &&
(blk & EXT2FS_CLUSTER_MASK(ctx->fs)) ==
- (blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
+ ((unsigned) blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
mark_block_used(ctx, blk);
pb->num_blocks++;
}
@@ -1898,10 +1943,10 @@ static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
if (is_dir && extent.e_len > 0)
pb->last_db_block = blockcnt - 1;
pb->previous_block = extent.e_pblk + extent.e_len - 1;
- start_block = pb->last_block = extent.e_lblk + extent.e_len - 1;
+ start_block = pb->last_block = last_lblk;
if (is_leaf && !is_dir &&
!(extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT))
- pb->last_init_lblock = extent.e_lblk + extent.e_len - 1;
+ pb->last_init_lblock = last_lblk;
next:
pctx->errcode = ext2fs_extent_get(ehandle,
EXT2_EXTENT_NEXT_SIB,
@@ -1920,6 +1965,7 @@ static void check_blocks_extents(e2fsck_t ctx, struct problem_context *pctx,
ext2_filsys fs = ctx->fs;
ext2_ino_t ino = pctx->ino;
errcode_t retval;
+ blk64_t eof_lblk;
pctx->errcode = ext2fs_extent_open2(fs, ino, inode, &ehandle);
if (pctx->errcode) {
@@ -1937,7 +1983,9 @@ static void check_blocks_extents(e2fsck_t ctx, struct problem_context *pctx,
ctx->extent_depth_count[info.max_depth]++;
}
- scan_extent_node(ctx, pctx, pb, 0, ehandle);
+ eof_lblk = ((EXT2_I_SIZE(inode) + fs->blocksize - 1) >>
+ EXT2_BLOCK_SIZE_BITS(fs->super)) - 1;
+ scan_extent_node(ctx, pctx, pb, 0, 0, eof_lblk, ehandle);
if (pctx->errcode &&
fix_problem(ctx, PR_1_EXTENT_ITERATE_FAILURE, pctx)) {
pb->num_blocks = 0;
@@ -1960,7 +2008,7 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx,
struct process_block_struct pb;
ext2_ino_t ino = pctx->ino;
struct ext2_inode *inode = pctx->inode;
- int bad_size = 0;
+ unsigned bad_size = 0;
int dirty_inode = 0;
int extent_fs;
__u64 size;
@@ -2119,7 +2167,8 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx,
}
pctx->num = 0;
}
- if (LINUX_S_ISREG(inode->i_mode) && EXT2_I_SIZE(inode) >= 0x80000000UL)
+ if (LINUX_S_ISREG(inode->i_mode) &&
+ ext2fs_needs_large_file_feature(EXT2_I_SIZE(inode)))
ctx->large_files++;
if ((pb.num_blocks != ext2fs_inode_i_blocks(fs, inode)) ||
((fs->super->s_feature_ro_compat &
@@ -2211,7 +2260,7 @@ static int process_block(ext2_filsys fs,
struct problem_context *pctx;
blk64_t blk = *block_nr;
int ret_code = 0;
- int problem = 0;
+ problem_t problem = 0;
e2fsck_t ctx;
p = (struct process_block_struct *) priv_data;
@@ -2324,7 +2373,7 @@ static int process_block(ext2_filsys fs,
(EXT2FS_B2C(ctx->fs, blk) ==
EXT2FS_B2C(ctx->fs, p->previous_block)) &&
(blk & EXT2FS_CLUSTER_MASK(ctx->fs)) ==
- (blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
+ ((unsigned) blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
mark_block_used(ctx, blk);
p->num_blocks++;
}
@@ -2522,14 +2571,16 @@ static int process_bad_block(ext2_filsys fs,
return 0;
}
-static void new_table_block(e2fsck_t ctx, blk_t first_block, int group,
+static void new_table_block(e2fsck_t ctx, blk64_t first_block, dgrp_t group,
const char *name, int num, blk64_t *new_block)
{
ext2_filsys fs = ctx->fs;
dgrp_t last_grp;
blk64_t old_block = *new_block;
blk64_t last_block;
- int i, is_flexbg, flexbg, flexbg_size;
+ dgrp_t flexbg;
+ unsigned flexbg_size;
+ int i, is_flexbg;
char *buf;
struct problem_context pctx;
@@ -2655,7 +2706,7 @@ static void mark_table_blocks(e2fsck_t ctx)
ext2_filsys fs = ctx->fs;
blk64_t b;
dgrp_t i;
- int j;
+ unsigned int j;
struct problem_context pctx;
clear_problem_context(&pctx);
@@ -2822,11 +2873,11 @@ static void e2fsck_block_alloc_stats(ext2_filsys fs, blk64_t blk, int inuse)
}
}
-void e2fsck_use_inode_shortcuts(e2fsck_t ctx, int bool)
+void e2fsck_use_inode_shortcuts(e2fsck_t ctx, int use_shortcuts)
{
ext2_filsys fs = ctx->fs;
- if (bool) {
+ if (use_shortcuts) {
fs->get_blocks = pass1_get_blocks;
fs->check_directory = pass1_check_directory;
fs->read_inode = pass1_read_inode;
diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c
index 93fb630d..13bd9e98 100644
--- a/e2fsck/pass1b.c
+++ b/e2fsck/pass1b.c
@@ -88,8 +88,8 @@ static int process_pass1b_block(ext2_filsys fs, blk64_t *blocknr,
int ref_offset, void *priv_data);
static void delete_file(e2fsck_t ctx, ext2_ino_t ino,
struct dup_inode *dp, char *block_buf);
-static int clone_file(e2fsck_t ctx, ext2_ino_t ino,
- struct dup_inode *dp, char* block_buf);
+static errcode_t clone_file(e2fsck_t ctx, ext2_ino_t ino,
+ struct dup_inode *dp, char* block_buf);
static int check_if_fs_block(e2fsck_t ctx, blk64_t test_block);
static int check_if_fs_cluster(e2fsck_t ctx, blk64_t cluster);
@@ -624,7 +624,6 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino,
{
ext2_filsys fs = ctx->fs;
struct process_block_struct pb;
- struct ext2_inode inode;
struct problem_context pctx;
unsigned int count;
@@ -635,33 +634,35 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino,
pctx.str = "delete_file";
pb.cur_cluster = ~0;
- e2fsck_read_inode(ctx, ino, &inode, "delete_file");
- if (ext2fs_inode_has_valid_blocks2(fs, &inode))
- pctx.errcode = ext2fs_block_iterate3(fs, ino, BLOCK_FLAG_READ_ONLY,
- block_buf, delete_file_block, &pb);
+ if (ext2fs_inode_has_valid_blocks2(fs, &dp->inode))
+ pctx.errcode = ext2fs_block_iterate3(fs, ino,
+ BLOCK_FLAG_READ_ONLY,
+ block_buf,
+ delete_file_block, &pb);
if (pctx.errcode)
fix_problem(ctx, PR_1B_BLOCK_ITERATE, &pctx);
if (ctx->inode_bad_map)
ext2fs_unmark_inode_bitmap2(ctx->inode_bad_map, ino);
- ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(inode.i_mode));
- quota_data_sub(ctx->qctx, &inode, ino, pb.dup_blocks * fs->blocksize);
- quota_data_inodes(ctx->qctx, &inode, ino, -1);
+ ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(dp->inode.i_mode));
+ quota_data_sub(ctx->qctx, &dp->inode, ino,
+ pb.dup_blocks * fs->blocksize);
+ quota_data_inodes(ctx->qctx, &dp->inode, ino, -1);
/* Inode may have changed by block_iterate, so reread it */
- e2fsck_read_inode(ctx, ino, &inode, "delete_file");
- e2fsck_clear_inode(ctx, ino, &inode, 0, "delete_file");
- if (ext2fs_file_acl_block(fs, &inode) &&
+ e2fsck_read_inode(ctx, ino, &dp->inode, "delete_file");
+ e2fsck_clear_inode(ctx, ino, &dp->inode, 0, "delete_file");
+ if (ext2fs_file_acl_block(fs, &dp->inode) &&
(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
count = 1;
pctx.errcode = ext2fs_adjust_ea_refcount2(fs,
- ext2fs_file_acl_block(fs, &inode),
+ ext2fs_file_acl_block(fs, &dp->inode),
block_buf, -1, &count);
if (pctx.errcode == EXT2_ET_BAD_EA_BLOCK_NUM) {
pctx.errcode = 0;
count = 1;
}
if (pctx.errcode) {
- pctx.blk = ext2fs_file_acl_block(fs, &inode);
+ pctx.blk = ext2fs_file_acl_block(fs, &dp->inode);
fix_problem(ctx, PR_1B_ADJ_EA_REFCOUNT, &pctx);
}
/*
@@ -672,12 +673,12 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino,
*/
if ((count == 0) ||
ext2fs_test_block_bitmap2(ctx->block_dup_map,
- ext2fs_file_acl_block(fs, &inode))) {
- blk64_t blk = ext2fs_file_acl_block(fs, &inode);
+ ext2fs_file_acl_block(fs, &dp->inode))) {
+ blk64_t blk = ext2fs_file_acl_block(fs, &dp->inode);
delete_file_block(fs, &blk,
BLOCK_COUNT_EXTATTR, 0, 0, &pb);
- ext2fs_file_acl_block_set(fs, &inode, blk);
- quota_data_sub(ctx->qctx, &inode, ino, fs->blocksize);
+ ext2fs_file_acl_block_set(fs, &dp->inode, blk);
+ quota_data_sub(ctx->qctx, &dp->inode, ino, fs->blocksize);
}
}
}
@@ -778,8 +779,8 @@ static int clone_file_block(ext2_filsys fs,
return 0;
}
-static int clone_file(e2fsck_t ctx, ext2_ino_t ino,
- struct dup_inode *dp, char* block_buf)
+static errcode_t clone_file(e2fsck_t ctx, ext2_ino_t ino,
+ struct dup_inode *dp, char* block_buf)
{
ext2_filsys fs = ctx->fs;
errcode_t retval;
@@ -816,7 +817,7 @@ static int clone_file(e2fsck_t ctx, ext2_ino_t ino,
goto errout;
}
if (cs.errcode) {
- com_err("clone_file", cs.errcode,
+ com_err("clone_file", cs.errcode, "%s",
_("returned from clone_file_block"));
retval = cs.errcode;
goto errout;
diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c
index 882950d6..7277a7b3 100644
--- a/e2fsck/pass2.c
+++ b/e2fsck/pass2.c
@@ -351,9 +351,9 @@ static int check_dot(e2fsck_t ctx,
{
struct ext2_dir_entry *nextdir;
unsigned int rec_len, new_len;
- int status = 0;
- int created = 0;
- int problem = 0;
+ int status = 0;
+ int created = 0;
+ problem_t problem = 0;
if (!dirent->inode)
problem = PR_2_MISSING_DOT;
@@ -410,7 +410,7 @@ static int check_dotdot(e2fsck_t ctx,
struct ext2_dir_entry *dirent,
ext2_ino_t ino, struct problem_context *pctx)
{
- int problem = 0;
+ problem_t problem = 0;
unsigned int rec_len;
if (!dirent->inode)
@@ -668,7 +668,7 @@ static void salvage_directory(ext2_filsys fs,
*/
if ((left < 0) &&
((int) rec_len + left > 8) &&
- (name_len + 8 <= (int) rec_len + left) &&
+ ((int) name_len + 8 <= (int) rec_len + left) &&
dirent->inode <= fs->super->s_inodes_count &&
strnlen(dirent->name, name_len) == name_len) {
(void) ext2fs_set_rec_len(fs, (int) rec_len + left, dirent);
@@ -727,7 +727,7 @@ static int check_dir_block(ext2_filsys fs,
struct check_dir_struct *cd;
char *buf;
e2fsck_t ctx;
- int problem;
+ problem_t problem;
struct ext2_dx_root_info *root;
struct ext2_dx_countlimit *limit;
static dict_t de_dict;
@@ -844,7 +844,7 @@ out_htree:
dict_init(&de_dict, DICTCOUNT_T_MAX, dict_de_cmp);
prev = 0;
do {
- int group;
+ dgrp_t group;
ext2_ino_t first_unused_inode;
problem = 0;
@@ -1132,7 +1132,7 @@ out_htree:
}
}
if (dir_modified) {
- cd->pctx.errcode = ext2fs_write_dir_block(fs, block_nr, buf);
+ cd->pctx.errcode = ext2fs_write_dir_block3(fs, block_nr, buf, 0);
if (cd->pctx.errcode) {
if (!fix_problem(ctx, PR_2_WRITE_DIRBLOCK,
&cd->pctx))
@@ -1189,7 +1189,6 @@ static void deallocate_inode(e2fsck_t ctx, ext2_ino_t ino, char* block_buf)
struct del_block del_block;
e2fsck_read_inode(ctx, ino, &inode, "deallocate_inode");
- e2fsck_clear_inode(ctx, ino, &inode, 0, "deallocate_inode");
clear_problem_context(&pctx);
pctx.ino = ino;
@@ -1224,9 +1223,10 @@ static void deallocate_inode(e2fsck_t ctx, ext2_ino_t ino, char* block_buf)
}
if (!ext2fs_inode_has_valid_blocks2(fs, &inode))
- return;
+ goto clear_inode;
- if (LINUX_S_ISREG(inode.i_mode) && EXT2_I_SIZE(&inode) >= 0x80000000UL)
+ if (LINUX_S_ISREG(inode.i_mode) &&
+ ext2fs_needs_large_file_feature(EXT2_I_SIZE(&inode)))
ctx->large_files--;
del_block.ctx = ctx;
@@ -1239,6 +1239,10 @@ static void deallocate_inode(e2fsck_t ctx, ext2_ino_t ino, char* block_buf)
ctx->flags |= E2F_FLAG_ABORT;
return;
}
+clear_inode:
+ /* Inode may have changed by block_iterate, so reread it */
+ e2fsck_read_inode(ctx, ino, &inode, "deallocate_inode");
+ e2fsck_clear_inode(ctx, ino, &inode, 0, "deallocate_inode");
}
/*
@@ -1256,8 +1260,8 @@ static void clear_htree(e2fsck_t ctx, ext2_ino_t ino)
}
-extern int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir,
- ext2_ino_t ino, char *buf)
+int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir,
+ ext2_ino_t ino, char *buf)
{
ext2_filsys fs = ctx->fs;
struct ext2_inode inode;
@@ -1265,7 +1269,7 @@ extern int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir,
int not_fixed = 0;
unsigned char *frag, *fsize;
struct problem_context pctx;
- int problem = 0;
+ problem_t problem = 0;
e2fsck_read_inode(ctx, ino, &inode, "process_bad_inode");
@@ -1452,7 +1456,7 @@ static int allocate_dir_block(e2fsck_t ctx,
return 1;
}
- pctx->errcode = ext2fs_write_dir_block(fs, blk, block);
+ pctx->errcode = ext2fs_write_dir_block3(fs, blk, block, 0);
ext2fs_free_mem(&block);
if (pctx->errcode) {
pctx->str = "ext2fs_write_dir_block";
diff --git a/e2fsck/pass3.c b/e2fsck/pass3.c
index 565b8e33..32c05b5b 100644
--- a/e2fsck/pass3.c
+++ b/e2fsck/pass3.c
@@ -53,7 +53,7 @@ static ext2fs_inode_bitmap inode_done_map = 0;
void e2fsck_pass3(e2fsck_t ctx)
{
ext2_filsys fs = ctx->fs;
- struct dir_info_iter *iter;
+ struct dir_info_iter *iter = NULL;
#ifdef RESOURCE_TRACK
struct resource_track rtrack;
#endif
@@ -108,12 +108,11 @@ void e2fsck_pass3(e2fsck_t ctx)
if (check_directory(ctx, dir->ino, &pctx))
goto abort_exit;
}
- e2fsck_dir_info_iter_end(ctx, iter);
/*
* Force the creation of /lost+found if not present
*/
- if ((ctx->flags & E2F_OPT_READONLY) == 0)
+ if ((ctx->options & E2F_OPT_READONLY) == 0)
e2fsck_get_lost_and_found(ctx, 1);
/*
@@ -123,6 +122,8 @@ void e2fsck_pass3(e2fsck_t ctx)
e2fsck_rehash_directories(ctx);
abort_exit:
+ if (iter)
+ e2fsck_dir_info_iter_end(ctx, iter);
e2fsck_free_dir_info(ctx);
if (inode_loop_detect) {
ext2fs_free_inode_bitmap(inode_loop_detect);
@@ -198,9 +199,9 @@ static void check_root(e2fsck_t ctx)
return;
}
- pctx.errcode = ext2fs_write_dir_block(fs, blk, block);
+ pctx.errcode = ext2fs_write_dir_block3(fs, blk, block, 0);
if (pctx.errcode) {
- pctx.str = "ext2fs_write_dir_block";
+ pctx.str = "ext2fs_write_dir_block3";
fix_problem(ctx, PR_3_CREATE_ROOT_ERROR, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
return;
@@ -444,7 +445,7 @@ ext2_ino_t e2fsck_get_lost_and_found(e2fsck_t ctx, int fix)
return 0;
}
- retval = ext2fs_write_dir_block(fs, blk, block);
+ retval = ext2fs_write_dir_block3(fs, blk, block, 0);
ext2fs_free_mem(&block);
if (retval) {
pctx.errcode = retval;
@@ -712,12 +713,23 @@ static int expand_dir_proc(ext2_filsys fs,
last_blk = *blocknr;
return 0;
}
- retval = ext2fs_new_block2(fs, last_blk, ctx->block_found_map,
- &new_blk);
- if (retval) {
- es->err = retval;
- return BLOCK_ABORT;
+
+ if (blockcnt &&
+ (EXT2FS_B2C(fs, last_blk) == EXT2FS_B2C(fs, last_blk + 1)))
+ new_blk = last_blk + 1;
+ else {
+ last_blk &= ~EXT2FS_CLUSTER_MASK(fs);
+ retval = ext2fs_new_block2(fs, last_blk, ctx->block_found_map,
+ &new_blk);
+ if (retval) {
+ es->err = retval;
+ return BLOCK_ABORT;
+ }
+ es->newblocks++;
+ ext2fs_block_alloc_stats2(fs, new_blk, +1);
}
+ last_blk = new_blk;
+
if (blockcnt > 0) {
retval = ext2fs_new_dir_block(fs, 0, 0, &block);
if (retval) {
@@ -725,7 +737,7 @@ static int expand_dir_proc(ext2_filsys fs,
return BLOCK_ABORT;
}
es->num--;
- retval = ext2fs_write_dir_block(fs, new_blk, block);
+ retval = ext2fs_write_dir_block3(fs, new_blk, block, 0);
} else {
retval = ext2fs_get_mem(fs->blocksize, &block);
if (retval) {
@@ -742,8 +754,6 @@ static int expand_dir_proc(ext2_filsys fs,
ext2fs_free_mem(&block);
*blocknr = new_blk;
ext2fs_mark_block_bitmap2(ctx->block_found_map, new_blk);
- ext2fs_block_alloc_stats2(fs, new_blk, +1);
- es->newblocks++;
if (es->num == 0)
return (BLOCK_CHANGED | BLOCK_ABORT);
@@ -751,6 +761,27 @@ static int expand_dir_proc(ext2_filsys fs,
return BLOCK_CHANGED;
}
+/*
+ * Ensure that all blocks are marked in the block_found_map, since it's
+ * possible that the library allocated an extent node block or a block map
+ * block during the directory rebuilding; these new allocations are not
+ * captured in block_found_map. This is bad since we could later use
+ * block_found_map to allocate more blocks.
+ */
+static int find_new_blocks_proc(ext2_filsys fs,
+ blk64_t *blocknr,
+ e2_blkcnt_t blockcnt,
+ blk64_t ref_block EXT2FS_ATTR((unused)),
+ int ref_offset EXT2FS_ATTR((unused)),
+ void *priv_data)
+{
+ struct expand_dir_struct *es = (struct expand_dir_struct *) priv_data;
+ e2fsck_t ctx = es->ctx;
+
+ ext2fs_mark_block_bitmap2(ctx->block_found_map, *blocknr);
+ return 0;
+}
+
errcode_t e2fsck_expand_directory(e2fsck_t ctx, ext2_ino_t dir,
int num, int guaranteed_size)
{
@@ -758,6 +789,7 @@ errcode_t e2fsck_expand_directory(e2fsck_t ctx, ext2_ino_t dir,
errcode_t retval;
struct expand_dir_struct es;
struct ext2_inode inode;
+ blk64_t sz, before, after;
if (!(fs->flags & EXT2_FLAG_RW))
return EXT2_ET_RO_FILSYS;
@@ -779,11 +811,27 @@ errcode_t e2fsck_expand_directory(e2fsck_t ctx, ext2_ino_t dir,
es.newblocks = 0;
es.ctx = ctx;
+ before = ext2fs_free_blocks_count(fs->super);
retval = ext2fs_block_iterate3(fs, dir, BLOCK_FLAG_APPEND,
0, expand_dir_proc, &es);
if (es.err)
return es.err;
+ after = ext2fs_free_blocks_count(fs->super);
+
+ /*
+ * If the free block count has dropped by more than the blocks we
+ * allocated ourselves, then we must've allocated some extent/map
+ * blocks. Therefore, we must iterate this dir's blocks again to
+ * ensure that all newly allocated blocks are captured in
+ * block_found_map.
+ */
+ if ((before - after) > es.newblocks) {
+ retval = ext2fs_block_iterate3(fs, dir, BLOCK_FLAG_READ_ONLY,
+ 0, find_new_blocks_proc, &es);
+ if (es.err)
+ return es.err;
+ }
/*
* Update the size and block count fields in the inode.
@@ -792,7 +840,9 @@ errcode_t e2fsck_expand_directory(e2fsck_t ctx, ext2_ino_t dir,
if (retval)
return retval;
- inode.i_size = (es.last_block + 1) * fs->blocksize;
+ sz = (es.last_block + 1) * fs->blocksize;
+ inode.i_size = sz;
+ inode.i_size_high = sz >> 32;
ext2fs_iblk_add_blocks(fs, &inode, es.newblocks);
quota_data_add(ctx->qctx, &inode, dir, es.newblocks * fs->blocksize);
diff --git a/e2fsck/pass4.c b/e2fsck/pass4.c
index 1e632807..21d93f0c 100644
--- a/e2fsck/pass4.c
+++ b/e2fsck/pass4.c
@@ -99,7 +99,7 @@ void e2fsck_pass4(e2fsck_t ctx)
struct problem_context pctx;
__u16 link_count, link_counted;
char *buf = 0;
- int group, maxgroup;
+ dgrp_t group, maxgroup;
init_resource_track(&rtrack, ctx->fs->io);
@@ -123,7 +123,7 @@ void e2fsck_pass4(e2fsck_t ctx)
/* Protect loop from wrap-around if s_inodes_count maxed */
for (i=1; i <= fs->super->s_inodes_count && i > 0; i++) {
- int isdir = ext2fs_test_inode_bitmap2(ctx->inode_dir_map, i);
+ int isdir;
if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
goto errout;
@@ -157,6 +157,7 @@ void e2fsck_pass4(e2fsck_t ctx)
ext2fs_icount_fetch(ctx->inode_count, i,
&link_counted);
}
+ isdir = ext2fs_test_inode_bitmap2(ctx->inode_dir_map, i);
if (isdir && (link_counted > EXT2_LINK_MAX))
link_counted = 1;
if (link_counted != link_count) {
diff --git a/e2fsck/pass5.c b/e2fsck/pass5.c
index 148473ce..b31490fe 100644
--- a/e2fsck/pass5.c
+++ b/e2fsck/pass5.c
@@ -99,12 +99,11 @@ static void e2fsck_discard_blocks(e2fsck_t ctx, blk64_t start,
* is 1-based, it means that we need to adjust it by -1 in this
* function to compute right offset in the particular inode table.
*/
-static void e2fsck_discard_inodes(e2fsck_t ctx, int group,
- int start, int count)
+static void e2fsck_discard_inodes(e2fsck_t ctx, dgrp_t group,
+ ext2_ino_t start, int count)
{
ext2_filsys fs = ctx->fs;
blk64_t blk, num;
- int orig = count;
/*
* Sanity check for 'start'
@@ -152,7 +151,7 @@ static void e2fsck_discard_inodes(e2fsck_t ctx, int group,
#define NO_BLK ((blk64_t) -1)
-static void print_bitmap_problem(e2fsck_t ctx, int problem,
+static void print_bitmap_problem(e2fsck_t ctx, problem_t problem,
struct problem_context *pctx)
{
switch (problem) {
@@ -196,28 +195,33 @@ static void check_block_bitmaps(e2fsck_t ctx)
{
ext2_filsys fs = ctx->fs;
blk64_t i;
- int *free_array;
- int group = 0;
- int blocks = 0;
+ unsigned int *free_array;
+ dgrp_t g, group = 0;
+ unsigned int blocks = 0;
blk64_t free_blocks = 0;
blk64_t first_free = ext2fs_blocks_count(fs->super);
- int group_free = 0;
+ unsigned int group_free = 0;
int actual, bitmap;
struct problem_context pctx;
- int problem, save_problem, fixit, had_problem;
+ problem_t problem, save_problem;
+ int fixit, had_problem;
errcode_t retval;
int csum_flag;
- int skip_group = 0;
int old_desc_blocks = 0;
int count = 0;
int cmp_block = 0;
int redo_flag = 0;
blk64_t super_blk, old_desc_blk, new_desc_blk;
- io_manager manager = ctx->fs->io->manager;
+ char *actual_buf, *bitmap_buf;
+
+ actual_buf = (char *) e2fsck_allocate_memory(ctx, fs->blocksize,
+ "actual bitmap buffer");
+ bitmap_buf = (char *) e2fsck_allocate_memory(ctx, fs->blocksize,
+ "bitmap block buffer");
clear_problem_context(&pctx);
- free_array = (int *) e2fsck_allocate_memory(ctx,
- fs->group_desc_count * sizeof(int), "free block count array");
+ free_array = (unsigned int *) e2fsck_allocate_memory(ctx,
+ fs->group_desc_count * sizeof(unsigned int), "free block count array");
if ((B2C(fs->super->s_first_data_block) <
ext2fs_get_block_bitmap_start2(ctx->block_found_map)) ||
@@ -255,82 +259,51 @@ redo_counts:
had_problem = 0;
save_problem = 0;
pctx.blk = pctx.blk2 = NO_BLK;
- if (csum_flag &&
- (ext2fs_bg_flags_test(fs, group, EXT2_BG_BLOCK_UNINIT)))
- skip_group++;
for (i = B2C(fs->super->s_first_data_block);
i < ext2fs_blocks_count(fs->super);
i += EXT2FS_CLUSTER_RATIO(fs)) {
+ int first_block_in_bg = (B2C(i) -
+ B2C(fs->super->s_first_data_block)) %
+ fs->super->s_clusters_per_group == 0;
+ int n, nbytes = fs->super->s_clusters_per_group / 8;
+
actual = ext2fs_fast_test_block_bitmap2(ctx->block_found_map, i);
- if (skip_group) {
- if ((B2C(i) - B2C(fs->super->s_first_data_block)) %
- fs->super->s_clusters_per_group == 0) {
- super_blk = 0;
- old_desc_blk = 0;
- new_desc_blk = 0;
- ext2fs_super_and_bgd_loc2(fs, group, &super_blk,
- &old_desc_blk, &new_desc_blk, 0);
-
- 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 +
- fs->super->s_reserved_gdt_blocks;
-
- count = 0;
- cmp_block = fs->super->s_clusters_per_group;
- if (group == (int)fs->group_desc_count - 1)
- cmp_block = EXT2FS_NUM_B2C(fs,
- ext2fs_group_blocks_count(fs, group));
- }
+ /*
+ * Try to optimize pass5 by extracting a bitmap block
+ * as expected from what we have on disk, and then
+ * comparing the two. If they are identical, then
+ * update the free block counts and go on to the next
+ * block group. This is much faster than doing the
+ * individual bit-by-bit comparison. The one downside
+ * is that this doesn't work if we are asking e2fsck
+ * to do a discard operation.
+ */
+ if (!first_block_in_bg ||
+ (group == (int)fs->group_desc_count - 1) ||
+ (ctx->options & E2F_OPT_DISCARD))
+ goto no_optimize;
+
+ retval = ext2fs_get_block_bitmap_range2(ctx->block_found_map,
+ B2C(i), fs->super->s_clusters_per_group,
+ actual_buf);
+ if (retval)
+ goto no_optimize;
+ retval = ext2fs_get_block_bitmap_range2(fs->block_map,
+ B2C(i), fs->super->s_clusters_per_group,
+ bitmap_buf);
+ if (retval)
+ goto no_optimize;
+ if (memcmp(actual_buf, bitmap_buf, nbytes) != 0)
+ goto no_optimize;
+ n = ext2fs_bitcount(actual_buf, nbytes);
+ group_free = fs->super->s_clusters_per_group - n;
+ free_blocks += group_free;
+ i += EXT2FS_C2B(fs, fs->super->s_clusters_per_group - 1);
+ goto next_group;
+ no_optimize:
- bitmap = 0;
- if (EQ_CLSTR(i, super_blk) ||
- (old_desc_blk && old_desc_blocks &&
- GE_CLSTR(i, old_desc_blk) &&
- LE_CLSTR(i, old_desc_blk + old_desc_blocks-1)) ||
- (new_desc_blk && EQ_CLSTR(i, new_desc_blk)) ||
- EQ_CLSTR(i, ext2fs_block_bitmap_loc(fs, group)) ||
- EQ_CLSTR(i, ext2fs_inode_bitmap_loc(fs, group)) ||
- (GE_CLSTR(i, ext2fs_inode_table_loc(fs, group)) &&
- LE_CLSTR(i, (ext2fs_inode_table_loc(fs, group) +
- fs->inode_blocks_per_group - 1)))) {
- bitmap = 1;
- actual = (actual != 0);
- count++;
- cmp_block--;
- } else if ((EXT2FS_B2C(fs, i) - count -
- EXT2FS_B2C(fs, fs->super->s_first_data_block)) %
- fs->super->s_clusters_per_group == 0) {
- /*
- * When the compare data blocks in block bitmap
- * are 0, count the free block,
- * skip the current block group.
- */
- if (ext2fs_test_block_bitmap_range2(
- ctx->block_found_map,
- EXT2FS_B2C(fs, i),
- cmp_block)) {
- /*
- * -1 means to skip the current block
- * group.
- */
- blocks = fs->super->s_clusters_per_group - 1;
- group_free = cmp_block;
- free_blocks += cmp_block;
- /*
- * The current block group's last block
- * is set to i.
- */
- i += EXT2FS_C2B(fs, cmp_block - 1);
- bitmap = 1;
- goto do_counts;
- }
- }
- } else if (redo_flag)
+ if (redo_flag)
bitmap = actual;
else
bitmap = ext2fs_fast_test_block_bitmap2(fs->block_map, i);
@@ -349,14 +322,15 @@ redo_counts:
*/
problem = PR_5_BLOCK_USED;
- if (skip_group) {
+ if (ext2fs_bg_flags_test(fs, group,
+ EXT2_BG_BLOCK_UNINIT)) {
struct problem_context pctx2;
pctx2.blk = i;
pctx2.group = group;
- if (fix_problem(ctx, PR_5_BLOCK_UNINIT,&pctx2)){
- ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
- skip_group = 0;
- }
+ if (fix_problem(ctx, PR_5_BLOCK_UNINIT,
+ &pctx2))
+ ext2fs_bg_flags_clear(fs, group,
+ EXT2_BG_BLOCK_UNINIT);
}
}
if (pctx.blk == NO_BLK) {
@@ -364,8 +338,8 @@ redo_counts:
save_problem = problem;
} else {
if ((problem == save_problem) &&
- (pctx.blk2 == i-1))
- pctx.blk2++;
+ (pctx.blk2 == i - EXT2FS_CLUSTER_RATIO(fs)))
+ pctx.blk2 += EXT2FS_CLUSTER_RATIO(fs);
else {
print_bitmap_problem(ctx, save_problem, &pctx);
pctx.blk = pctx.blk2 = i;
@@ -403,22 +377,17 @@ redo_counts:
if (!bitmap && i >= first_free)
e2fsck_discard_blocks(ctx, first_free,
(i - first_free) + 1);
+ next_group:
first_free = ext2fs_blocks_count(fs->super);
free_array[group] = group_free;
group ++;
blocks = 0;
group_free = 0;
- skip_group = 0;
if (ctx->progress)
if ((ctx->progress)(ctx, 5, group,
fs->group_desc_count*2))
goto errout;
- if (csum_flag &&
- (i != ext2fs_blocks_count(fs->super)-1) &&
- ext2fs_bg_flags_test(fs, group,
- EXT2_BG_BLOCK_UNINIT))
- skip_group++;
}
}
if (pctx.blk != NO_BLK)
@@ -450,15 +419,15 @@ redo_counts:
} else if (fixit == 0)
ext2fs_unmark_valid(fs);
- for (i = 0; i < fs->group_desc_count; i++) {
- if (free_array[i] != ext2fs_bg_free_blocks_count(fs, i)) {
- pctx.group = i;
- pctx.blk = ext2fs_bg_free_blocks_count(fs, i);
- pctx.blk2 = free_array[i];
+ for (g = 0; g < fs->group_desc_count; g++) {
+ if (free_array[g] != ext2fs_bg_free_blocks_count(fs, g)) {
+ pctx.group = g;
+ pctx.blk = ext2fs_bg_free_blocks_count(fs, g);
+ pctx.blk2 = free_array[g];
if (fix_problem(ctx, PR_5_FREE_BLOCK_COUNT_GROUP,
&pctx)) {
- ext2fs_bg_free_blocks_count_set(fs, i, free_array[i]);
+ ext2fs_bg_free_blocks_count_set(fs, g, free_array[g]);
ext2fs_mark_super_dirty(fs);
} else
ext2fs_unmark_valid(fs);
@@ -473,11 +442,12 @@ redo_counts:
if (fix_problem(ctx, PR_5_FREE_BLOCK_COUNT, &pctx)) {
ext2fs_free_blocks_count_set(fs->super, free_blocks);
ext2fs_mark_super_dirty(fs);
- } else
- ext2fs_unmark_valid(fs);
+ }
}
errout:
ext2fs_free_mem(&free_array);
+ ext2fs_free_mem(&actual_buf);
+ ext2fs_free_mem(&bitmap_buf);
}
static void check_inode_bitmaps(e2fsck_t ctx)
@@ -487,26 +457,26 @@ static void check_inode_bitmaps(e2fsck_t ctx)
unsigned int free_inodes = 0;
int group_free = 0;
int dirs_count = 0;
- int group = 0;
+ dgrp_t group = 0;
unsigned int inodes = 0;
- int *free_array;
- int *dir_array;
+ ext2_ino_t *free_array;
+ ext2_ino_t *dir_array;
int actual, bitmap;
errcode_t retval;
struct problem_context pctx;
- int problem, save_problem, fixit, had_problem;
+ problem_t problem, save_problem;
+ int fixit, had_problem;
int csum_flag;
int skip_group = 0;
int redo_flag = 0;
- io_manager manager = ctx->fs->io->manager;
- int first_free = fs->super->s_inodes_per_group + 1;
+ ext2_ino_t first_free = fs->super->s_inodes_per_group + 1;
clear_problem_context(&pctx);
- free_array = (int *) e2fsck_allocate_memory(ctx,
- fs->group_desc_count * sizeof(int), "free inode count array");
+ free_array = (ext2_ino_t *) e2fsck_allocate_memory(ctx,
+ fs->group_desc_count * sizeof(ext2_ino_t), "free inode count array");
- dir_array = (int *) e2fsck_allocate_memory(ctx,
- fs->group_desc_count * sizeof(int), "directory count array");
+ dir_array = (ext2_ino_t *) e2fsck_allocate_memory(ctx,
+ fs->group_desc_count * sizeof(ext2_ino_t), "directory count array");
if ((1 < ext2fs_get_inode_bitmap_start2(ctx->inode_used_map)) ||
(fs->super->s_inodes_count >
@@ -749,8 +719,7 @@ do_counts:
if (fix_problem(ctx, PR_5_FREE_INODE_COUNT, &pctx)) {
fs->super->s_free_inodes_count = free_inodes;
ext2fs_mark_super_dirty(fs);
- } else
- ext2fs_unmark_valid(fs);
+ }
}
errout:
ext2fs_free_mem(&free_array);
diff --git a/e2fsck/problem.c b/e2fsck/problem.c
index d51a4087..2296c970 100644
--- a/e2fsck/problem.c
+++ b/e2fsck/problem.c
@@ -119,11 +119,13 @@ static struct e2fsck_problem problem_table[] = {
/* Superblock corrupt */
{ PR_0_SB_CORRUPT,
- N_("\nThe @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"
+ N_("\nThe @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+ "@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"),
+ " e2fsck -b 8193 <@v>\n"
+ " or\n"
+ " e2fsck -b 32768 <@v>\n\n"),
PROMPT_NONE, PR_FATAL },
/* Filesystem size is wrong */
@@ -410,7 +412,7 @@ static struct e2fsck_problem problem_table[] = {
/* Making quota file hidden */
{ PR_0_HIDE_QUOTA,
- N_("Making @q @is hidden.\n\n"),
+ N_("Making @q @i %i (%Q) hidden.\n"),
PROMPT_NONE, PR_PREEN_OK },
/* Superblock has invalid MMP block. */
@@ -433,6 +435,11 @@ static struct e2fsck_problem problem_table[] = {
N_("ext2fs_check_desc: %m\n"),
PROMPT_NONE, 0 },
+ /* 64bit is set but extents is unset. */
+ { PR_0_64BIT_WITHOUT_EXTENTS,
+ N_("@S 64bit filesystems needs extents to access the whole disk. "),
+ PROMPT_FIX, PR_PREEN_OK | PR_NO_OK},
+
/* Pass 1 errors */
/* Pass 1: Checking inodes, blocks, and sizes */
@@ -946,6 +953,20 @@ static struct e2fsck_problem problem_table[] = {
N_("@i %i has zero length extent\n\t(@n logical @b %c, physical @b %b)\n"),
PROMPT_CLEAR, 0 },
+ /*
+ * Interior extent node logical offset doesn't match first node below it
+ */
+ { PR_1_EXTENT_INDEX_START_INVALID,
+ N_("Interior @x node level %N of @i %i:\n"
+ "Logical start %b does not match logical start %c at next level. "),
+ PROMPT_FIX, 0 },
+
+ /* Extent end is out of bounds for the tree */
+ { PR_1_EXTENT_END_OUT_OF_BOUNDS,
+ N_("@i %i, end of extent exceeds allowed value\n\t(logical @b %c, physical @b %b, len %N)\n"),
+ PROMPT_CLEAR, 0 },
+
+
/* Pass 1b errors */
/* Pass 1B: Rescan for duplicate/bad blocks */
@@ -1050,12 +1071,12 @@ static struct e2fsck_problem problem_table[] = {
N_("@n @i number for '.' in @d @i %i.\n"),
PROMPT_FIX, 0 },
- /* Directory entry has bad inode number */
+ /* Entry 'xxxx' in /a/b/c has bad inode number.*/
{ PR_2_BAD_INO,
N_("@E has @n @i #: %Di.\n"),
PROMPT_CLEAR, 0 },
- /* Directory entry has deleted or unused inode */
+ /* Entry 'xxxx' in /a/b/c has deleted/unused inode nnnnn.*/
{ PR_2_UNUSED_INODE,
N_("@E has @D/unused @i %Di. "),
PROMPT_CLEAR, PR_PREEN_OK },
@@ -1621,7 +1642,7 @@ static struct e2fsck_problem problem_table[] = {
/* Free inodes count wrong */
{ PR_5_FREE_INODE_COUNT,
N_("Free @is count wrong (%i, counted=%j).\n"),
- PROMPT_FIX, PR_PREEN_OK | PR_PREEN_NOMSG },
+ PROMPT_FIX, PR_PREEN_OK | PR_NO_OK | PR_PREEN_NOMSG },
/* Free blocks count for group wrong */
{ PR_5_FREE_BLOCK_COUNT_GROUP,
@@ -1631,7 +1652,7 @@ static struct e2fsck_problem problem_table[] = {
/* Free blocks count wrong */
{ PR_5_FREE_BLOCK_COUNT,
N_("Free @bs count wrong (%b, counted=%c).\n"),
- PROMPT_FIX, PR_PREEN_OK | PR_PREEN_NOMSG },
+ PROMPT_FIX, PR_PREEN_OK | PR_NO_OK | PR_PREEN_NOMSG },
/* Programming error: bitmap endpoints don't match */
{ PR_5_BMAP_ENDPOINTS,
@@ -1691,6 +1712,11 @@ static struct e2fsck_problem problem_table[] = {
N_("Recreate @j"),
PROMPT_NULL, PR_PREEN_OK | PR_NO_OK },
+ /* Update quota information if it is inconsistent */
+ { PR_6_UPDATE_QUOTAS,
+ N_("Update quota info for quota type %N"),
+ PROMPT_NULL, PR_PREEN_OK },
+
{ 0 }
};
@@ -1784,11 +1810,11 @@ void clear_problem_context(struct problem_context *ctx)
static void reconfigure_bool(e2fsck_t ctx, struct e2fsck_problem *ptr,
const char *key, int mask, const char *name)
{
- int bool;
+ int val;
- bool = (ptr->flags & mask);
- profile_get_boolean(ctx->profile, "problems", key, name, bool, &bool);
- if (bool)
+ val = (ptr->flags & mask);
+ profile_get_boolean(ctx->profile, "problems", key, name, val, &val);
+ if (val)
ptr->flags |= mask;
else
ptr->flags &= ~mask;
@@ -1811,7 +1837,7 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx)
return 0;
}
if (!(ptr->flags & PR_CONFIG)) {
- char key[9], *new_desc;
+ char key[9], *new_desc = NULL;
sprintf(key, "0x%06x", code);
@@ -1946,6 +1972,9 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx)
if (ptr->flags & PR_AFTER_CODE)
answer = fix_problem(ctx, ptr->second_code, pctx);
+ if (answer && (ptr->prompt != PROMPT_NONE))
+ ctx->flags |= E2F_FLAG_PROBLEMS_FIXED;
+
return answer;
}
diff --git a/e2fsck/problem.h b/e2fsck/problem.h
index 07df8107..6cb09cfb 100644
--- a/e2fsck/problem.h
+++ b/e2fsck/problem.h
@@ -18,7 +18,7 @@ struct problem_context {
struct ext2_dir_entry *dirent;
blk64_t blk, blk2;
e2_blkcnt_t blkcount;
- int group;
+ dgrp_t group;
__u32 csum1, csum2;
__u64 num;
const char *str;
@@ -249,6 +249,9 @@ struct problem_context {
/* Checking group descriptor failed */
#define PR_0_CHECK_DESC_FAILED 0x000045
+/* 64bit is set but extents are not set. */
+#define PR_0_64BIT_WITHOUT_EXTENTS 0x000048
+
/*
* Pass 1 errors
*/
@@ -558,6 +561,10 @@ struct problem_context {
/* Extent has zero length */
#define PR_1_EXTENT_LENGTH_ZERO 0x010066
+/* Index start doesn't match start of next extent down */
+#define PR_1_EXTENT_INDEX_START_INVALID 0x01006D
+
+#define PR_1_EXTENT_END_OUT_OF_BOUNDS 0x01006E
/*
* Pass 1b errors
*/
@@ -586,7 +593,6 @@ struct problem_context {
/* Error adjusting EA refcount */
#define PR_1B_ADJ_EA_REFCOUNT 0x011007
-
/* Pass 1C: Scan directories for inodes with dup blocks. */
#define PR_1C_PASS_HEADER 0x012000
@@ -1028,6 +1034,9 @@ struct problem_context {
/* Recreate the journal if E2F_FLAG_JOURNAL_INODE flag is set */
#define PR_6_RECREATE_JOURNAL 0x060001
+/* Update quota information if it is inconsistent */
+#define PR_6_UPDATE_QUOTAS 0x060002
+
/*
* Function declarations
*/
diff --git a/e2fsck/profile.c b/e2fsck/profile.c
index 019c6f58..c4528c8e 100644
--- a/e2fsck/profile.c
+++ b/e2fsck/profile.c
@@ -318,6 +318,9 @@ profile_init(const char **files, profile_t *ret_profile)
/* if the filenames list is not specified return an empty profile */
if ( files ) {
for (fs = files; !PROFILE_LAST_FILESPEC(*fs); fs++) {
+ if (array)
+ free_list(array);
+ array = NULL;
retval = get_dirlist(*fs, &array);
if (retval == 0) {
if (!array)
@@ -1542,7 +1545,7 @@ profile_get_integer(profile_t profile, const char *name, const char *subname,
/* Empty string is no good. */
return PROF_BAD_INTEGER;
errno = 0;
- ret_long = strtol (value, &end_value, 10);
+ ret_long = strtol(value, &end_value, 0);
/* Overflow or underflow. */
if ((ret_long == LONG_MIN || ret_long == LONG_MAX) && errno != 0)
@@ -1584,7 +1587,7 @@ profile_get_uint(profile_t profile, const char *name, const char *subname,
/* Empty string is no good. */
return PROF_BAD_INTEGER;
errno = 0;
- ret_long = strtoul (value, &end_value, 10);
+ ret_long = strtoul(value, &end_value, 0);
/* Overflow or underflow. */
if ((ret_long == ULONG_MAX) && errno != 0)
diff --git a/e2fsck/quota.c b/e2fsck/quota.c
index 3ae934a0..c6bbb9af 100644
--- a/e2fsck/quota.c
+++ b/e2fsck/quota.c
@@ -15,21 +15,26 @@
#include "e2fsck.h"
#include "problem.h"
-#include "quota/mkquota.h"
#include "quota/quotaio.h"
static void move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino,
ext2_ino_t to_ino, int qtype)
{
- struct ext2_super_block *sb = fs->super;
- ext2_ino_t ino;
struct ext2_inode inode;
errcode_t retval;
char qf_name[QUOTA_NAME_LEN];
- if (ext2fs_read_inode(fs, from_ino, &inode))
+ /* We need the inode bitmap to be loaded */
+ if (ext2fs_read_bitmaps(fs))
return;
+ retval = ext2fs_read_inode(fs, from_ino, &inode);
+ if (retval) {
+ com_err("ext2fs_read_inode", retval, "%s",
+ _("in move_quota_inode"));
+ return;
+ }
+
inode.i_links_count = 1;
inode.i_mode = LINUX_S_IFREG | 0600;
inode.i_flags = EXT2_IMMUTABLE_FL;
@@ -37,11 +42,20 @@ static void move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino,
EXT3_FEATURE_INCOMPAT_EXTENTS)
inode.i_flags |= EXT4_EXTENTS_FL;
- ext2fs_write_new_inode(fs, to_ino, &inode);
+ retval = ext2fs_write_new_inode(fs, to_ino, &inode);
+ if (retval) {
+ com_err("ext2fs_write_new_inode", retval, "%s",
+ _("in move_quota_inode"));
+ return;
+ }
+
/* unlink the old inode */
quota_get_qf_name(qtype, QFMT_VFS_V1, qf_name);
ext2fs_unlink(fs, EXT2_ROOT_INO, qf_name, from_ino, 0);
ext2fs_inode_alloc_stats(fs, from_ino, -1);
+ /* Clear out the original inode in the inode-table block. */
+ memset(&inode, 0, sizeof(struct ext2_inode));
+ ext2fs_write_inode(fs, from_ino, &inode);
}
void e2fsck_hide_quota(e2fsck_t ctx)
@@ -56,31 +70,19 @@ void e2fsck_hide_quota(e2fsck_t ctx)
!(sb->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_QUOTA))
return;
- /* We need the inode bitmap to be loaded */
- if (ext2fs_read_bitmaps(fs))
- return;
-
- if (!sb->s_usr_quota_inum && !sb->s_grp_quota_inum)
- /* nothing to do */
- return;
-
- if (sb->s_usr_quota_inum == EXT4_USR_QUOTA_INO &&
- sb->s_grp_quota_inum == EXT4_GRP_QUOTA_INO)
- /* nothing to do */
- return;
-
- if (!fix_problem(ctx, PR_0_HIDE_QUOTA, &pctx))
- return;
-
+ pctx.ino = sb->s_usr_quota_inum;
if (sb->s_usr_quota_inum &&
- sb->s_usr_quota_inum != EXT4_USR_QUOTA_INO) {
+ (sb->s_usr_quota_inum != EXT4_USR_QUOTA_INO) &&
+ fix_problem(ctx, PR_0_HIDE_QUOTA, &pctx)) {
move_quota_inode(fs, sb->s_usr_quota_inum, EXT4_USR_QUOTA_INO,
USRQUOTA);
sb->s_usr_quota_inum = EXT4_USR_QUOTA_INO;
}
+ pctx.ino = sb->s_grp_quota_inum;
if (sb->s_grp_quota_inum &&
- sb->s_grp_quota_inum != EXT4_GRP_QUOTA_INO) {
+ (sb->s_grp_quota_inum != EXT4_GRP_QUOTA_INO) &&
+ fix_problem(ctx, PR_0_HIDE_QUOTA, &pctx)) {
move_quota_inode(fs, sb->s_grp_quota_inum, EXT4_GRP_QUOTA_INO,
GRPQUOTA);
sb->s_grp_quota_inum = EXT4_GRP_QUOTA_INO;
diff --git a/e2fsck/recovery.c b/e2fsck/recovery.c
index b669941b..e4e5ae1d 100644
--- a/e2fsck/recovery.c
+++ b/e2fsck/recovery.c
@@ -71,7 +71,7 @@ static int do_readahead(journal_t *journal, unsigned int start)
{
int err;
unsigned int max, nbufs, next;
- unsigned long blocknr;
+ unsigned long long blocknr;
struct buffer_head *bh;
struct buffer_head * bufs[MAXBUF];
@@ -133,7 +133,7 @@ static int jread(struct buffer_head **bhp, journal_t *journal,
unsigned int offset)
{
int err;
- unsigned long blocknr;
+ unsigned long long blocknr;
struct buffer_head *bh;
*bhp = NULL;
@@ -283,12 +283,9 @@ int journal_recover(journal_t *journal)
int journal_skip_recovery(journal_t *journal)
{
int err;
- journal_superblock_t * sb;
-
struct recovery_info info;
memset (&info, 0, sizeof(info));
- sb = journal->j_superblock;
err = do_one_pass(journal, &info, PASS_SCAN);
@@ -297,6 +294,8 @@ int journal_skip_recovery(journal_t *journal)
++journal->j_transaction_sequence;
} else {
#ifdef CONFIG_JBD_DEBUG
+ journal_superblock_t *sb = journal->j_superblock;
+
int dropped = info.end_transaction - be32_to_cpu(sb->s_sequence);
#endif
jbd_debug(1,
@@ -309,7 +308,6 @@ int journal_skip_recovery(journal_t *journal)
return err;
}
-#if 0
static inline unsigned long long read_tag_block(int tag_bytes, journal_block_tag_t *tag)
{
unsigned long long block = be32_to_cpu(tag->t_blocknr);
@@ -317,17 +315,16 @@ static inline unsigned long long read_tag_block(int tag_bytes, journal_block_tag
block |= (__u64)be32_to_cpu(tag->t_blocknr_high) << 32;
return block;
}
-#endif
/*
* calc_chksums calculates the checksums for the blocks described in the
* descriptor block.
*/
static int calc_chksums(journal_t *journal, struct buffer_head *bh,
- unsigned long *next_log_block, __u32 *crc32_sum)
+ unsigned long long *next_log_block, __u32 *crc32_sum)
{
int i, num_blks, err;
- unsigned long io_block;
+ unsigned long long io_block;
struct buffer_head *obh;
num_blks = count_tags(journal, bh);
@@ -340,7 +337,7 @@ static int calc_chksums(journal_t *journal, struct buffer_head *bh,
err = jread(&obh, journal, io_block);
if (err) {
printk(KERN_ERR "JBD: IO error %d recovering block "
- "%lu in log\n", err, io_block);
+ "%llu in log\n", err, io_block);
return 1;
} else {
*crc32_sum = crc32_be(*crc32_sum, (void *)obh->b_data,
@@ -355,7 +352,7 @@ static int do_one_pass(journal_t *journal,
struct recovery_info *info, enum passtype pass)
{
unsigned int first_commit_ID, next_commit_ID;
- unsigned long next_log_block;
+ unsigned long long next_log_block;
int err, success = 0;
journal_superblock_t * sb;
journal_header_t * tmp;
@@ -365,11 +362,6 @@ static int do_one_pass(journal_t *journal,
int tag_bytes = journal_tag_bytes(journal);
__u32 crc32_sum = ~0; /* Transactional Checksums */
- /* Precompute the maximum metadata descriptors in a descriptor block */
- int MAX_BLOCKS_PER_DESC;
- MAX_BLOCKS_PER_DESC = ((journal->j_blocksize-sizeof(journal_header_t))
- / tag_bytes);
-
/*
* First thing is to establish what we expect to find in the log
* (in terms of transaction IDs), and where (in terms of log
@@ -410,14 +402,14 @@ static int do_one_pass(journal_t *journal,
if (tid_geq(next_commit_ID, info->end_transaction))
break;
- jbd_debug(2, "Scanning for sequence ID %u at %lu/%lu\n",
+ jbd_debug(2, "Scanning for sequence ID %u at %llu/%lu\n",
next_commit_ID, next_log_block, journal->j_last);
/* Skip over each chunk of the transaction looking
* either the next descriptor block or the final commit
* record. */
- jbd_debug(3, "JBD: checking block %ld\n", next_log_block);
+ jbd_debug(3, "JBD: checking block %llu\n", next_log_block);
err = jread(&bh, journal, next_log_block);
if (err)
goto failed;
@@ -485,7 +477,7 @@ static int do_one_pass(journal_t *journal,
tagp = &bh->b_data[sizeof(journal_header_t)];
while ((tagp - bh->b_data + tag_bytes)
<= journal->j_blocksize) {
- unsigned long io_block;
+ unsigned long long io_block;
tag = (journal_block_tag_t *) tagp;
flags = be32_to_cpu(tag->t_flags);
@@ -499,13 +491,14 @@ static int do_one_pass(journal_t *journal,
success = err;
printk (KERN_ERR
"JBD: IO error %d recovering "
- "block %ld in log\n",
+ "block %llu in log\n",
err, io_block);
} else {
- unsigned long blocknr;
+ unsigned long long blocknr;
J_ASSERT(obh != NULL);
- blocknr = be32_to_cpu(tag->t_blocknr);
+ blocknr = read_tag_block(tag_bytes,
+ tag);
/* If the block has been
* revoked, then we're all done
@@ -733,15 +726,19 @@ static int scan_revoke_records(journal_t *journal, struct buffer_head *bh,
record_len = 8;
while (offset < max) {
- unsigned long blocknr;
+ unsigned long long blocknr;
int err;
- if (record_len == 4)
- blocknr = ext2fs_be32_to_cpu(*((__be32 *)(bh->b_data +
- offset)));
- else
- blocknr = ext2fs_be64_to_cpu(*((__be64 *)(bh->b_data +
- offset)));
+ if (record_len == 4) {
+ __be32 b;
+ memcpy(&b, bh->b_data + offset, sizeof(__be32));
+ blocknr = ext2fs_be32_to_cpu(b);
+ } else {
+ __be64 b;
+ memcpy(&b, bh->b_data + offset, sizeof(__be64));
+ blocknr = ext2fs_be64_to_cpu(b);
+ }
+
offset += record_len;
err = journal_set_revoke(journal, blocknr, sequence);
if (err)
diff --git a/e2fsck/region.c b/e2fsck/region.c
index e9abb569..4b669f08 100644
--- a/e2fsck/region.c
+++ b/e2fsck/region.c
@@ -171,7 +171,7 @@ void region_print(region_t region, FILE *f)
int main(int argc, char **argv)
{
- region_t r;
+ region_t r = NULL;
int pc = 0, ret;
region_addr_t start, end;
diff --git a/e2fsck/rehash.c b/e2fsck/rehash.c
index 15993b3f..3aafbb12 100644
--- a/e2fsck/rehash.c
+++ b/e2fsck/rehash.c
@@ -55,11 +55,11 @@
struct fill_dir_struct {
char *buf;
struct ext2_inode *inode;
- int err;
+ errcode_t err;
e2fsck_t ctx;
struct hash_entry *harray;
int max_array, num_array;
- int dir_size;
+ unsigned int dir_size;
int compress;
ino_t parent;
};
@@ -122,7 +122,7 @@ static int fill_dir_block(ext2_filsys fs,
if (((dir_offset + rec_len) > fs->blocksize) ||
(rec_len < 8) ||
((rec_len % 4) != 0) ||
- (((dirent->name_len & 0xFF)+8) > rec_len)) {
+ (((dirent->name_len & 0xFF)+8U) > rec_len)) {
fd->err = EXT2_ET_DIR_CORRUPTED;
return BLOCK_ABORT;
}
@@ -370,7 +370,7 @@ static int duplicate_search_and_fix(e2fsck_t ctx, ext2_filsys fs,
mutate_name(new_name, &new_len);
for (j=0; j < fd->num_array; j++) {
if ((i==j) ||
- ((ent->dir->name_len & 0xFF) !=
+ ((new_len & 0xFF) !=
(fd->harray[j].dir->name_len & 0xFF)) ||
(strncmp(new_name, fd->harray[j].dir->name,
new_len & 0xFF)))
@@ -404,10 +404,9 @@ static errcode_t copy_dir_entries(e2fsck_t ctx,
char *block_start;
struct hash_entry *ent;
struct ext2_dir_entry *dirent;
- unsigned int rec_len, prev_rec_len;
- int i, left;
+ unsigned int rec_len, prev_rec_len, left, slack, offset;
+ int i;
ext2_dirhash_t prev_hash;
- int offset, slack;
if (ctx->htree_slack_percentage == 255) {
profile_get_uint(ctx->profile, "options",
@@ -627,7 +626,7 @@ struct write_dir_struct {
struct out_dir *outdir;
errcode_t err;
e2fsck_t ctx;
- int cleared;
+ blk64_t cleared;
};
/*
@@ -649,10 +648,18 @@ static int write_dir_block(ext2_filsys fs,
if (blockcnt >= wd->outdir->num) {
e2fsck_read_bitmaps(wd->ctx);
blk = *block_nr;
- ext2fs_unmark_block_bitmap2(wd->ctx->block_found_map, blk);
- ext2fs_block_alloc_stats2(fs, blk, -1);
+ /*
+ * In theory, we only release blocks from the end of the
+ * directory file, so it's fine to clobber a whole cluster at
+ * once.
+ */
+ if (blk % EXT2FS_CLUSTER_RATIO(fs) == 0) {
+ ext2fs_unmark_block_bitmap2(wd->ctx->block_found_map,
+ blk);
+ ext2fs_block_alloc_stats2(fs, blk, -1);
+ wd->cleared++;
+ }
*block_nr = 0;
- wd->cleared++;
return BLOCK_CHANGED;
}
if (blockcnt < 0)
@@ -828,7 +835,7 @@ void e2fsck_rehash_directories(e2fsck_t ctx)
struct dir_info_iter * dirinfo_iter = 0;
ext2_ino_t ino;
errcode_t retval;
- int cur, max, all_dirs, dir_index, first = 1;
+ int cur, max, all_dirs, first = 1;
init_resource_track(&rtrack, ctx->fs->io);
all_dirs = ctx->options & E2F_OPT_COMPRESS_DIRS;
@@ -840,7 +847,6 @@ void e2fsck_rehash_directories(e2fsck_t ctx)
clear_problem_context(&pctx);
- dir_index = ctx->fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_DIR_INDEX;
cur = 0;
if (all_dirs) {
dirinfo_iter = e2fsck_dir_info_iter_begin(ctx);
diff --git a/e2fsck/scantest.c b/e2fsck/scantest.c
index 852ff86b..16380b31 100644
--- a/e2fsck/scantest.c
+++ b/e2fsck/scantest.c
@@ -12,9 +12,6 @@
#include <getopt.h>
#endif
#include <unistd.h>
-#ifdef HAVE_MNTENT_H
-#include <mntent.h>
-#endif
#include <sys/ioctl.h>
#ifdef HAVE_MALLOC_H
#include <malloc.h>
diff --git a/e2fsck/sigcatcher.c b/e2fsck/sigcatcher.c
index 10b93287..e4d60ce8 100644
--- a/e2fsck/sigcatcher.c
+++ b/e2fsck/sigcatcher.c
@@ -251,6 +251,7 @@ static struct str_table sigbus_code_table[] = {
END_TABLE
};
+#if 0 /* should this be hooked in somewhere? */
static struct str_table sigstrap_code_table[] = {
#ifdef TRAP_BRKPT
DEFINE_ENTRY(TRAP_BRKPT)
@@ -260,6 +261,7 @@ static struct str_table sigstrap_code_table[] = {
#endif
END_TABLE
};
+#endif
static struct str_table sigcld_code_table[] = {
#ifdef CLD_EXITED
@@ -283,6 +285,7 @@ static struct str_table sigcld_code_table[] = {
END_TABLE
};
+#if 0 /* should this be hooked in somewhere? */
static struct str_table sigpoll_code_table[] = {
#ifdef POLL_IN
DEFINE_ENTRY(POLL_IN)
@@ -304,6 +307,7 @@ static struct str_table sigpoll_code_table[] = {
#endif
END_TABLE
};
+#endif
static const char *lookup_table(int num, struct str_table *table)
{
@@ -327,7 +331,8 @@ static const char *lookup_table_fallback(int num, struct str_table *table)
return buf;
}
-static void die_signal_handler(int signum, siginfo_t *siginfo, void *context)
+static void die_signal_handler(int signum, siginfo_t *siginfo,
+ void *context EXT2FS_ATTR((unused)))
{
void *stack_syms[32];
int frames;
@@ -368,7 +373,7 @@ static void die_signal_handler(int signum, siginfo_t *siginfo, void *context)
fprintf(stderr, "fault addr=%p", siginfo->si_addr);
fprintf(stderr, "\n");
-#ifdef HAVE_BACKTRACE
+#if defined(HAVE_BACKTRACE) && !defined(DISABLE_BACKTRACE)
frames = backtrace(stack_syms, 32);
backtrace_symbols_fd(stack_syms, frames, 2);
#endif
diff --git a/e2fsck/super.c b/e2fsck/super.c
index 6c18d0ef..81503d4b 100644
--- a/e2fsck/super.c
+++ b/e2fsck/super.c
@@ -22,6 +22,7 @@
#define MIN_CHECK 1
#define MAX_CHECK 2
+#define LOG2_CHECK 4
static void check_super_value(e2fsck_t ctx, const char *descr,
unsigned long value, int flags,
@@ -29,8 +30,9 @@ static void check_super_value(e2fsck_t ctx, const char *descr,
{
struct problem_context pctx;
- if (((flags & MIN_CHECK) && (value < min_val)) ||
- ((flags & MAX_CHECK) && (value > max_val))) {
+ if ((flags & MIN_CHECK && value < min_val) ||
+ (flags & MAX_CHECK && value > max_val) ||
+ (flags & LOG2_CHECK && (value & (value - 1)) != 0)) {
clear_problem_context(&pctx);
pctx.num = value;
pctx.str = descr;
@@ -143,6 +145,7 @@ static int release_inode_block(ext2_filsys fs,
}
ext2fs_block_alloc_stats2(fs, blk, -1);
+ ctx->free_blocks++;
return retval;
}
@@ -211,9 +214,11 @@ static int release_inode_blocks(e2fsck_t ctx, ext2_ino_t ino,
ino);
return 1;
}
- if (count == 0)
+ if (count == 0) {
ext2fs_block_alloc_stats2(fs,
ext2fs_file_acl_block(fs, inode), -1);
+ ctx->free_blocks++;
+ }
ext2fs_file_acl_block_set(fs, inode, 0);
}
return 0;
@@ -286,6 +291,7 @@ static int release_orphan_inodes(e2fsck_t ctx)
if (!inode.i_links_count) {
ext2fs_inode_alloc_stats2(fs, ino, -1,
LINUX_S_ISDIR(inode.i_mode));
+ ctx->free_inodes++;
inode.i_dtime = ctx->now;
} else {
inode.i_dtime = 0;
@@ -313,7 +319,8 @@ void check_resize_inode(e2fsck_t ctx)
struct problem_context pctx;
int i, gdt_off, ind_off;
dgrp_t j;
- blk64_t blk, pblk, expect;
+ blk_t blk, pblk;
+ blk_t expect; /* for resize inode, which is 32-bit only */
__u32 *dind_buf = 0, *ind_buf;
errcode_t retval;
@@ -460,11 +467,11 @@ void check_super_block(e2fsck_t ctx)
ext2_filsys fs = ctx->fs;
blk64_t first_block, last_block;
struct ext2_super_block *sb = fs->super;
+ unsigned int ipg_max;
problem_t problem;
blk64_t blocks_per_group = fs->super->s_blocks_per_group;
__u32 bpg_max, cpg_max;
int inodes_per_block;
- int ipg_max;
int inode_size;
int accept_time_fudge;
int broken_system_clock;
@@ -522,14 +529,17 @@ void check_super_block(e2fsck_t ctx)
MAX_CHECK, 0, ext2fs_blocks_count(sb) / 2);
check_super_value(ctx, "reserved_gdt_blocks",
sb->s_reserved_gdt_blocks, MAX_CHECK, 0,
- fs->blocksize/4);
+ fs->blocksize / sizeof(__u32));
+ check_super_value(ctx, "desc_size",
+ sb->s_desc_size, MAX_CHECK | LOG2_CHECK, 0,
+ EXT2_MAX_DESC_SIZE);
if (sb->s_rev_level > EXT2_GOOD_OLD_REV)
check_super_value(ctx, "first_ino", sb->s_first_ino,
MIN_CHECK | MAX_CHECK,
EXT2_GOOD_OLD_FIRST_INO, sb->s_inodes_count);
inode_size = EXT2_INODE_SIZE(sb);
check_super_value(ctx, "inode_size",
- inode_size, MIN_CHECK | MAX_CHECK,
+ inode_size, MIN_CHECK | MAX_CHECK | LOG2_CHECK,
EXT2_GOOD_OLD_INODE_SIZE, fs->blocksize);
if (sb->s_blocks_per_group != (sb->s_clusters_per_group *
EXT2FS_CLUSTER_RATIO(fs))) {
@@ -539,13 +549,6 @@ void check_super_block(e2fsck_t ctx)
ctx->flags |= E2F_FLAG_ABORT; /* never get here! */
return;
}
- if (inode_size & (inode_size - 1)) {
- pctx.num = inode_size;
- pctx.str = "inode_size";
- fix_problem(ctx, PR_0_MISC_CORRUPT_SUPER, &pctx);
- ctx->flags |= E2F_FLAG_ABORT; /* never get here! */
- return;
- }
if ((ctx->flags & E2F_FLAG_GOT_DEVSIZE) &&
(ctx->num_blocks < ext2fs_blocks_count(sb))) {
@@ -577,6 +580,17 @@ void check_super_block(e2fsck_t ctx)
}
}
+ /* Is 64bit set and extents unset? */
+ if (EXT2_HAS_INCOMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_INCOMPAT_64BIT) &&
+ !EXT2_HAS_INCOMPAT_FEATURE(fs->super,
+ EXT3_FEATURE_INCOMPAT_EXTENTS) &&
+ fix_problem(ctx, PR_0_64BIT_WITHOUT_EXTENTS, &pctx)) {
+ fs->super->s_feature_incompat |=
+ EXT3_FEATURE_INCOMPAT_EXTENTS;
+ ext2fs_mark_super_dirty(fs);
+ }
+
/*
* Verify the group descriptors....
*/
@@ -708,8 +722,11 @@ void check_super_block(e2fsck_t ctx)
#ifndef EXT2_SKIP_UUID
/*
* If the UUID field isn't assigned, assign it.
+ * Skip if checksums are enabled and the filesystem is mounted,
+ * if the id changes under the kernel remounting rw may fail.
*/
- if (!(ctx->options & E2F_OPT_READONLY) && uuid_is_null(sb->s_uuid)) {
+ if (!(ctx->options & E2F_OPT_READONLY) && uuid_is_null(sb->s_uuid) &&
+ (!csum_flag || !(ctx->mount_flags & EXT2_MF_MOUNTED))) {
if (fix_problem(ctx, PR_0_ADD_UUID, &pctx)) {
uuid_generate(sb->s_uuid);
fs->flags |= EXT2_FLAG_DIRTY;
@@ -910,8 +927,7 @@ int check_backup_super_block(e2fsck_t ctx)
if (!ext2fs_bg_has_super(fs, g))
continue;
- sb = fs->super->s_first_data_block +
- (g * fs->super->s_blocks_per_group);
+ sb = ext2fs_group_first_block2(fs, g);
retval = io_channel_read_blk(fs->io, sb, -SUPERBLOCK_SIZE,
buf);
@@ -941,6 +957,7 @@ int check_backup_super_block(e2fsck_t ctx)
SUPER_INCOMPAT_DIFFERENT(s_feature_incompat) ||
SUPER_RO_COMPAT_DIFFERENT(s_feature_ro_compat) ||
SUPER_DIFFERENT(s_blocks_count) ||
+ SUPER_DIFFERENT(s_blocks_count_hi) ||
SUPER_DIFFERENT(s_inodes_count) ||
memcmp(fs->super->s_uuid, backup_sb->s_uuid,
sizeof(fs->super->s_uuid)))
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index 190deaf9..74ef32d4 100644
--- a/e2fsck/unix.c
+++ b/e2fsck/unix.c
@@ -33,9 +33,6 @@ extern int optind;
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
-#ifdef HAVE_MNTENT_H
-#include <mntent.h>
-#endif
#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
#endif
@@ -80,13 +77,13 @@ static void usage(e2fsck_t ctx)
"\t\t[-E extended-options] device\n"),
ctx->program_name);
- fprintf(stderr, _("\nEmergency help:\n"
+ fprintf(stderr, "%s", _("\nEmergency 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"));
- fprintf(stderr, _(""
+ fprintf(stderr, "%s", _(""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
" -B blocksize Force blocksize when looking for superblock\n"
@@ -105,8 +102,9 @@ static void show_stats(e2fsck_t ctx)
blk64_t blocks, blocks_used;
unsigned int dir_links;
unsigned int num_files, num_links;
+ __u32 *mask, m;
int frag_percent_file, frag_percent_dir, frag_percent_total;
- int i, j;
+ int i, j, printed = 0;
dir_links = 2 * ctx->fs_directory_count - 1;
num_files = ctx->fs_total_count - dir_links;
@@ -137,21 +135,40 @@ static void show_stats(e2fsck_t ctx)
blocks_used, blocks);
return;
}
- log_out(ctx, P_("\n%8u inode used (%2.2f%%)\n",
- "\n%8u inodes used (%2.2f%%)\n",
+ profile_get_boolean(ctx->profile, "options", "report_features", 0, 0,
+ &i);
+ if (verbose && i) {
+ log_out(ctx, "\nFilesystem features:");
+ mask = &ctx->fs->super->s_feature_compat;
+ for (i = 0; i < 3; i++, mask++) {
+ for (j = 0, m = 1; j < 32; j++, m <<= 1) {
+ if (*mask & m) {
+ log_out(ctx, " %s",
+ e2p_feature2string(i, m));
+ printed++;
+ }
+ }
+ }
+ if (printed == 0)
+ log_out(ctx, " (none)");
+ log_out(ctx, "\n");
+ }
+
+ log_out(ctx, P_("\n%12u inode used (%2.2f%%, out of %u)\n",
+ "\n%12u inodes used (%2.2f%%, out of %u)\n",
inodes_used), inodes_used,
- 100.0 * inodes_used / inodes);
- log_out(ctx, P_("%8u non-contiguous file (%0d.%d%%)\n",
- "%8u non-contiguous files (%0d.%d%%)\n",
+ 100.0 * inodes_used / inodes, inodes);
+ log_out(ctx, P_("%12u non-contiguous file (%0d.%d%%)\n",
+ "%12u non-contiguous files (%0d.%d%%)\n",
ctx->fs_fragmented),
ctx->fs_fragmented, frag_percent_file / 10,
frag_percent_file % 10);
- log_out(ctx, P_("%8u non-contiguous directory (%0d.%d%%)\n",
- "%8u non-contiguous directories (%0d.%d%%)\n",
+ log_out(ctx, P_("%12u non-contiguous directory (%0d.%d%%)\n",
+ "%12u non-contiguous directories (%0d.%d%%)\n",
ctx->fs_fragmented_dir),
ctx->fs_fragmented_dir, frag_percent_dir / 10,
frag_percent_dir % 10);
- log_out(ctx, _(" # of inodes with ind/dind/tind blocks: "
+ log_out(ctx, _(" # of inodes with ind/dind/tind blocks: "
"%u/%u/%u\n"),
ctx->fs_ind_count, ctx->fs_dind_count, ctx->fs_tind_count);
@@ -159,7 +176,7 @@ static void show_stats(e2fsck_t ctx)
if (ctx->extent_depth_count[j])
break;
if (++j) {
- log_out(ctx, _(" Extent depth histogram: "));
+ log_out(ctx, "%s", _(" Extent depth histogram: "));
for (i=0; i < j; i++) {
if (i)
fputc('/', stdout);
@@ -168,39 +185,39 @@ static void show_stats(e2fsck_t ctx)
log_out(ctx, "\n");
}
- log_out(ctx, P_("%8llu block used (%2.2f%%)\n",
- "%8llu blocks used (%2.2f%%)\n",
- blocks_used), blocks_used, 100.0 * blocks_used / blocks);
- log_out(ctx, P_("%8u bad block\n", "%8u bad blocks\n",
+ log_out(ctx, P_("%12llu block used (%2.2f%%, out of %llu)\n",
+ "%12llu blocks used (%2.2f%%, out of %llu)\n",
+ blocks_used),
+ blocks_used, 100.0 * blocks_used / blocks, blocks);
+ log_out(ctx, P_("%12u bad block\n", "%12u bad blocks\n",
ctx->fs_badblocks_count), ctx->fs_badblocks_count);
- log_out(ctx, P_("%8u large file\n", "%8u large files\n",
+ log_out(ctx, P_("%12u large file\n", "%12u large files\n",
ctx->large_files), ctx->large_files);
- log_out(ctx, P_("\n%8u regular file\n", "\n%8u regular files\n",
+ log_out(ctx, P_("\n%12u regular file\n", "\n%12u regular files\n",
ctx->fs_regular_count), ctx->fs_regular_count);
- log_out(ctx, P_("%8u directory\n", "%8u directories\n",
+ log_out(ctx, P_("%12u directory\n", "%12u directories\n",
ctx->fs_directory_count), ctx->fs_directory_count);
- log_out(ctx, P_("%8u character device file\n",
- "%8u character device files\n", ctx->fs_chardev_count),
+ log_out(ctx, P_("%12u character device file\n",
+ "%12u character device files\n", ctx->fs_chardev_count),
ctx->fs_chardev_count);
- log_out(ctx, P_("%8u block device file\n", "%8u block device files\n",
+ log_out(ctx, P_("%12u block device file\n", "%12u block device files\n",
ctx->fs_blockdev_count), ctx->fs_blockdev_count);
- log_out(ctx, P_("%8u fifo\n", "%8u fifos\n", ctx->fs_fifo_count),
+ log_out(ctx, P_("%12u fifo\n", "%12u fifos\n", ctx->fs_fifo_count),
ctx->fs_fifo_count);
- log_out(ctx, P_("%8u link\n", "%8u links\n",
- ctx->fs_links_count - dir_links),
+ log_out(ctx, P_("%12u link\n", "%12u links\n", num_links),
ctx->fs_links_count - dir_links);
- log_out(ctx, P_("%8u symbolic link", "%8u symbolic links",
+ log_out(ctx, P_("%12u symbolic link", "%12u symbolic links",
ctx->fs_symlinks_count), ctx->fs_symlinks_count);
log_out(ctx, P_(" (%u fast symbolic link)\n",
" (%u fast symbolic links)\n",
ctx->fs_fast_symlinks_count),
ctx->fs_fast_symlinks_count);
- log_out(ctx, P_("%8u socket\n", "%8u sockets\n", ctx->fs_sockets_count),
+ log_out(ctx, P_("%12u socket\n", "%12u sockets\n",
+ ctx->fs_sockets_count),
ctx->fs_sockets_count);
- log_out(ctx, "--------\n");
- log_out(ctx, P_("%8u file\n", "%8u files\n",
- ctx->fs_total_count - dir_links),
- ctx->fs_total_count - dir_links);
+ log_out(ctx, "------------\n");
+ log_out(ctx, P_("%12u file\n", "%12u files\n", num_files),
+ num_files);
}
static void check_mount(e2fsck_t ctx)
@@ -222,31 +239,36 @@ static void check_mount(e2fsck_t ctx)
* filesystem and it's mounted read-only, and we're not doing
* a read/write check, then everything's fine.
*/
- if ((!(ctx->mount_flags & EXT2_MF_MOUNTED)) ||
+ if ((!(ctx->mount_flags & (EXT2_MF_MOUNTED | EXT2_MF_BUSY))) ||
((ctx->mount_flags & EXT2_MF_ISROOT) &&
(ctx->mount_flags & EXT2_MF_READONLY) &&
!(ctx->options & E2F_OPT_WRITECHECK)))
return;
- if ((ctx->options & E2F_OPT_READONLY) &&
+ if (((ctx->options & E2F_OPT_READONLY) ||
+ ((ctx->options & E2F_OPT_FORCE) &&
+ (ctx->mount_flags & EXT2_MF_READONLY))) &&
!(ctx->options & E2F_OPT_WRITECHECK)) {
- log_out(ctx, _("Warning! %s is mounted.\n"),
- ctx->filesystem_name);
+ log_out(ctx, _("Warning! %s is %s.\n"),
+ ctx->filesystem_name,
+ ctx->mount_flags & EXT2_MF_MOUNTED ?
+ "mounted" : "in use");
return;
}
- log_out(ctx, _("%s is mounted. "), ctx->filesystem_name);
- if (!ctx->interactive)
+ log_out(ctx, _("%s is %s.\n"), ctx->filesystem_name,
+ ctx->mount_flags & EXT2_MF_MOUNTED ? "mounted" : "in use");
+ if (!ctx->interactive || ctx->mount_flags & EXT2_MF_BUSY)
fatal_error(ctx, _("Cannot continue, aborting.\n\n"));
puts("\007\007\007\007");
- log_out(ctx, _("\n\nWARNING!!! "
+ log_out(ctx, "%s", _("\n\nWARNING!!! "
"The filesystem is mounted. "
"If you continue you ***WILL***\n"
"cause ***SEVERE*** filesystem damage.\n\n"));
puts("\007\007\007");
cont = ask_yn(ctx, _("Do you really want to continue"), 0);
if (!cont) {
- printf (_("check aborted.\n"));
+ printf("%s", _("check aborted.\n"));
exit (0);
}
return;
@@ -262,7 +284,7 @@ static int is_on_batt(void)
f = fopen("/sys/class/power_supply/AC/online", "r");
if (f) {
- if (fscanf(f, "%d\n", &acflag) == 1) {
+ if (fscanf(f, "%u\n", &acflag) == 1) {
fclose(f);
return (!acflag);
}
@@ -315,6 +337,9 @@ static void check_if_skip(e2fsck_t ctx)
int broken_system_clock;
time_t lastcheck;
+ if (ctx->flags & E2F_FLAG_PROBLEMS_FIXED)
+ return;
+
profile_get_boolean(ctx->profile, "options", "broken_system_clock",
0, 0, &broken_system_clock);
if (ctx->flags & E2F_FLAG_TIME_INSANE)
@@ -366,7 +391,7 @@ static void check_if_skip(e2fsck_t ctx)
if (reason) {
log_out(ctx, "%s", ctx->device_name);
log_out(ctx, reason, reason_arg);
- log_out(ctx, _(", check forced.\n"));
+ log_out(ctx, "%s", _(", check forced.\n"));
return;
}
@@ -418,12 +443,14 @@ static void check_if_skip(e2fsck_t ctx)
if (next_check <= 5) {
if (next_check == 1) {
if (batt)
- log_out(ctx, _(" (check deferred; "
- "on battery)"));
+ log_out(ctx, "%s",
+ _(" (check deferred; on battery)"));
else
- log_out(ctx, _(" (check after next mount)"));
+ log_out(ctx, "%s",
+ _(" (check after next mount)"));
} else
- log_out(ctx, _(" (check in %ld mounts)"), next_check);
+ log_out(ctx, _(" (check in %ld mounts)"),
+ next_check);
}
log_out(ctx, "\n");
skip:
@@ -440,7 +467,7 @@ struct percent_tbl {
int max_pass;
int table[32];
};
-struct percent_tbl e2fsck_tbl = {
+static struct percent_tbl e2fsck_tbl = {
5, { 0, 70, 90, 92, 95, 100 }
};
static char bar[128], spaces[128];
@@ -459,7 +486,7 @@ static float calc_percent(struct percent_tbl *tbl, int pass, int curr,
+ tbl->table[pass-1]);
}
-extern void e2fsck_clear_progbar(e2fsck_t ctx)
+void e2fsck_clear_progbar(e2fsck_t ctx)
{
if (!(ctx->flags & E2F_FLAG_PROG_BAR))
return;
@@ -641,7 +668,7 @@ static void parse_extended_opts(e2fsck_t ctx, const char *opts)
ea_ver = strtoul(arg, &p, 0);
if (*p ||
((ea_ver != 1) && (ea_ver != 2))) {
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("Invalid EA version.\n"));
extended_usage++;
continue;
@@ -725,6 +752,7 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
return retval;
*ret_ctx = ctx;
+ e2fsck_global_ctx = ctx;
setvbuf(stdout, NULL, _IONBF, BUFSIZ);
setvbuf(stderr, NULL, _IONBF, BUFSIZ);
@@ -847,6 +875,8 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
case 'L':
replace_bad_blocks++;
case 'l':
+ if (bad_blocks_file)
+ free(bad_blocks_file);
bad_blocks_file = string_copy(ctx, optarg, 0);
break;
case 'd':
@@ -884,17 +914,17 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
usage(ctx);
if ((ctx->options & E2F_OPT_NO) &&
(ctx->options & E2F_OPT_COMPRESS_DIRS)) {
- com_err(ctx->program_name, 0,
+ com_err(ctx->program_name, 0, "%s",
_("The -n and -D options are incompatible."));
fatal_error(ctx, 0);
}
if ((ctx->options & E2F_OPT_NO) && cflag) {
- com_err(ctx->program_name, 0,
+ com_err(ctx->program_name, 0, "%s",
_("The -n and -c options are incompatible."));
fatal_error(ctx, 0);
}
if ((ctx->options & E2F_OPT_NO) && bad_blocks_file) {
- com_err(ctx->program_name, 0,
+ com_err(ctx->program_name, 0, "%s",
_("The -n and -l/-L options are incompatible."));
fatal_error(ctx, 0);
}
@@ -918,6 +948,15 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
profile_set_syntax_err_cb(syntax_err_report);
profile_init(config_fn, &ctx->profile);
+ profile_get_boolean(ctx->profile, "options", "report_time", 0, 0,
+ &c);
+ if (c)
+ ctx->options |= E2F_OPT_TIME | E2F_OPT_TIME2;
+ profile_get_boolean(ctx->profile, "options", "report_verbose", 0, 0,
+ &c);
+ if (c)
+ verbose = 1;
+
/* Turn off discard in read-only mode */
if ((ctx->options & E2F_OPT_NO) &&
(ctx->options & E2F_OPT_DISCARD))
@@ -940,8 +979,8 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
close(fd);
}
if (cflag && bad_blocks_file) {
- fprintf(stderr, _("The -c and the -l/-L options may "
- "not be both used at the same time.\n"));
+ fprintf(stderr, "%s", _("The -c and the -l/-L options may not "
+ "be both used at the same time.\n"));
exit(FSCK_USAGE);
}
#ifdef HAVE_SIGNAL_H
@@ -955,7 +994,6 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
#ifdef SA_RESTART
sa.sa_flags = SA_RESTART;
#endif
- e2fsck_global_ctx = ctx;
sa.sa_handler = signal_progress_on;
sigaction(SIGUSR1, &sa, 0);
sa.sa_handler = signal_progress_off;
@@ -1031,16 +1069,18 @@ static errcode_t try_open_fs(e2fsck_t ctx, int flags, io_manager io_ptr,
retval = ext2fs_open2(ctx->filesystem_name, ctx->io_options,
flags, 0, 0, io_ptr, ret_fs);
- if (ret_fs)
+ if (retval == 0) {
+ (*ret_fs)->priv_data = ctx;
e2fsck_set_bitmap_type(*ret_fs, EXT2FS_BMAP64_RBTREE,
"default", NULL);
+ }
return retval;
}
static const char *my_ver_string = E2FSPROGS_VERSION;
static const char *my_ver_date = E2FSPROGS_DATE;
-int e2fsck_check_mmp(ext2_filsys fs, e2fsck_t ctx)
+static errcode_t e2fsck_check_mmp(ext2_filsys fs, e2fsck_t ctx)
{
struct mmp_struct *mmp_s;
unsigned int mmp_check_interval;
@@ -1102,12 +1142,12 @@ check_error:
retval = 0;
}
} else if (retval == EXT2_ET_MMP_FAILED) {
- com_err(ctx->program_name, retval,
+ com_err(ctx->program_name, retval, "%s",
_("while checking MMP block"));
dump_mmp_msg(fs->mmp_buf, NULL);
} else if (retval == EXT2_ET_MMP_FSCK_ON ||
retval == EXT2_ET_MMP_UNKNOWN_SEQ) {
- com_err(ctx->program_name, retval,
+ com_err(ctx->program_name, retval, "%s",
_("while checking MMP block"));
dump_mmp_msg(fs->mmp_buf,
_("If you are sure the filesystem is not "
@@ -1132,7 +1172,7 @@ int main (int argc, char *argv[])
const char *lib_ver_date;
int my_ver, lib_ver;
e2fsck_t ctx;
- blk_t orig_superblock;
+ blk64_t orig_superblock;
struct problem_context pctx;
int flags, run_result;
int journal_size;
@@ -1140,6 +1180,7 @@ int main (int argc, char *argv[])
int old_bitmaps;
__u32 features[3];
char *cp;
+ int qtype = -99; /* quota type */
clear_problem_context(&pctx);
sigcatcher_setup();
@@ -1159,14 +1200,14 @@ int main (int argc, char *argv[])
my_ver = ext2fs_parse_version_string(my_ver_string);
lib_ver = ext2fs_get_library_version(0, &lib_ver_date);
if (my_ver > lib_ver) {
- fprintf( stderr, _("Error: ext2fs library version "
- "out of date!\n"));
+ fprintf( stderr, "%s",
+ _("Error: ext2fs library version out of date!\n"));
show_version_only++;
}
retval = PRS(argc, argv, &ctx);
if (retval) {
- com_err("e2fsck", retval,
+ com_err("e2fsck", retval, "%s",
_("while trying to initialize program"));
exit(FSCK_ERROR);
}
@@ -1220,10 +1261,15 @@ restart:
&old_bitmaps);
if (!old_bitmaps)
flags |= EXT2_FLAG_64BITS;
- if ((ctx->options & E2F_OPT_READONLY) == 0)
+ if ((ctx->options & E2F_OPT_READONLY) == 0) {
flags |= EXT2_FLAG_RW;
- if ((ctx->mount_flags & EXT2_MF_MOUNTED) == 0)
- flags |= EXT2_FLAG_EXCLUSIVE;
+ if (!(ctx->mount_flags & EXT2_MF_ISROOT &&
+ ctx->mount_flags & EXT2_MF_READONLY))
+ flags |= EXT2_FLAG_EXCLUSIVE;
+ if ((ctx->mount_flags & EXT2_MF_READONLY) &&
+ (ctx->options & E2F_OPT_FORCE))
+ flags &= ~EXT2_FLAG_EXCLUSIVE;
+ }
retval = try_open_fs(ctx, flags, io_ptr, &fs);
@@ -1295,32 +1341,34 @@ failure:
com_err(ctx->program_name, retval, _("while trying to open %s"),
ctx->filesystem_name);
if (retval == EXT2_ET_REV_TOO_HIGH) {
- log_out(ctx, _("The filesystem revision is apparently "
- "too high for this version of e2fsck.\n"
- "(Or the filesystem superblock "
- "is corrupt)\n\n"));
+ log_out(ctx, "%s",
+ _("The filesystem revision is apparently "
+ "too high for this version of e2fsck.\n"
+ "(Or the filesystem superblock "
+ "is corrupt)\n\n"));
fix_problem(ctx, PR_0_SB_CORRUPT, &pctx);
} else if (retval == EXT2_ET_SHORT_READ)
- log_out(ctx, _("Could this be a zero-length "
- "partition?\n"));
+ log_out(ctx, "%s",
+ _("Could this be a zero-length partition?\n"));
else if ((retval == EPERM) || (retval == EACCES))
log_out(ctx, _("You must have %s access to the "
- "filesystem or be root\n"),
+ "filesystem or be root\n"),
(ctx->options & E2F_OPT_READONLY) ?
"r/o" : "r/w");
else if (retval == ENXIO)
- log_out(ctx, _("Possibly non-existent or "
- "swap device?\n"));
+ log_out(ctx, "%s",
+ _("Possibly non-existent or swap device?\n"));
else if (retval == EBUSY)
- log_out(ctx, _("Filesystem mounted or opened "
- "exclusively by another program?\n"));
+ log_out(ctx, "%s", _("Filesystem mounted or opened "
+ "exclusively by another program?\n"));
else if (retval == ENOENT)
- log_out(ctx, _("Possibly non-existent device?\n"));
+ log_out(ctx, "%s",
+ _("Possibly non-existent device?\n"));
#ifdef EROFS
else if (retval == EROFS)
- log_out(ctx, _("Disk write-protected; use the -n "
- "option to do a read-only\n"
- "check of the device.\n"));
+ log_out(ctx, "%s", _("Disk write-protected; use the "
+ "-n option to do a read-only\n"
+ "check of the device.\n"));
#endif
else
fix_problem(ctx, PR_0_SB_CORRUPT, &pctx);
@@ -1374,7 +1422,6 @@ failure:
}
ctx->fs = fs;
- fs->priv_data = ctx;
fs->now = ctx->now;
sb = fs->super;
@@ -1421,10 +1468,6 @@ failure:
fprintf(ctx->logf, "Filesystem UUID: %s\n",
e2p_uuid2str(sb->s_uuid));
- if ((ctx->mount_flags & EXT2_MF_MOUNTED) &&
- !(sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER))
- goto skip_journal;
-
/*
* Make sure the ext3 superblock fields are consistent.
*/
@@ -1442,9 +1485,9 @@ failure:
*/
if (sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) {
if (ctx->options & E2F_OPT_READONLY) {
- log_out(ctx, _("Warning: skipping journal recovery "
- "because doing a read-only filesystem "
- "check.\n"));
+ log_out(ctx, "%s",
+ _("Warning: skipping journal recovery because "
+ "doing a read-only filesystem check.\n"));
io_channel_flush(ctx->fs->io);
} else {
if (ctx->flags & E2F_FLAG_RESTARTED) {
@@ -1455,7 +1498,8 @@ failure:
* device driver is being bogus.
*/
com_err(ctx->program_name, 0,
- _("unable to set superblock flags on %s\n"), ctx->device_name);
+ _("unable to set superblock flags "
+ "on %s\n"), ctx->device_name);
fatal_error(ctx, 0);
}
retval = e2fsck_run_ext3_journal(ctx);
@@ -1472,7 +1516,6 @@ failure:
}
}
-skip_journal:
/*
* Check for compatibility with the feature sets. We need to
* be more stringent than ext2fs_open().
@@ -1562,8 +1605,8 @@ print_unsupp_features:
log_out(ctx, _("%s: %s while reading bad blocks inode\n"),
ctx->program_name, error_message(retval));
preenhalt(ctx);
- log_out(ctx, _("This doesn't bode well, "
- "but we'll try to go on...\n"));
+ log_out(ctx, "%s", _("This doesn't bode well, "
+ "but we'll try to go on...\n"));
}
/*
@@ -1578,7 +1621,6 @@ print_unsupp_features:
journal_size = -1;
if (sb->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_QUOTA) {
- int qtype;
/* Quotas were enabled. Do quota accounting during fsck. */
if ((sb->s_usr_quota_inum && sb->s_grp_quota_inum) ||
(!sb->s_usr_quota_inum && !sb->s_grp_quota_inum))
@@ -1614,23 +1656,36 @@ print_unsupp_features:
"journal\n", error_message(retval));
goto no_journal;
}
- log_out(ctx, _(" Done.\n"));
- log_out(ctx, _("\n*** journal has been re-created - "
- "filesystem is now ext3 again ***\n"));
+ log_out(ctx, "%s", _(" Done.\n"));
+ log_out(ctx, "%s",
+ _("\n*** journal has been re-created - "
+ "filesystem is now ext3 again ***\n"));
}
}
no_journal:
if (ctx->qctx) {
- quota_write_inode(ctx->qctx, -1);
+ int i, needs_writeout;
+ for (i = 0; i < MAXQUOTAS; i++) {
+ if (qtype != -1 && qtype != i)
+ continue;
+ needs_writeout = 0;
+ pctx.num = i;
+ retval = quota_compare_and_update(ctx->qctx, i,
+ &needs_writeout);
+ if ((retval || needs_writeout) &&
+ fix_problem(ctx, PR_6_UPDATE_QUOTAS, &pctx))
+ quota_write_inode(ctx->qctx, i);
+ }
quota_release_context(&ctx->qctx);
}
if (run_result == E2F_FLAG_RESTART) {
- log_out(ctx, _("Restarting e2fsck from the beginning...\n"));
+ log_out(ctx, "%s",
+ _("Restarting e2fsck from the beginning...\n"));
retval = e2fsck_reset_context(ctx);
if (retval) {
- com_err(ctx->program_name, retval,
+ com_err(ctx->program_name, retval, "%s",
_("while resetting context"));
fatal_error(ctx, 0);
}
@@ -1706,7 +1761,7 @@ no_journal:
!(ctx->options & E2F_OPT_READONLY)) {
retval = ext2fs_set_gdt_csum(ctx->fs);
if (retval) {
- com_err(ctx->program_name, retval,
+ com_err(ctx->program_name, retval, "%s",
_("while setting block group checksum info"));
fatal_error(ctx, 0);
}
diff --git a/e2fsck/util.c b/e2fsck/util.c
index 7c4caab0..43486313 100644
--- a/e2fsck/util.c
+++ b/e2fsck/util.c
@@ -55,7 +55,7 @@ void fatal_error(e2fsck_t ctx, const char *msg)
fprintf (stderr, "e2fsck: %s\n", msg);
if (!fs)
goto out;
- if (fs->io) {
+ if (fs->io && fs->super) {
ext2fs_mmp_stop(ctx->fs);
if (ctx->fs->io->magic == EXT2_ET_MAGIC_IO_CHANNEL)
io_channel_flush(ctx->fs->io);
@@ -121,7 +121,8 @@ void *e2fsck_allocate_memory(e2fsck_t ctx, unsigned int size,
#endif
ret = malloc(size);
if (!ret) {
- sprintf(buf, "Can't allocate %s\n", description);
+ sprintf(buf, "Can't allocate %u bytes for %s\n",
+ size, description);
fatal_error(ctx, buf);
}
memset(ret, 0, size);
@@ -219,7 +220,7 @@ int ask_yn(e2fsck_t ctx, const char * string, int def)
log_out(ctx, "\n");
longjmp(e2fsck_global_ctx->abort_loc, 1);
}
- log_out(ctx, _("cancelled!\n"));
+ log_out(ctx, "%s", _("cancelled!\n"));
return 0;
}
if (strchr(short_yes, (char) c)) {
@@ -234,9 +235,9 @@ int ask_yn(e2fsck_t ctx, const char * string, int def)
break;
}
if (def)
- log_out(ctx, _("yes\n"));
+ log_out(ctx, "%s", _("yes\n"));
else
- log_out(ctx, _("no\n"));
+ log_out(ctx, "%s", _("no\n"));
#ifdef HAVE_TERMIOS_H
tcsetattr (0, TCSANOW, &termios);
#endif
@@ -438,7 +439,7 @@ void print_resource_track(e2fsck_t ctx, const char *desc,
void e2fsck_read_inode(e2fsck_t ctx, unsigned long ino,
struct ext2_inode * inode, const char *proc)
{
- int retval;
+ errcode_t retval;
retval = ext2fs_read_inode(ctx->fs, ino, inode);
if (retval) {
@@ -452,7 +453,7 @@ void e2fsck_read_inode_full(e2fsck_t ctx, unsigned long ino,
struct ext2_inode *inode, int bufsize,
const char *proc)
{
- int retval;
+ errcode_t retval;
retval = ext2fs_read_inode_full(ctx->fs, ino, inode, bufsize);
if (retval) {
@@ -462,11 +463,11 @@ void e2fsck_read_inode_full(e2fsck_t ctx, unsigned long ino,
}
}
-extern void e2fsck_write_inode_full(e2fsck_t ctx, unsigned long ino,
- struct ext2_inode * inode, int bufsize,
- const char *proc)
+void e2fsck_write_inode_full(e2fsck_t ctx, unsigned long ino,
+ struct ext2_inode * inode, int bufsize,
+ const char *proc)
{
- int retval;
+ errcode_t retval;
retval = ext2fs_write_inode_full(ctx->fs, ino, inode, bufsize);
if (retval) {
@@ -476,10 +477,10 @@ extern void e2fsck_write_inode_full(e2fsck_t ctx, unsigned long ino,
}
}
-extern void e2fsck_write_inode(e2fsck_t ctx, unsigned long ino,
- struct ext2_inode * inode, const char *proc)
+void e2fsck_write_inode(e2fsck_t ctx, unsigned long ino,
+ struct ext2_inode * inode, const char *proc)
{
- int retval;
+ errcode_t retval;
retval = ext2fs_write_inode(ctx->fs, ino, inode);
if (retval) {
@@ -500,14 +501,14 @@ void mtrace_print(char *mesg)
}
#endif
-blk_t get_backup_sb(e2fsck_t ctx, ext2_filsys fs, const char *name,
- io_manager manager)
+blk64_t get_backup_sb(e2fsck_t ctx, ext2_filsys fs, const char *name,
+ io_manager manager)
{
struct ext2_super_block *sb;
io_channel io = NULL;
void *buf = NULL;
int blocksize;
- blk_t superblock, ret_sb = 8193;
+ blk64_t superblock, ret_sb = 8193;
if (fs && fs->super) {
ret_sb = (fs->super->s_blocks_per_group +
@@ -616,7 +617,7 @@ int ext2_file_type(unsigned int mode)
errcode_t e2fsck_zero_blocks(ext2_filsys fs, blk_t blk, int num,
blk_t *ret_blk, int *ret_count)
{
- int j, count, next_update, next_update_incr;
+ int j, count;
static char *buf;
errcode_t retval;
@@ -632,17 +633,13 @@ errcode_t e2fsck_zero_blocks(ext2_filsys fs, blk_t blk, int num,
if (!buf) {
buf = malloc(fs->blocksize * STRIDE_LENGTH);
if (!buf) {
- com_err("malloc", ENOMEM,
+ com_err("malloc", ENOMEM, "%s",
_("while allocating zeroizing buffer"));
exit(1);
}
memset(buf, 0, fs->blocksize * STRIDE_LENGTH);
}
/* OK, do the write loop */
- next_update = 0;
- next_update_incr = num / 100;
- if (next_update_incr < 1)
- next_update_incr = 1;
for (j = 0; j < num; j += STRIDE_LENGTH, blk += STRIDE_LENGTH) {
count = num - j;
if (count > STRIDE_LENGTH)
@@ -795,14 +792,13 @@ void e2fsck_set_bitmap_type(ext2_filsys fs, unsigned int default_type,
const char *profile_name, unsigned int *old_type)
{
unsigned type;
- errcode_t retval;
+ e2fsck_t ctx = (e2fsck_t) fs->priv_data;
if (old_type)
*old_type = fs->default_bitmap_type;
- profile_get_uint(e2fsck_global_ctx->profile, "bitmaps",
- profile_name, 0, default_type, &type);
- profile_get_uint(e2fsck_global_ctx->profile, "bitmaps",
- "all", 0, type, &type);
+ profile_get_uint(ctx->profile, "bitmaps", profile_name, 0,
+ default_type, &type);
+ profile_get_uint(ctx->profile, "bitmaps", "all", 0, type, &type);
fs->default_bitmap_type = type ? type : default_type;
}
diff --git a/e2fsprogs.lsm b/e2fsprogs.lsm
index 7bb4fe59..1dd07912 100644
--- a/e2fsprogs.lsm
+++ b/e2fsprogs.lsm
@@ -1,17 +1,17 @@
Begin3
Title: EXT2 Filesystem utilities
-Version: 1.42.2
-Entered-date: 27Mar2012
+Version: 1.42.10
+Entered-date: 18May2014
Description: The filesystem utilities for the EXT2, EXT3, and EXT4
filesystems, including e2fsck, mke2fs, dumpe2fs, and others.
Keywords: utilities, filesystem, Ext2fs, ext3, ext4
Author: tytso@mit.edu (Theodore Tso)
Maintained-by: tytso@mit.edu (Theodore Tso)
Primary-site: download.sourceforge.net /pub/sourceforge/e2fsprogs
- 5620kB e2fsprogs-1.42.2.tar.gz
- 504kB e2fsprogs-libs-1.42.2.tar.gz
- 1kB e2fsprogs-1.42.2.lsm
+ 5984kB e2fsprogs-1.42.10.tar.gz
+ 568kB e2fsprogs-libs-1.42.10.tar.gz
+ 1kB e2fsprogs-1.42.10.lsm
Alternate-site:
-Platforms: linux 1.2.x/1.3.x/2.0.x/2.1.x/2.2.x/2.3.x/2.4.x/2.5.x/2.6.x
+Platforms: linux 1.2.x/1.3.x/2.0.x/2.1.x/2.2.x/2.3.x/2.4.x/2.5.x/2.6.x/3.x
Copying-policy: GPL-2/LGPL-2
End
diff --git a/e2fsprogs.morph b/e2fsprogs.morph
new file mode 100644
index 00000000..801f8abe
--- /dev/null
+++ b/e2fsprogs.morph
@@ -0,0 +1,21 @@
+name: e2fsprogs
+kind: chunk
+build-system: autotools
+configure-commands:
+# Configure with the usual paths for binaries and config
+# but also disable whatever we can that is already provided by util-linux
+# Disabling e2fsprofs' libblkid does not work, but we don't have to
+# install it.
+- |
+ ./configure --prefix="$PREFIX" --sysconfdir=/etc \
+ --disable-libuuid --disable-uuidd --disable-fsck
+install-commands:
+# e2fsprogs also includes tools that are provided by util-linux, so we
+# need to selectively exclude them. Removing them directly from DESTDIR
+# causes problems, so we need to remove them beforehand.
+- |
+ td="$(mktemp -d)"
+ make DESTDIR="$td" install
+ find "$td" \( -name blkid -o -name findfs -o -name fsck \) -delete
+ find "$td" \( -name blkid.8 -o -name findfs.8 \) -delete
+ mv "$td"/* "$DESTDIR"
diff --git a/ext2ed/Makefile.in b/ext2ed/Makefile.in
index b3b606a6..5f4cc69a 100644
--- a/ext2ed/Makefile.in
+++ b/ext2ed/Makefile.in
@@ -33,6 +33,7 @@ DOCS= doc/ext2ed-design.pdf doc/user-guide.pdf doc/ext2fs-overview.pdf \
.c.o:
$(CC) -c $(ALL_CFLAGS) $< -o $@
+ $(CHECK_CMD) $(ALL_CFLAGS) $<
.SUFFIXES: .sgml .ps .pdf .html
@@ -64,7 +65,7 @@ ext2ed.8: $(DEP_SUBSTITUTE) $(srcdir)/ext2ed.8.in
ext2ed.conf: $(DEP_SUBSTITUTE) $(srcdir)/ext2ed.conf.in
$(SUBSTITUTE_UPTIME) $(srcdir)/ext2ed.conf.in ext2ed.conf
-clean:
+clean::
$(RM) -f ext2ed $(OBJS) $(DOCS) ext2ed.conf ext2ed.8
-rmdir doc
diff --git a/intl/Makefile.in b/intl/Makefile.in
index 9dbc84e9..87d081f8 100644
--- a/intl/Makefile.in
+++ b/intl/Makefile.in
@@ -59,6 +59,20 @@ mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
@ifNotGNUmake@ E = @E@
@ifNotGNUmake@ Q = @Q@
+@ifGNUmake@ CHECK=sparse
+@ifGNUmake@ CHECK_OPTS=-Wsparse-all -Wno-transparent-union -Wno-return-void -Wno-undef -Wno-non-pointer-null
+@ifGNUmake@ ifeq ("$(C)", "2")
+@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS) -Wbitwise -D__CHECK_ENDIAN__
+@ifGNUmake@ else
+@ifGNUmake@ ifeq ("$(C)", "1")
+@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS)
+@ifGNUmake@ else
+@ifGNUmake@ CHECK_CMD=@true
+@ifGNUmake@ endif
+@ifGNUmake@ endif
+
+@ifNotGNUmake@ CHECK_CMD=@true
+
l = @INTL_LIBTOOL_SUFFIX_PREFIX@
AR = ar
@@ -191,6 +205,7 @@ LTV_AGE=4
.c.o:
$(E) " CC $<"
$(Q) $(COMPILE) $<
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
.y.c:
$(YACC) $(YFLAGS) --output $@ $<
@@ -473,13 +488,14 @@ id: ID
ID: $(HEADERS) $(SOURCES)
here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+coverage.txt::
mostlyclean:
rm -f *.a *.la *.o *.obj *.lo core core.*
rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed
rm -f -r .libs _libs
-clean: mostlyclean
+clean:: mostlyclean
distclean: clean
rm -f Makefile ID TAGS
diff --git a/lib/Makefile.bsd-lib b/lib/Makefile.bsd-lib
index 51e9dc77..0ca09f8c 100644
--- a/lib/Makefile.bsd-lib
+++ b/lib/Makefile.bsd-lib
@@ -22,7 +22,7 @@ BSDLIB_PIC_FLAG = -fpic
image: $(BSD_LIB)
$(BSD_LIB): $(OBJS)
- (cd pic; ld -Bshareable -o $(BSD_LIB) $(OBJS))
+ (cd pic; ld -Bshareable -o $(BSD_LIB) $(LDFLAGS) $(OBJS))
$(MV) pic/$(BSD_LIB) .
$(RM) -f ../$(BSD_LIB)
(cd ..; $(LN) $(LINK_BUILD_FLAGS) \
diff --git a/lib/Makefile.elf-lib b/lib/Makefile.elf-lib
index ea600c7a..78479d31 100644
--- a/lib/Makefile.elf-lib
+++ b/lib/Makefile.elf-lib
@@ -24,7 +24,8 @@ image: $(ELF_LIB)
$(ELF_LIB): $(OBJS)
$(E) " GEN_ELF_SOLIB $(ELF_LIB)"
- $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) $(LDFLAGS) \
+ $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) \
+ -L$(top_builddir)/../lib $(LDFLAGS) \
-Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
$(Q) $(MV) elfshared/$(ELF_LIB) .
$(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
@@ -40,18 +41,15 @@ installdirs-elf-lib::
installdirs:: installdirs-elf-lib
-install-shlibs install:: $(ELF_LIB) installdirs-elf-lib
+install-shlibs install:: $(ELF_LIB) installdirs-elf-lib $(DEP_INSTALL_SYMLINK)
$(E) " INSTALL-ELF-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
$(Q) $(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
$(E) " SYMLINK $(ELF_INSTALL_DIR)/$(ELF_SONAME)"
- $(Q) $(LN_S) -f $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME)
+ $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_LIB) \
+ $(ELF_INSTALL_DIR)/$(ELF_SONAME) $(DESTDIR)
$(E) " SYMLINK $(libdir)/$(ELF_IMAGE).so"
- $(Q) if test "$(ELF_INSTALL_DIR)" = "$(libdir)"; then \
- $(LN_S) -f $(ELF_SONAME) $(DESTDIR)$(libdir)/$(ELF_IMAGE).so ; \
- else \
- $(LN_S) -f $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
- $(DESTDIR)$(libdir)/$(ELF_IMAGE).so; \
- fi
+ $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
+ $(libdir)/$(ELF_IMAGE).so $(DESTDIR)
$(E) " LDCONFIG"
$(Q) -$(LDCONFIG)
diff --git a/lib/Makefile.solaris-lib b/lib/Makefile.solaris-lib
index 92bdbe28..5990be8a 100644
--- a/lib/Makefile.solaris-lib
+++ b/lib/Makefile.solaris-lib
@@ -24,7 +24,8 @@ image: $(ELF_LIB)
$(ELF_LIB): $(OBJS)
$(E) " GEN_ELF_SOLIB $(ELF_LIB)"
- $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) $(LDFLAGS) \
+ $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) \
+ -L$(top_builddir)/../lib $(LDFLAGS) \
-Wl,-h,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
$(Q) $(MV) elfshared/$(ELF_LIB) .
$(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
diff --git a/lib/blkid/Makefile.in b/lib/blkid/Makefile.in
index f23a1376..14724325 100644
--- a/lib/blkid/Makefile.in
+++ b/lib/blkid/Makefile.in
@@ -36,7 +36,7 @@ ELF_SO_VERSION = 1
ELF_IMAGE = libblkid
ELF_MYDIR = blkid
ELF_INSTALL_DIR = $(root_libdir)
-ELF_OTHER_LIBS = -L../.. -luuid
+ELF_OTHER_LIBS = -luuid
BSDLIB_VERSION = 2.0
BSDLIB_IMAGE = libblkid
@@ -55,6 +55,7 @@ DEPLIBS_BLKID= $(DEPSTATIC_LIBBLKID) $(DEPSTATIC_LIBUUID)
.c.o:
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
@CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
@@ -117,7 +118,7 @@ tst_tag: $(srcdir)/tag.c $(DEPLIBS_BLKID)
tst_types: tst_types.o blkid_types.h
$(E) " LD $@"
- $(Q) $(CC) -o tst_types tst_types.o
+ $(Q) $(CC) -o tst_types $(ALL_LDFLAGS) tst_types.o
../../misc/blkid.o: $(top_srcdir)/misc/blkid.c blkid.h
$(E) " CC $@"
@@ -147,7 +148,7 @@ blkid.pc: $(srcdir)/blkid.pc.in $(top_builddir)/config.status
installdirs::
$(E) " MKINSTALLDIRS $(libdir) $(includedir)/blkid"
$(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
- $(DESTDIR)$(includedir)/blkid $(DESTDIR)$(libdir)/pkgconfig
+ $(DESTDIR)$(includedir)/blkid $(DESTDIR)$(pkgconfigdir)
install:: all installdirs
$(E) " INSTALL_DATA $(libdir)/libblkid.a"
@@ -162,12 +163,12 @@ install:: all installdirs
echo " INSTALL_DATA $(man3dir)/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(man3dir)/$$i; \
done
- $(E) " INSTALL_DATA $(libdir)/pkgconfig/blkid.pc"
- $(Q) $(INSTALL_DATA) blkid.pc $(DESTDIR)$(libdir)/pkgconfig/blkid.pc
+ $(E) " INSTALL_DATA $(pkgconfigdir)/blkid.pc"
+ $(Q) $(INSTALL_DATA) blkid.pc $(DESTDIR)$(pkgconfigdir)/blkid.pc
uninstall::
$(RM) -f $(DESTDIR)$(libdir)/libblkid.a \
- $(DESTDIR)$(libdir)/pkgconfig/blkid.pc
+ $(DESTDIR)$(pkgconfigdir)/blkid.pc
$(RM) -rf $(DESTDIR)$(includedir)/blkid
for i in $(SMANPAGES); do \
$(RM) -f $(DESTDIR)$(man3dir)/$$i; \
diff --git a/lib/blkid/blkid.pc.in b/lib/blkid/blkid.pc.in
index b984f6d0..808fe229 100644
--- a/lib/blkid/blkid.pc.in
+++ b/lib/blkid/blkid.pc.in
@@ -7,5 +7,5 @@ Name: blkid
Description: Block device id library
Version: @E2FSPROGS_VERSION@
Requires.private: uuid
-Cflags: -I${includedir}/blkid
+Cflags: -I${includedir}/blkid -I${includedir}
Libs: -L${libdir} -lblkid
diff --git a/lib/blkid/blkid_types.h.in b/lib/blkid/blkid_types.h.in
index cb5b10d5..2edc0dad 100644
--- a/lib/blkid/blkid_types.h.in
+++ b/lib/blkid/blkid_types.h.in
@@ -92,13 +92,13 @@ typedef __U64_TYPEDEF __u64;
#if (@SIZEOF_INT@ == 8)
typedef unsigned int __u64;
#else
-#if (@SIZEOF_LONG@ == 8)
-typedef unsigned long __u64;
-#else
#if (@SIZEOF_LONG_LONG@ == 8)
typedef unsigned long long __u64;
-#endif /* SIZEOF_LONG_LONG == 8 */
+#else
+#if (@SIZEOF_LONG@ == 8)
+typedef unsigned long __u64;
#endif /* SIZEOF_LONG == 8 */
+#endif /* SIZEOF_LONG_LONG == 8 */
#endif /* SIZEOF_INT == 8 */
#endif /* __U64_TYPEDEF */
@@ -108,17 +108,17 @@ typedef __S64_TYPEDEF __s64;
#if (@SIZEOF_INT@ == 8)
typedef int __s64;
#else
-#if (@SIZEOF_LONG@ == 8)
-typedef long __s64;
-#else
#if (@SIZEOF_LONG_LONG@ == 8)
#if defined(__GNUC__)
typedef __signed__ long long __s64;
#else
typedef signed long long __s64;
#endif /* __GNUC__ */
-#endif /* SIZEOF_LONG_LONG == 8 */
+#else
+#if (@SIZEOF_LONG@ == 8)
+typedef long __s64;
#endif /* SIZEOF_LONG == 8 */
+#endif /* SIZEOF_LONG_LONG == 8 */
#endif /* SIZEOF_INT == 8 */
#endif /* __S64_TYPEDEF */
diff --git a/lib/blkid/cache.c b/lib/blkid/cache.c
index 73900a51..2a2df13c 100644
--- a/lib/blkid/cache.c
+++ b/lib/blkid/cache.c
@@ -11,6 +11,9 @@
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
@@ -49,7 +52,9 @@ static char *safe_getenv(const char *arg)
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
@@ -162,8 +167,6 @@ void blkid_gc_cache(blkid_cache cache)
list_for_each_safe(p, pnext, &cache->bic_devs) {
blkid_dev dev = list_entry(p, struct blkid_struct_dev, bid_devs);
- if (!p)
- break;
if (stat(dev->bid_name, &st) < 0) {
DBG(DEBUG_CACHE,
printf("freeing %s\n", dev->bid_name));
diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c
index a6673c17..3e2efa9d 100644
--- a/lib/blkid/devname.c
+++ b/lib/blkid/devname.c
@@ -91,8 +91,6 @@ blkid_dev blkid_get_dev(blkid_cache cache, const char *devname, int flags)
*/
list_for_each_safe(p, pnext, &cache->bic_devs) {
blkid_dev dev2;
- if (!p)
- break;
dev2 = list_entry(p, struct blkid_struct_dev, bid_devs);
if (dev2->bid_flags & BLKID_BID_FL_VERIFIED)
continue;
diff --git a/lib/blkid/getsize.c b/lib/blkid/getsize.c
index f670e1b1..c2a8f72a 100644
--- a/lib/blkid/getsize.c
+++ b/lib/blkid/getsize.c
@@ -75,52 +75,46 @@ static int valid_offset(int fd, blkid_loff_t offset)
*/
blkid_loff_t blkid_get_dev_size(int fd)
{
- int valid_blkgetsize64 = 1;
-#ifdef __linux__
- struct utsname ut;
-#endif
unsigned long long size64;
- unsigned long size;
blkid_loff_t high, low;
-#ifdef FDGETPRM
- struct floppy_struct this_floppy;
-#endif
-#ifdef HAVE_SYS_DISKLABEL_H
- int part = -1;
- struct disklabel lab;
- struct partition *pp;
- char ch;
- struct stat st;
-#endif /* HAVE_SYS_DISKLABEL_H */
#ifdef DKIOCGETBLOCKCOUNT /* For Apple Darwin */
if (ioctl(fd, DKIOCGETBLOCKCOUNT, &size64) >= 0) {
- if ((sizeof(blkid_loff_t) < sizeof(unsigned long long))
- && (size64 << 9 > 0xFFFFFFFF))
+ if (sizeof(blkid_loff_t) < sizeof(unsigned long long) &&
+ (size64 << 9) > 0xFFFFFFFF)
return 0; /* EFBIG */
- return (blkid_loff_t) size64 << 9;
+ return (blkid_loff_t)size64 << 9;
}
#endif
#ifdef BLKGETSIZE64
+ {
+ int valid_blkgetsize64 = 1;
#ifdef __linux__
- if ((uname(&ut) == 0) &&
- ((ut.release[0] == '2') && (ut.release[1] == '.') &&
- (ut.release[2] < '6') && (ut.release[3] == '.')))
- valid_blkgetsize64 = 0;
-#endif
- if (valid_blkgetsize64 &&
- ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
- if ((sizeof(blkid_loff_t) < sizeof(unsigned long long))
- && ((size64) > 0xFFFFFFFF))
- return 0; /* EFBIG */
- return size64;
+ struct utsname ut;
+
+ if ((uname(&ut) == 0) &&
+ ((ut.release[0] == '2') && (ut.release[1] == '.') &&
+ (ut.release[2] < '6') && (ut.release[3] == '.')))
+ valid_blkgetsize64 = 0;
+#endif
+ if (valid_blkgetsize64 &&
+ ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
+ if (sizeof(blkid_loff_t) < sizeof(unsigned long long) &&
+ (size64 > 0xFFFFFFFF))
+ return 0; /* EFBIG */
+ return size64;
+ }
}
#endif /* BLKGETSIZE64 */
#ifdef BLKGETSIZE
- if (ioctl(fd, BLKGETSIZE, &size) >= 0)
- return (blkid_loff_t)size << 9;
+ {
+ unsigned long size;
+
+ if (ioctl(fd, BLKGETSIZE, &size) >= 0)
+ return (blkid_loff_t)size << 9;
+ }
#endif
/* tested on FreeBSD 6.1-RELEASE i386 */
@@ -130,26 +124,39 @@ blkid_loff_t blkid_get_dev_size(int fd)
#endif /* DIOCGMEDIASIZE */
#ifdef FDGETPRM
- if (ioctl(fd, FDGETPRM, &this_floppy) >= 0)
- return (blkid_loff_t)this_floppy.size << 9;
+ {
+ struct floppy_struct this_floppy;
+
+ if (ioctl(fd, FDGETPRM, &this_floppy) >= 0)
+ return (blkid_loff_t)this_floppy.size << 9;
+ }
#endif
#ifdef HAVE_SYS_DISKLABEL_H
- /*
- * 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) || 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;
+ {
+ int part = -1;
+ struct disklabel lab;
+ struct partition *pp;
+ char ch;
+ struct stat st;
+
+ /*
+ * 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) || 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 /* HAVE_SYS_DISKLABEL_H */
{
@@ -199,8 +206,8 @@ int main(int argc, char **argv)
perror(argv[0]);
bytes = blkid_get_dev_size(fd);
- printf("Device %s has %Ld 1k blocks.\n", argv[1],
- (unsigned long long) bytes >> 10);
+ printf("Device %s has %lld 1k blocks.\n", argv[1],
+ (unsigned long long)bytes >> 10);
return 0;
}
diff --git a/lib/blkid/list.h b/lib/blkid/list.h
index c1cbfec5..26a5ac1b 100644
--- a/lib/blkid/list.h
+++ b/lib/blkid/list.h
@@ -1,4 +1,4 @@
-#if !defined(_BLKID_LIST_H) && !defined(LIST_HEAD)
+#if !defined(_BLKID_LIST_H) && !defined(LIST_HEAD_INIT)
#define _BLKID_LIST_H
#ifdef __cplusplus
@@ -27,9 +27,6 @@ struct list_head {
#define LIST_HEAD_INIT(name) { &(name), &(name) }
-#define LIST_HEAD(name) \
- struct list_head name = LIST_HEAD_INIT(name)
-
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c
index 6970b122..4b797ab1 100644
--- a/lib/blkid/probe.c
+++ b/lib/blkid/probe.c
@@ -43,10 +43,8 @@ static int figure_label_len(const unsigned char *label, int len)
while ((*end == ' ' || *end == 0) && end >= label)
--end;
- if (end >= label) {
- label = label;
+ if (end >= label)
return end - label + 1;
- }
return 0;
}
@@ -245,7 +243,7 @@ static int check_for_modules(const char *fs_name)
return (0);
}
-static int linux_version_code()
+static int linux_version_code(void)
{
#ifdef __linux__
struct utsname ut;
@@ -588,7 +586,7 @@ static int probe_fat(struct blkid_probe *probe,
int count;
next_sect_off = (next - 2) * vs->vs_cluster_size;
- next_off = (start_data_sect + next_sect_off) *
+ next_off = (__u64) (start_data_sect + next_sect_off) *
sector_size;
dir = (struct vfat_dir_entry *)
@@ -603,7 +601,9 @@ static int probe_fat(struct blkid_probe *probe,
break;
/* get FAT entry */
- fat_entry_off = (reserved * sector_size) +
+ fat_entry_off =
+ ((unsigned int) reserved *
+ (unsigned int) sector_size) +
(next * sizeof(__u32));
buf = get_buffer(probe, fat_entry_off, buf_size);
if (buf == NULL)
@@ -1005,7 +1005,8 @@ static int probe_udf(struct blkid_probe *probe,
(block sizes larger than 2K will be null padded) */
for (bs = 1; bs < 16; bs++) {
isosb = (struct iso_volume_descriptor *)
- get_buffer(probe, bs*2048+32768, sizeof(isosb));
+ get_buffer(probe, (blkid_loff_t) bs*2048+32768,
+ sizeof(*isosb));
if (!isosb)
return 1;
if (isosb->vd_id[0])
@@ -1017,7 +1018,7 @@ static int probe_udf(struct blkid_probe *probe,
if (j > 1) {
isosb = (struct iso_volume_descriptor *)
get_buffer(probe, j*bs*2048+32768,
- sizeof(isosb));
+ sizeof(*isosb));
if (!isosb)
return 1;
}
@@ -1163,7 +1164,8 @@ static int probe_hfs(struct blkid_probe *probe __BLKID_ATTR((unused)),
struct blkid_magic *id __BLKID_ATTR((unused)),
unsigned char *buf)
{
- struct hfs_mdb *hfs = (struct hfs_mdb *) buf;
+ struct hfs_mdb *hfs = (struct hfs_mdb *)buf;
+ unsigned long long *uuid_ptr;
char uuid_str[17];
__u64 uuid;
@@ -1171,7 +1173,8 @@ static int probe_hfs(struct blkid_probe *probe __BLKID_ATTR((unused)),
(memcmp(hfs->embed_sig, "HX", 2) == 0))
return 1; /* Not hfs, but an embedded HFS+ */
- uuid = blkid_le64(*((unsigned long long *) hfs->finder_info.id));
+ uuid_ptr = (unsigned long long *)hfs->finder_info.id;
+ uuid = blkid_le64(*uuid_ptr);
if (uuid) {
sprintf(uuid_str, "%016llX", uuid);
blkid_set_tag(probe->dev, "UUID", uuid_str, 0);
@@ -1205,9 +1208,10 @@ static int probe_hfsplus(struct blkid_probe *probe,
unsigned int leaf_node_size;
unsigned int leaf_block;
unsigned int label_len;
- int ext;
+ unsigned long long *uuid_ptr;
__u64 leaf_off, uuid;
char uuid_str[17], label[512];
+ int ext;
/* Check for a HFS+ volume embedded in a HFS volume */
if (memcmp(sbd->signature, "BD", 2) == 0) {
@@ -1222,7 +1226,7 @@ static int probe_hfsplus(struct blkid_probe *probe,
off = (alloc_first_block * 512) +
(embed_first_block * alloc_block_size);
buf = get_buffer(probe, off + (id->bim_kboff * 1024),
- sizeof(sbd));
+ sizeof(*sbd));
if (!buf)
return 1;
@@ -1235,7 +1239,8 @@ static int probe_hfsplus(struct blkid_probe *probe,
(memcmp(hfsplus->signature, "HX", 2) != 0))
return 1;
- uuid = blkid_le64(*((unsigned long long *) hfsplus->finder_info.id));
+ uuid_ptr = (unsigned long long *)hfsplus->finder_info.id;
+ uuid = blkid_le64(*uuid_ptr);
if (uuid) {
sprintf(uuid_str, "%016llX", uuid);
blkid_set_tag(probe->dev, "UUID", uuid_str, 0);
@@ -1245,7 +1250,7 @@ static int probe_hfsplus(struct blkid_probe *probe,
memcpy(extents, hfsplus->cat_file.extents, sizeof(extents));
cat_block = blkid_be32(extents[0].start_block);
- buf = get_buffer(probe, off + (cat_block * blocksize), 0x2000);
+ buf = get_buffer(probe, off + ((__u64) cat_block * blocksize), 0x2000);
if (!buf)
return 0;
@@ -1276,7 +1281,7 @@ static int probe_hfsplus(struct blkid_probe *probe,
if (ext == HFSPLUS_EXTENT_COUNT)
return 0;
- leaf_off = (ext_block_start + leaf_block) * blocksize;
+ leaf_off = (__u64) (ext_block_start + leaf_block) * blocksize;
buf = get_buffer(probe, off + leaf_off, leaf_node_size);
if (!buf)
@@ -1358,7 +1363,7 @@ static int probe_lvm2(struct blkid_probe *probe,
return 1;
}
- for (i=0, b=1, p=uuid, q= (char *) label->pv_uuid; i <= 32;
+ for (i=0, b=1, p=uuid, q= (char *) label->pv_uuid; i < LVM2_ID_LEN;
i++, b <<= 1) {
if (b & 0x4444440)
*p++ = '-';
@@ -1578,7 +1583,7 @@ try_again:
continue;
idx = id->bim_kboff + (id->bim_sboff >> 10);
- buf = get_buffer(&probe, idx << 10, 1024);
+ buf = get_buffer(&probe, (__u64) idx << 10, 1024);
if (!buf)
continue;
diff --git a/lib/blkid/save.c b/lib/blkid/save.c
index 6c20168b..762ffefd 100644
--- a/lib/blkid/save.c
+++ b/lib/blkid/save.c
@@ -94,8 +94,10 @@ int blkid_flush_cache(blkid_cache cache)
if (ret == 0 && S_ISREG(st.st_mode)) {
tmp = malloc(strlen(filename) + 8);
if (tmp) {
+ mode_t save_umask = umask(022);
sprintf(tmp, "%s-XXXXXX", filename);
fd = mkstemp(tmp);
+ umask(save_umask);
if (fd >= 0) {
file = fdopen(fd, "w");
opened = tmp;
@@ -134,7 +136,7 @@ int blkid_flush_cache(blkid_cache cache)
fclose(file);
if (opened != filename) {
if (ret < 0) {
- unlink(opened);
+ (void) unlink(opened);
DBG(DEBUG_SAVE,
printf("unlinked temp cache %s\n", opened));
} else {
@@ -144,10 +146,11 @@ int blkid_flush_cache(blkid_cache cache)
if (backup) {
sprintf(backup, "%s.old", filename);
unlink(backup);
- link(filename, backup);
+ (void) link(filename, backup);
free(backup);
}
- rename(opened, filename);
+ if (rename(opened, filename) < 0)
+ (void) unlink(opened);
DBG(DEBUG_SAVE,
printf("moved temp cache %s\n", opened));
}
diff --git a/lib/blkid/test_probe.in b/lib/blkid/test_probe.in
index 9b3edf52..a7b29a2e 100644
--- a/lib/blkid/test_probe.in
+++ b/lib/blkid/test_probe.in
@@ -21,11 +21,11 @@ do
echo "non-existent"
continue
fi
- if [ "$i" = "swap0" ]; then
+ if [ "$i" = "swap0" ] && which mkswap > /dev/null; then
# swap is native-endian, so regenerate before testing
dd if=/dev/zero of=$IMAGE bs=16k count=64 2> /dev/null
mkswap -v0 $IMAGE > /dev/null
- elif [ "$i" = "swap1" ]; then
+ elif [ "$i" = "swap1" ] && which mkswap > /dev/null; then
# swap is native-endian, so regenerate before testing
dd if=/dev/zero of=$IMAGE bs=16k count=64 2> /dev/null
# check if mkswap supports the "-U" option
diff --git a/lib/config.h.in b/lib/config.h.in
index f69eebe7..92b3c49b 100644
--- a/lib/config.h.in
+++ b/lib/config.h.in
@@ -26,6 +26,9 @@
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
+/* Define to 1 to disable use of backtrace */
+#undef DISABLE_BACKTRACE
+
/* Define to 1 if ext2 compression enabled */
#undef ENABLE_COMPRESSION
@@ -52,6 +55,9 @@
/* Define to 1 if you have the `backtrace' function. */
#undef HAVE_BACKTRACE
+/* Define to 1 if you have the `blkid_probe_enable_partitions' function. */
+#undef HAVE_BLKID_PROBE_ENABLE_PARTITIONS
+
/* Define to 1 if you have the `blkid_probe_get_topology' function. */
#undef HAVE_BLKID_PROBE_GET_TOPOLOGY
@@ -100,6 +106,9 @@
/* Define to 1 if Ext2 ioctls present */
#undef HAVE_EXT2_IOCTLS
+/* Define to 1 if you have the `fadvise64' function. */
+#undef HAVE_FADVISE64
+
/* Define to 1 if you have the `fallocate' function. */
#undef HAVE_FALLOCATE
@@ -118,6 +127,9 @@
/* Define to 1 if you have the `ftruncate64' function. */
#undef HAVE_FTRUNCATE64
+/* Define to 1 if you have the `futimes' function. */
+#undef HAVE_FUTIMES
+
/* Define to 1 if you have the `fwprintf' function. */
#undef HAVE_FWPRINTF
@@ -145,6 +157,9 @@
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
+/* Define to 1 if you have the `getpwuid_r' function. */
+#undef HAVE_GETPWUID_R
+
/* Define to 1 if you have the `getrlimit' function. */
#undef HAVE_GETRLIMIT
@@ -191,6 +206,9 @@
/* Define to 1 if you have the <linux/fd.h> header file. */
#undef HAVE_LINUX_FD_H
+/* Define to 1 if you have the <linux/loop.h> header file. */
+#undef HAVE_LINUX_LOOP_H
+
/* Define to 1 if you have the <linux/major.h> header file. */
#undef HAVE_LINUX_MAJOR_H
@@ -275,6 +293,9 @@
/* Define to 1 if you have the `posix_fadvise' function. */
#undef HAVE_POSIX_FADVISE
+/* Define to 1 if you have the `posix_fadvise64' function. */
+#undef HAVE_POSIX_FADVISE64
+
/* Define to 1 if you have the `posix_memalign' function. */
#undef HAVE_POSIX_MEMALIGN
@@ -287,15 +308,15 @@
/* Define to 1 if you have the `putenv' function. */
#undef HAVE_PUTENV
-/* Define to 1 if you have the `quotactl' function. */
-#undef HAVE_QUOTACTL
-
/* Define to 1 if dirent has d_reclen */
#undef HAVE_RECLEN_DIRENT
/* Define to 1 if if struct sockaddr contains sa_len */
#undef HAVE_SA_LEN
+/* Define to 1 if you have the `secure_getenv' function. */
+#undef HAVE_SECURE_GETENV
+
/* Define to 1 if you have the <semaphore.h> header file. */
#undef HAVE_SEMAPHORE_H
@@ -311,6 +332,9 @@
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
+/* Define to 1 if you have the `setmntent' function. */
+#undef HAVE_SETMNTENT
+
/* Define to 1 if you have the `setresgid' function. */
#undef HAVE_SETRESGID
@@ -372,6 +396,9 @@
/* Define to 1 if you have the `strtoull' function. */
#undef HAVE_STRTOULL
+/* Define to 1 if `st_atim' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIM
+
/* Define to 1 if you have the `sync_file_range' function. */
#undef HAVE_SYNC_FILE_RANGE
@@ -540,6 +567,9 @@
/* The size of `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG
+/* The size of `off_t', as computed by sizeof. */
+#undef SIZEOF_OFF_T
+
/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT
@@ -608,4 +638,4 @@
<inttypes.h> don't define. */
#undef uintmax_t
-#include "dirpaths.h"
+#include <dirpaths.h>
diff --git a/lib/e2p/Makefile.in b/lib/e2p/Makefile.in
index e2d09402..7cdb88cb 100644
--- a/lib/e2p/Makefile.in
+++ b/lib/e2p/Makefile.in
@@ -55,6 +55,7 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
.c.o:
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
@CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
@@ -81,7 +82,7 @@ check:: tst_ostype tst_feature
installdirs::
$(E) " MKINSTALLDIRS $(libdir) $(includedir)/e2p"
$(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
- $(DESTDIR)$(includedir)/e2p $(DESTDIR)$(libdir)/pkgconfig
+ $(DESTDIR)$(includedir)/e2p $(DESTDIR)$(pkgconfigdir)
install:: all installdirs
$(E) " INSTALL_DATA $(libdir)/libe2p.a"
@@ -92,12 +93,12 @@ install:: all installdirs
echo " INSTALL_DATA $(includedir)/e2p/$$i"; \
$(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir)/e2p/$$i; \
done
- $(E) " INSTALL_DATA $(libdir)/pkgconfig/e2p.pc"
- $(Q) $(INSTALL_DATA) e2p.pc $(DESTDIR)$(libdir)/pkgconfig/e2p.pc
+ $(E) " INSTALL_DATA $(pkgconfigdir)/e2p.pc"
+ $(Q) $(INSTALL_DATA) e2p.pc $(DESTDIR)$(pkgconfigdir)/e2p.pc
uninstall::
$(RM) -f $(DESTDIR)$(libdir)/libe2p.a \
- $(DESTDIR)$(libdir)/pkgconfig/e2p.pc
+ $(DESTDIR)$(pkgconfigdir)/e2p.pc
$(RM) -rf $(DESTDIR)$(includedir)/e2p
clean::
diff --git a/lib/e2p/e2p.h b/lib/e2p/e2p.h
index 4a68dd9a..5fa41f46 100644
--- a/lib/e2p/e2p.h
+++ b/lib/e2p/e2p.h
@@ -36,7 +36,7 @@ int getflags (int fd, unsigned long * flags);
int getversion (int fd, unsigned long * version);
int iterate_on_dir (const char * dir_name,
int (*func) (const char *, struct dirent *, void *),
- void * private);
+ void * private_arg);
void list_super(struct ext2_super_block * s);
void list_super2(struct ext2_super_block * s, FILE *f);
void print_fs_errors (FILE * f, unsigned short errors);
diff --git a/lib/e2p/e2p.pc.in b/lib/e2p/e2p.pc.in
index 98ee9fb7..c171ae67 100644
--- a/lib/e2p/e2p.pc.in
+++ b/lib/e2p/e2p.pc.in
@@ -7,5 +7,5 @@ Name: e2p
Description: Ext2fs userpace programs utility library
Version: @E2FSPROGS_VERSION@
Requires:
-Cflags: -I${includedir}/e2p
+Cflags: -I${includedir}/e2p -I${includedir}
Libs: -L${libdir} -le2p
diff --git a/lib/e2p/feature.c b/lib/e2p/feature.c
index 19e6f0cc..1d3e6896 100644
--- a/lib/e2p/feature.c
+++ b/lib/e2p/feature.c
@@ -43,6 +43,8 @@ static struct feature feature_list[] = {
"lazy_bg" },
{ E2P_FEATURE_COMPAT, EXT2_FEATURE_COMPAT_EXCLUDE_BITMAP,
"snapshot_bitmap" },
+ { E2P_FEATURE_COMPAT, EXT4_FEATURE_COMPAT_SPARSE_SUPER2,
+ "sparse_super2" },
{ E2P_FEATURE_RO_INCOMPAT, EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER,
"sparse_super" },
@@ -87,6 +89,14 @@ static struct feature feature_list[] = {
"mmp" },
{ E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_FLEX_BG,
"flex_bg"},
+ { E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_EA_INODE,
+ "ea_inode"},
+ { E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_DIRDATA,
+ "dirdata"},
+ { E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_LARGEDIR,
+ "large_dir"},
+ { E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_INLINEDATA,
+ "inline_data"},
{ 0, 0, 0 },
};
@@ -96,6 +106,8 @@ static struct feature jrnl_feature_list[] = {
{ E2P_FEATURE_INCOMPAT, JFS_FEATURE_INCOMPAT_REVOKE,
"journal_incompat_revoke" },
+ { E2P_FEATURE_INCOMPAT, JFS_FEATURE_INCOMPAT_64BIT,
+ "journal_64bit" },
{ E2P_FEATURE_INCOMPAT, JFS_FEATURE_INCOMPAT_ASYNC_COMMIT,
"journal_async_commit" },
{ 0, 0, 0 },
diff --git a/lib/e2p/getversion.c b/lib/e2p/getversion.c
index e7c6feca..71031ffc 100644
--- a/lib/e2p/getversion.c
+++ b/lib/e2p/getversion.c
@@ -31,7 +31,7 @@ int getversion (int fd, unsigned long * version)
r = ioctl (fd, EXT2_IOC_GETVERSION, &ver);
*version = ver;
- return 0;
+ return r;
#else /* ! HAVE_EXT2_IOCTLS */
extern int errno;
errno = EOPNOTSUPP;
diff --git a/lib/e2p/ls.c b/lib/e2p/ls.c
index f05e16dc..6f741c06 100644
--- a/lib/e2p/ls.c
+++ b/lib/e2p/ls.c
@@ -259,6 +259,8 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
else
fprintf(f, "Fragment size: %u\n",
EXT2_CLUSTER_SIZE(sb));
+ if (sb->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ fprintf(f, "Group descriptor size: %u\n", sb->s_desc_size);
if (sb->s_reserved_gdt_blocks)
fprintf(f, "Reserved GDT blocks: %u\n",
sb->s_reserved_gdt_blocks);
@@ -366,6 +368,14 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
fprintf(f, "type %u\n", sb->s_jnl_backup_type);
}
}
+ if (sb->s_backup_bgs[0] || sb->s_backup_bgs[1]) {
+ fprintf(f, "Backup block groups: ");
+ if (sb->s_backup_bgs[0])
+ fprintf(f, "%u ", sb->s_backup_bgs[0]);
+ if (sb->s_backup_bgs[1])
+ fprintf(f, "%u ", sb->s_backup_bgs[1]);
+ fputc('\n', f);
+ }
if (sb->s_snapshot_inum) {
fprintf(f, "Snapshot inode: %u\n",
sb->s_snapshot_inum);
diff --git a/lib/e2p/parse_num.c b/lib/e2p/parse_num.c
index d9ad3e74..e8d6283c 100644
--- a/lib/e2p/parse_num.c
+++ b/lib/e2p/parse_num.c
@@ -35,10 +35,16 @@ unsigned long long parse_num_blocks2(const char *arg, int log_block_size)
num <<= 10;
/* fallthrough */
case 'K': case 'k':
- num >>= log_block_size;
+ if (log_block_size < 0)
+ num <<= 10;
+ else
+ num >>= log_block_size;
break;
case 's':
- num >>= (1+log_block_size);
+ if (log_block_size < 0)
+ num <<= 9;
+ else
+ num >>= (1+log_block_size);
break;
case '\0':
break;
@@ -62,11 +68,21 @@ main(int argc, char **argv)
unsigned long num;
int log_block_size = 0;
- if (argc != 2) {
- fprintf(stderr, "Usage: %s arg\n", argv[0]);
+ if (argc != 2 && argc != 3) {
+ fprintf(stderr, "Usage: %s arg [log_block_size]\n", argv[0]);
exit(1);
}
+ if (argc == 3) {
+ char *p;
+
+ log_block_size = strtol(argv[2], &p, 0);
+ if (*p) {
+ fprintf(stderr, "Bad log_block_size: %s\n", argv[2]);
+ exit(1);
+ }
+ }
+
num = parse_num_blocks(argv[1], log_block_size);
printf("Parsed number: %lu\n", num);
diff --git a/lib/e2p/pf.c b/lib/e2p/pf.c
index f03193c0..e2f8ce50 100644
--- a/lib/e2p/pf.c
+++ b/lib/e2p/pf.c
@@ -49,6 +49,7 @@ static struct flags_name flags_array[] = {
{ EXT2_TOPDIR_FL, "T", "Top_of_Directory_Hierarchies" },
{ EXT4_EXTENTS_FL, "e", "Extents" },
{ EXT4_HUGE_FILE_FL, "h", "Huge_file" },
+ { FS_NOCOW_FL, "C", "No_COW" },
{ 0, NULL, NULL }
};
diff --git a/lib/et/Makefile.in b/lib/et/Makefile.in
index 26a33608..4441e1f8 100644
--- a/lib/et/Makefile.in
+++ b/lib/et/Makefile.in
@@ -43,6 +43,7 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
.c.o:
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
@CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
@@ -59,15 +60,34 @@ compile_et: $(DEP_SUBSTITUTE) $(srcdir)/compile_et.sh.in
$(Q) $(SUBSTITUTE) $(srcdir)/compile_et.sh.in compile_et
$(Q) $(CHMOD) +x compile_et
+DVI=texi2dvi
+DVIPS=dvips -o "$@"
+INFO=@MAKEINFO@
+HTML=makeinfo --html --no-split
+PS2PDF=ps2pdf
+
com_err.ps : com_err.dvi
com_err.dvi: com_err.texinfo
-com_err_abt.html: $(srcdir)/com_err.texinfo
- $(E) " TEXI2HTML $@"
- -$(Q) texi2html -split_chapter $(srcdir)/com_err.texinfo
- -$(Q) if test -d com_err ; then \
- mv com_err/* . ; rmdir com_err ; \
- fi
+com_err.info: $(srcdir)/com_err.texinfo
+ $(E) " MAKEINFO $@"
+ -$(Q) $(INFO) $(srcdir)/com_err.texinfo
+
+com_err.dvi: $(srcdir)/com_err.texinfo
+ $(E) " TEXI2DVI $@"
+ -$(Q) $(DVI) $(srcdir)/com_err.texinfo
+
+com_err.ps: com_err.dvi
+ $(E) " DVIPS $@"
+ -$(Q) $(DVIPS) com_err.dvi
+
+com_err.pdf: com_err.ps
+ $(E) " PS2PDF $@"
+ -$(Q) $(PS2PDF) com_err.ps
+
+com_err.html: $(srcdir)/com_err.texinfo
+ $(E) " MAKEINFO $@"
+ -$(Q) $(HTML) $(srcdir)/com_err.texinfo
com_err.pc: $(srcdir)/com_err.pc.in $(top_builddir)/config.status
$(E) " CONFIG.STATUS $@"
@@ -85,7 +105,7 @@ installdirs::
$(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
$(DESTDIR)$(includedir)/et $(DESTDIR)$(datadir)/et \
$(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) \
- $(DESTDIR)$(man3dir) $(DESTDIR)$(libdir)/pkgconfig
+ $(DESTDIR)$(man3dir) $(DESTDIR)$(pkgconfigdir)
install:: compile_et libcom_err.a $(HFILES) installdirs com_err.pc
$(E) " INSTALL_DATA $(libdir)/libcom_err.a"
@@ -109,13 +129,13 @@ install:: compile_et libcom_err.a $(HFILES) installdirs com_err.pc
$(E) " INSTALL_DATA $(man1dir)/compile_et.1"
$(Q) $(INSTALL_DATA) $(srcdir)/compile_et.1 \
$(DESTDIR)$(man1dir)/compile_et.1
- $(E) " INSTALL_DATA $(libdir)/pkgconfig/com_err.pc"
- $(Q) $(INSTALL_DATA) com_err.pc $(DESTDIR)$(libdir)/pkgconfig/com_err.pc
+ $(E) " INSTALL_DATA $(pkgconfigdir)/com_err.pc"
+ $(Q) $(INSTALL_DATA) com_err.pc $(DESTDIR)$(pkgconfigdir)/com_err.pc
uninstall::
$(RM) -f $(DESTDIR)$(libdir)/libcom_err.a \
$(DESTDIR)$(bindir)/compile_et \
- $(DESTDIR)$(libdir)/pkgconfig/com_err.pc
+ $(DESTDIR)$(pkgconfigdir)/com_err.pc
$(RM) -rf $(DESTDIR)$(includedir)/et $(DESTDIR)$(datadir)/et
check:: compile_et
@@ -133,7 +153,9 @@ check:: compile_et
clean::
$(RM) -f compile_et libcom_err.a libcom_err_p.a com_err.info
$(RM) -f $(OBJS) profiled/*
- $(RM) -f *~ \#* *.bak *.otl *.aux *.toc *.PS *.dvi *.ps TAGS *.ln *.html
+ $(RM) -f *~ \#* *.bak *.otl *.aux *.toc *.PS *.dvi *.ps TAGS *.ln \
+ *.html *.cp *.fn *.fns *.ky *.log *.pc *.pg *.toc *.tp *.vr \
+ *.pdf
$(RM) -f ../libcom_err.a ../libcom_err_p.a
mostlyclean:: clean
diff --git a/lib/et/com_err.c b/lib/et/com_err.c
index 4ea52def..d38998a2 100644
--- a/lib/et/com_err.c
+++ b/lib/et/com_err.c
@@ -85,8 +85,7 @@ void com_err (const char *whoami,
va_end(pvar);
}
-errf set_com_err_hook (new_proc)
- errf new_proc;
+errf set_com_err_hook(errf new_proc)
{
errf x = com_err_hook;
@@ -98,7 +97,7 @@ errf set_com_err_hook (new_proc)
return x;
}
-errf reset_com_err_hook () {
+errf reset_com_err_hook(void) {
errf x = com_err_hook;
com_err_hook = default_com_err_proc;
return x;
diff --git a/lib/et/com_err.pc.in b/lib/et/com_err.pc.in
index 772efa1c..86df8a2a 100644
--- a/lib/et/com_err.pc.in
+++ b/lib/et/com_err.pc.in
@@ -7,6 +7,6 @@ Name: com_err
Description: Common error description library
Version: @E2FSPROGS_VERSION@
Requires:
-Cflags: -I${includedir}/et
+Cflags: -I${includedir}/et -I${includedir}
Libs: -L${libdir} -lcom_err
Libs.private: @SEM_INIT_LIB@
diff --git a/lib/et/com_err.texinfo b/lib/et/com_err.texinfo
index 7e6a4944..c9d3fcaf 100644
--- a/lib/et/com_err.texinfo
+++ b/lib/et/com_err.texinfo
@@ -14,7 +14,7 @@
@c Software Foundation, and is under different copyright restrictions
@c from the rest of this package.)
-@setfilename com_err
+@setfilename com_err.info
@settitle A Common Error Description Library for UNIX
@ifinfo
@@ -24,14 +24,10 @@
@end direntry
@end ifinfo
-@iftex
-@tolerance 10000
+@c smallbook
-@c Mutate section headers...
-@begingroup
- @catcode#=6
- @gdef@secheading#1#2#3{@secheadingi {#3@enspace #1}}
-@endgroup
+@iftex
+@finalout
@end iftex
@ifinfo
@@ -61,6 +57,7 @@ notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).
@end ignore
+@end ifinfo
@setchapternewpage odd
@@ -114,7 +111,6 @@ from the remainder of this package.
@end titlepage
-
@node Top, Why com_err?, (dir), (dir)
@top A Common Error Description Library for UNIX
@@ -133,12 +129,10 @@ This manual documents the com_err library.
* Acknowledgements::
@end menu
-@end ifinfo
-
@page
@node Why com_err?, Error codes, Top, Top
-@section Why com_err?
+@chapter Why com_err?
In building application software packages, a programmer often has to
deal with a number of libraries, each of which can use a different
@@ -174,7 +168,7 @@ of the form @samp{unknown code foo 32}, where @samp{foo} would be the name
of the table.
@node Error codes, Error table source file, Why com_err?, Top
-@section Error codes
+@chapter Error codes
Error codes themselves are 32 bit (signed) integers, of which the high
order 24 bits are an identifier of which error table the error code is
@@ -203,7 +197,7 @@ much other software that assumes an ANSI-C environment base) without
significant effort.
@node Error table source file, The error-table compiler, Error codes, Top
-@section Error table source file
+@chapter Error table source file
The error table source file begins with the declaration of the table name,
as
@@ -241,7 +235,7 @@ error table might be:
@end example
@node The error-table compiler, Run-time support routines, Error table source file, Top
-@section The error-table compiler
+@chapter The error-table compiler
The error table compiler is named @code{compile_et}. It takes one
argument, the pathname of a file (ending in @samp{.et}, e.g.,
@@ -255,7 +249,7 @@ codes defined; the object module generated from the C code may be linked in
to a program which wishes to use the printed forms of the error codes.
@node Run-time support routines, Coding Conventions, The error-table compiler, Top
-@section Run-time support routines
+@chapter Run-time support routines
Any source file which uses the routines supplied with or produced by the
com_err package should include the header file @file{<com_err.h>}. It
@@ -306,9 +300,7 @@ left to circumstances which render @code{com_err} (below) unusable.
@end deftypefun
-@deftypefun
-void com_err (const char *@var{whoami}, long @var{error_code},
- const char *@var{format}, ...);
+@deftypefun void com_err (const char *@var{whoami}, long @var{error_code}, const char *@var{format}, ...);
This routine provides an alternate way to print error messages to
standard error; it allows the error message to be passed in as a
@@ -321,8 +313,7 @@ printed. @var{format} may not be omitted.
@end deftypefun
-@deftypefun
-void com_err_va (const char *@var{whoami}, long @var{error_code}, const char *@var{format}, va_list @var{args});
+@deftypefun void com_err_va (const char *@var{whoami}, long @var{error_code}, const char *@var{format}, va_list @var{args});
This routine provides an interface, equivalent to @code{com_err} above,
which may be used by higher-level variadic functions (functions which
@@ -330,7 +321,7 @@ accept variable numbers of arguments).
@end deftypefun
-@deftypefun void (*set_com_err_hook (void (*@var{proc}) (const char *@var{whoami}, long @var{error_code}, va_list @var{args}))) (const char *@var{whoami}, long @var{error_code}, va_list @var{args});
+@deftypefun void *set_com_err_hook (void (*@var{proc}) (const char *@var{whoami}, long @var{error_code}, va_list @var{args}) (const char *@var{whoami}, long @var{error_code}, va_list @var{args}));
@deftypefunx void reset_com_err_hook ();
@@ -390,7 +381,7 @@ the ANSI C library).
@end deftypefun
@node Coding Conventions, Building and Installation, Run-time support routines, Top
-@section Coding Conventions
+@chapter Coding Conventions
The following conventions are just some general stylistic conventions
to follow when writing robust libraries and programs. Conventions
@@ -501,7 +492,7 @@ error:
@end example
@node Building and Installation, Bug Reports, Coding Conventions, Top
-@section Building and Installation
+@chapter Building and Installation
The distribution of this package will probably be done as a compressed
``tar''-format file available via anonymous FTP from SIPB.MIT.EDU.
@@ -514,7 +505,7 @@ installed for use; @samp{com_err.3} and @samp{compile_et.1} can also be
installed as manual pages.
@node Bug Reports, Acknowledgements, Building and Installation, Top
-@section Bug Reports
+@chapter Bug Reports
The principal author of this library is: Ken
Raeburn, @t{raeburn@@MIT.EDU}.
@@ -524,7 +515,7 @@ Ts'o, and so bugs and comments should be sent to @t{tytso@@thunk.org}.
@node Acknowledgements, , Bug Reports, Top
-@section Acknowledgements
+@chapter Acknowledgements
I would like to thank: Bill Sommerfeld, for his help with some of this
documentation, and catching some of the bugs the first time around;
diff --git a/lib/et/error_message.c b/lib/et/error_message.c
index dc77b69f..5d8d2422 100644
--- a/lib/et/error_message.c
+++ b/lib/et/error_message.c
@@ -17,6 +17,9 @@
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -102,8 +105,7 @@ typedef char *(*gettextf) (const char *);
static gettextf com_err_gettext = NULL;
-gettextf set_com_err_gettext (new_proc)
- gettextf new_proc;
+gettextf set_com_err_gettext(gettextf new_proc)
{
gettextf x = com_err_gettext;
@@ -209,7 +211,9 @@ static char *safe_getenv(const char *arg)
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
diff --git a/lib/et/error_table.h b/lib/et/error_table.h
index 4f109911..24e4762a 100644
--- a/lib/et/error_table.h
+++ b/lib/et/error_table.h
@@ -18,7 +18,7 @@ struct et_list {
struct et_list *next;
const struct error_table *table;
};
-extern struct et_list * _et_list;
+extern struct et_list *_et_list, *_et_dynamic_list;
#define ERRCODE_RANGE 8 /* # of bits to shift table number */
#define BITS_PER_CHAR 6 /* # bits to shift per character in name */
diff --git a/lib/et/et_name.c b/lib/et/et_name.c
index 6b59eddb..d9a3e874 100644
--- a/lib/et/et_name.c
+++ b/lib/et/et_name.c
@@ -21,8 +21,7 @@ static const char char_set[] =
static char buf[6];
-const char * error_table_name(num)
- errcode_t num;
+const char * error_table_name(errcode_t num)
{
int ch;
int i;
diff --git a/lib/et/texinfo.tex b/lib/et/texinfo.tex
index 838160c9..dddd0140 100644
--- a/lib/et/texinfo.tex
+++ b/lib/et/texinfo.tex
@@ -1,209 +1,373 @@
-%% TeX macros to handle texinfo files
-
-% Copyright (C) 1985, 1986, 1988 Richard M. Stallman
-
-% NO WARRANTY
-
-% BECAUSE THIS PROGRAM IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY
-%NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT
-%WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC,
-%RICHARD M. STALLMAN AND/OR OTHER PARTIES PROVIDE THIS PROGRAM "AS IS"
-%WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-%BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-%FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY
-%AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
-%DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-%CORRECTION.
-
-% IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL RICHARD M.
-%STALLMAN, THE FREE SOFTWARE FOUNDATION, INC., AND/OR ANY OTHER PARTY
-%WHO MAY MODIFY AND REDISTRIBUTE THIS PROGRAM AS PERMITTED BELOW, BE
-%LIABLE TO YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR
-%OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-%USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
-%DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR
-%A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) THIS
-%PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
-%DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
-
-% GENERAL PUBLIC LICENSE TO COPY
-
-% 1. You may copy and distribute verbatim copies of this source file
-%as you receive it, in any medium, provided that you conspicuously
-%and appropriately publish on each copy a valid copyright notice
-%"Copyright (C) 1986 Richard M. Stallman"; and include
-%following the copyright notice a verbatim copy of the above disclaimer
-%of warranty and of this License.
-
-% 2. You may modify your copy or copies of this source file or
-%any portion of it, and copy and distribute such modifications under
-%the terms of Paragraph 1 above, provided that you also do the following:
-
-% a) cause the modified files to carry prominent notices stating
-% that you changed the files and the date of any change; and
-
-% b) cause the whole of any work that you distribute or publish,
-% that in whole or in part contains or is a derivative of this
-% program or any part thereof, to be licensed at no charge to all
-% third parties on terms identical to those contained in this
-% License Agreement (except that you may choose to grant more extensive
-% warranty protection to some or all third parties, at your option).
-
-% c) You may charge a distribution fee for the physical act of
-% transferring a copy, and you may at your option offer warranty
-% protection in exchange for a fee.
-
-%Mere aggregation of another unrelated program with this program (or its
-%derivative) on a volume of a storage or distribution medium does not bring
-%the other program under the scope of these terms.
-
-% 3. You may copy and distribute this program (or a portion or derivative
-%of it, under Paragraph 2) in object code or executable form under the terms
-%of Paragraphs 1 and 2 above provided that you also do one of the following:
-
-% a) accompany it with the complete corresponding machine-readable
-% source code, which must be distributed under the terms of
-% Paragraphs 1 and 2 above; or,
-
-% b) accompany it with a written offer, valid for at least three
-% years, to give any third party free (except for a nominal
-% shipping charge) a complete machine-readable copy of the
-% corresponding source code, to be distributed under the terms of
-% Paragraphs 1 and 2 above; or,
-
-% c) accompany it with the information you received as to where the
-% corresponding source code may be obtained. (This alternative is
-% allowed only for noncommercial distribution and only if you
-% received the program in object code or executable form alone.)
-
-%For an executable file, complete source code means all the source code for
-%all modules it contains; but, as a special exception, it need not include
-%source code for modules which are standard libraries that accompany the
-%operating system on which the executable file runs.
-
-% 4. You may not copy, sublicense, distribute or transfer this program
-%except as expressly provided under this License Agreement. Any attempt
-%otherwise to copy, sublicense, distribute or transfer this program is void and
-%your rights to use the program under this License agreement shall be
-%automatically terminated. However, parties who have received computer
-%software programs from you with this License Agreement will not have
-%their licenses terminated so long as such parties remain in full compliance.
-
-% 5. If you wish to incorporate parts of this program into other free
-%programs whose distribution conditions are different, write to the Free
-%Software Foundation at 675 Mass Ave, Cambridge, MA 02139. We have not yet
-%worked out a simple rule that can be stated here, but we will often permit
-%this. We will be guided by the two goals of preserving the free status of
-%all derivatives of our free software and of promoting the sharing and reuse of
-%software.
-
-%In other words, you are welcome to use, share and improve this program.
-%You are forbidden to forbid anyone else to use, share and improve
-%what you give them. Help stamp out software-hoarding!
-
-\def\texinfoversion{1.18}
-\message{Loading texinfo package [Version \texinfoversion]:}
-\message{}
-
-% Save some parts of plain tex whose names we will redefine.
+% texinfo.tex -- TeX macros to handle Texinfo files.
+%
+% Load plain if necessary, i.e., if running under initex.
+\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
+%
+\def\texinfoversion{2006-02-13.16}
+%
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
+% Software Foundation, Inc.
+%
+% This texinfo.tex file is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as
+% published by the Free Software Foundation; either version 2, or (at
+% your option) any later version.
+%
+% This texinfo.tex file is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+% General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this texinfo.tex file; see the file COPYING. If not, write
+% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+% Boston, MA 02110-1301, USA.
+%
+% As a special exception, when this file is read by TeX when processing
+% a Texinfo source document, you may use the result without
+% restriction. (This has been our intent since Texinfo was invented.)
+%
+% Please try the latest version of texinfo.tex before submitting bug
+% reports; you can get the latest version from:
+% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
+% ftp://tug.org/tex/texinfo.tex
+% (and all CTAN mirrors, see http://www.ctan.org).
+% The texinfo.tex in any given distribution could well be out
+% of date, so if that's what you're using, please check.
+%
+% Send bug reports to bug-texinfo@gnu.org. Please include including a
+% complete document in each bug report with which we can reproduce the
+% problem. Patches are, of course, greatly appreciated.
+%
+% To process a Texinfo manual with TeX, it's most reliable to use the
+% texi2dvi shell script that comes with the distribution. For a simple
+% manual foo.texi, however, you can get away with this:
+% tex foo.texi
+% texindex foo.??
+% tex foo.texi
+% tex foo.texi
+% dvips foo.dvi -o # or whatever; this makes foo.ps.
+% The extra TeX runs get the cross-reference information correct.
+% Sometimes one run after texindex suffices, and sometimes you need more
+% than two; texi2dvi does it as many times as necessary.
+%
+% It is possible to adapt texinfo.tex for other languages, to some
+% extent. You can get the existing language-specific files from the
+% full Texinfo distribution.
+%
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexdot=\.
-\let\ptexstar=\*
-\let\ptexend=\end
-\let\ptexbullet=\bullet
+
+\message{Loading texinfo [version \texinfoversion]:}
+
+% If in a .fmt file, print the version number
+% and turn on active characters that we couldn't do earlier because
+% they might have appeared in the input file name.
+\everyjob{\message{[Texinfo version \texinfoversion]}%
+ \catcode`+=\active \catcode`\_=\active}
+
+\message{Basics,}
+\chardef\other=12
+
+% We never want plain's \outer definition of \+ in Texinfo.
+% For @tex, we can use \tabalign.
+\let\+ = \relax
+
+% Save some plain tex macros whose names we will redefine.
\let\ptexb=\b
+\let\ptexbullet=\bullet
\let\ptexc=\c
+\let\ptexcomma=\,
+\let\ptexdot=\.
+\let\ptexdots=\dots
+\let\ptexend=\end
+\let\ptexequiv=\equiv
+\let\ptexexclam=\!
+\let\ptexfootnote=\footnote
+\let\ptexgtr=>
+\let\ptexhat=^
\let\ptexi=\i
+\let\ptexindent=\indent
+\let\ptexinsert=\insert
+\let\ptexlbrace=\{
+\let\ptexless=<
+\let\ptexnewwrite\newwrite
+\let\ptexnoindent=\noindent
+\let\ptexplus=+
+\let\ptexrbrace=\}
+\let\ptexslash=\/
+\let\ptexstar=\*
\let\ptext=\t
-\let\ptexl=\l
-\let\ptexL=\L
-\def\tie{\penalty 10000\ } % Save plain tex definition of ~.
+% If this character appears in an error message or help string, it
+% starts a new line in the output.
+\newlinechar = `^^J
-\message{Basics,}
-\chardef\other=12
+% Use TeX 3.0's \inputlineno to get the line number, for better error
+% messages, but if we're using an old version of TeX, don't do anything.
+%
+\ifx\inputlineno\thisisundefined
+ \let\linenumber = \empty % Pre-3.0.
+\else
+ \def\linenumber{l.\the\inputlineno:\space}
+\fi
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
+% Set up fixed words for English if not already set.
+\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
+\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
+\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
+\ifx\putwordin\undefined \gdef\putwordin{in}\fi
+\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
+\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
+\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
+\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
+\ifx\putwordof\undefined \gdef\putwordof{of}\fi
+\ifx\putwordon\undefined \gdef\putwordon{on}\fi
+\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
+\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
+\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
+\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
+\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
+\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
+\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
+%
+\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
+\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
+\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
+\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
+\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
+\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
+\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
+\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
+\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
+\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
+\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
+\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
+%
+\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
+\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
+\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
+\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
+\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
+
+% Since the category of space is not known, we have to be careful.
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode`\ =\spacecat}
+
+% Ignore a token.
+%
+\def\gobble#1{}
+
+% The following is used inside several \edef's.
+\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
+
+% Hyphenation fixes.
+\hyphenation{
+ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
+ ap-pen-dix bit-map bit-maps
+ data-base data-bases eshell fall-ing half-way long-est man-u-script
+ man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
+ par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
+ spell-ing spell-ings
+ stand-alone strong-est time-stamp time-stamps which-ever white-space
+ wide-spread wrap-around
+}
% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset \bindingoffset=0pt
-\newdimen \normaloffset \normaloffset=\hoffset
+\newdimen\bindingoffset
+\newdimen\normaloffset
\newdimen\pagewidth \newdimen\pageheight
-\pagewidth=\hsize \pageheight=\vsize
-%---------------------Begin change-----------------------
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
%
-% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986
+\def\finalout{\overfullrule=0pt}
+
+% @| inserts a changebar to the left of the current line. It should
+% surround any changed text. This approach does *not* work if the
+% change spans more than two lines of output. To handle that, we would
+% have adopt a much more difficult approach (putting marks into the main
+% vertical list for the beginning and end of each change).
%
-\newdimen\cornerlong \newdimen\cornerthick
-\newdimen \topandbottommargin
-\newdimen \outerhsize \newdimen \outervsize
-\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
-\outerhsize=7in
-\outervsize=9.5in
-\topandbottommargin=.75in
+\def\|{%
+ % \vadjust can only be used in horizontal mode.
+ \leavevmode
+ %
+ % Append this vertical mode material after the current line in the output.
+ \vadjust{%
+ % We want to insert a rule with the height and depth of the current
+ % leading; that is exactly what \strutbox is supposed to record.
+ \vskip-\baselineskip
+ %
+ % \vadjust-items are inserted at the left edge of the type. So
+ % the \llap here moves out into the left-hand margin.
+ \llap{%
+ %
+ % For a thicker or thinner bar, change the `1pt'.
+ \vrule height\baselineskip width1pt
+ %
+ % This is the space between the bar and the text.
+ \hskip 12pt
+ }%
+ }%
+}
+
+% Sometimes it is convenient to have everything in the transcript file
+% and nothing on the terminal. We don't just call \tracingall here,
+% since that produces some useless output on the terminal. We also make
+% some effort to order the tracing commands to reduce output in the log
+% file; cf. trace.sty in LaTeX.
%
-%---------------------End change-----------------------
+\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
+\def\loggingall{%
+ \tracingstats2
+ \tracingpages1
+ \tracinglostchars2 % 2 gives us more in etex
+ \tracingparagraphs1
+ \tracingoutput1
+ \tracingmacros2
+ \tracingrestores1
+ \showboxbreadth\maxdimen \showboxdepth\maxdimen
+ \ifx\eTeXversion\undefined\else % etex gives us more logging
+ \tracingscantokens1
+ \tracingifs1
+ \tracinggroups1
+ \tracingnesting2
+ \tracingassigns1
+ \fi
+ \tracingcommands3 % 3 gives us more in etex
+ \errorcontextlines16
+}%
+
+% add check for \lastpenalty to plain's definitions. If the last thing
+% we did was a \nobreak, we don't want to insert more space.
+%
+\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
+ \removelastskip\penalty-50\smallskip\fi\fi}
+\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
+ \removelastskip\penalty-100\medskip\fi\fi}
+\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\penalty-200\bigskip\fi\fi}
+
+% For @cropmarks command.
+% Do @cropmarks to get crop marks.
+%
+\newif\ifcropmarks
+\let\cropmarks = \cropmarkstrue
+%
+% Dimensions to add cropmarks at corners.
+% Added by P. A. MacKay, 12 Nov. 1986
+%
+\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
+\newdimen\cornerlong \cornerlong=1pc
+\newdimen\cornerthick \cornerthick=.3pt
+\newdimen\topandbottommargin \topandbottommargin=.75in
+
+% Main output routine.
+\chardef\PAGE = 255
+\output = {\onepageout{\pagecontents\PAGE}}
+
+\newbox\headlinebox
+\newbox\footlinebox
% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions itself, but you have to call it yourself.
-\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}}
-\def\onepageout#1{\hoffset=\normaloffset
-\ifodd\pageno \advance\hoffset by \bindingoffset
-\else \advance\hoffset by -\bindingoffset\fi
-\shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}%
- {\let\hsize=\pagewidth \makefootline}}
-\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
-
-
-% Here is a modification of the main output routine for Near East Publications
-% This provides right-angle cropmarks at all four corners.
-% The contents of the page are centerlined into the cropmarks,
-% and any desired binding offset is added as an \hskip on either
-% site of the centerlined box. (P. A. MacKay, 12 November, 1986)
-%
-\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up
- \shipout
- \vbox to \outervsize{\hsize=\outerhsize
- \vbox{\line{\ewtop\hfill\ewtop}}
- \nointerlineskip
- \line{\vbox{\moveleft\cornerthick\nstop}
- \hfill
- \vbox{\moveright\cornerthick\nstop}}
- \vskip \topandbottommargin
- \centerline{\ifodd\pageno\hskip\bindingoffset\fi
- \vbox{
- {\let\hsize=\pagewidth \makeheadline}
- \pagebody{#1}
- {\let\hsize=\pagewidth \makefootline}}
- \ifodd\pageno\else\hskip\bindingoffset\fi}
- \vskip \topandbottommargin plus1fill minus1fill
- \boxmaxdepth\cornerthick
- \line{\vbox{\moveleft\cornerthick\nsbot}
- \hfill
- \vbox{\moveright\cornerthick\nsbot}}
- \nointerlineskip
- \vbox{\line{\ewbot\hfill\ewbot}}
- }
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
-%
-% Do @cropmarks to get crop marks
-\def\cropmarks{\let\onepageout=\croppageout }
+% does insertions, but you have to call it yourself.
+\def\onepageout#1{%
+ \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+ %
+ \ifodd\pageno \advance\hoffset by \bindingoffset
+ \else \advance\hoffset by -\bindingoffset\fi
+ %
+ % Do this outside of the \shipout so @code etc. will be expanded in
+ % the headline as they should be, not taken literally (outputting ''code).
+ \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+ \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+ %
+ {%
+ % Have to do this stuff outside the \shipout because we want it to
+ % take effect in \write's, yet the group defined by the \vbox ends
+ % before the \shipout runs.
+ %
+ \indexdummies % don't expand commands in the output.
+ \normalturnoffactive % \ in index entries must not stay \, e.g., if
+ % the page break happens to be in the middle of an example.
+ % We don't want .vr (or whatever) entries like this:
+ % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
+ % "\acronym" won't work when it's read back in;
+ % it needs to be
+ % {\code {{\tt \backslashcurfont }acronym}
+ \shipout\vbox{%
+ % Do this early so pdf references go to the beginning of the page.
+ \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
+ %
+ \ifcropmarks \vbox to \outervsize\bgroup
+ \hsize = \outerhsize
+ \vskip-\topandbottommargin
+ \vtop to0pt{%
+ \line{\ewtop\hfil\ewtop}%
+ \nointerlineskip
+ \line{%
+ \vbox{\moveleft\cornerthick\nstop}%
+ \hfill
+ \vbox{\moveright\cornerthick\nstop}%
+ }%
+ \vss}%
+ \vskip\topandbottommargin
+ \line\bgroup
+ \hfil % center the page within the outer (page) hsize.
+ \ifodd\pageno\hskip\bindingoffset\fi
+ \vbox\bgroup
+ \fi
+ %
+ \unvbox\headlinebox
+ \pagebody{#1}%
+ \ifdim\ht\footlinebox > 0pt
+ % Only leave this space if the footline is nonempty.
+ % (We lessened \vsize for it in \oddfootingxxx.)
+ % The \baselineskip=24pt in plain's \makefootline has no effect.
+ \vskip 2\baselineskip
+ \unvbox\footlinebox
+ \fi
+ %
+ \ifcropmarks
+ \egroup % end of \vbox\bgroup
+ \hfil\egroup % end of (centering) \line\bgroup
+ \vskip\topandbottommargin plus1fill minus1fill
+ \boxmaxdepth = \cornerthick
+ \vbox to0pt{\vss
+ \line{%
+ \vbox{\moveleft\cornerthick\nsbot}%
+ \hfill
+ \vbox{\moveright\cornerthick\nsbot}%
+ }%
+ \nointerlineskip
+ \line{\ewbot\hfil\ewbot}%
+ }%
+ \egroup % \vbox from first cropmarks clause
+ \fi
+ }% end of \shipout\vbox
+ }% end of group with \indexdummies
+ \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+
+\newinsert\margin \dimen\margin=\maxdimen
\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
{\catcode`\@ =11
\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
+% marginal hacks, juha@viisa.uucp (Juha Takala)
+\ifvoid\margin\else % marginal info is present
+ \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
\dimen@=\dp#1 \unvbox#1
\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
}
-%
% Here are the rules for the cropmarks. Note that they are
% offset so that the space between them is truly \outerhsize or \outervsize
% (P. A. MacKay, 12 November, 1986)
@@ -215,317 +379,1891 @@
\def\nsbot{\vbox
{\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-% Parse an argument, then pass it to #1.
-% The argument can be delimited with [...] or with "..." or braces
-% or it can be a whole line.
-% #1 should be a macro which expects
-% an ordinary undelimited TeX argument.
-
-\def\parsearg #1{\let\next=#1\begingroup\obeylines\futurelet\temp\parseargx}
+% Parse an argument, then pass it to #1. The argument is the rest of
+% the input line (except we remove a trailing comment). #1 should be a
+% macro which expects an ordinary undelimited TeX argument.
+%
+\def\parsearg{\parseargusing{}}
+\def\parseargusing#1#2{%
+ \def\next{#2}%
+ \begingroup
+ \obeylines
+ \spaceisspace
+ #1%
+ \parseargline\empty% Insert the \empty token, see \finishparsearg below.
+}
-\def\parseargx{%
-\ifx \obeyedspace\temp \aftergroup\parseargdiscardspace \else%
-\aftergroup \parseargline %
-\fi \endgroup}
+{\obeylines %
+ \gdef\parseargline#1^^M{%
+ \endgroup % End of the group started in \parsearg.
+ \argremovecomment #1\comment\ArgTerm%
+ }%
+}
-{\obeyspaces %
-\gdef\parseargdiscardspace {\begingroup\obeylines\futurelet\temp\parseargx}}
+% First remove any @comment, then any @c comment.
+\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-\gdef\obeyedspace{\ }
+% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
+%
+% \argremovec might leave us with trailing space, e.g.,
+% @end itemize @c foo
+% This space token undergoes the same procedure and is eventually removed
+% by \finishparsearg.
+%
+\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
+\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
+\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
+ \def\temp{#3}%
+ \ifx\temp\empty
+ % We cannot use \next here, as it holds the macro to run;
+ % thus we reuse \temp.
+ \let\temp\finishparsearg
+ \else
+ \let\temp\argcheckspaces
+ \fi
+ % Put the space token in:
+ \temp#1 #3\ArgTerm
+}
-\def\parseargline{\begingroup \obeylines \parsearglinex}
-{\obeylines %
-\gdef\parsearglinex #1^^M{\endgroup \next {#1}}}
+% If a _delimited_ argument is enclosed in braces, they get stripped; so
+% to get _exactly_ the rest of the line, we had to prevent such situation.
+% We prepended an \empty token at the very beginning and we expand it now,
+% just before passing the control to \next.
+% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
+% either the null string, or it ends with \^^M---thus there is no danger
+% that a pair of braces would be stripped.
+%
+% But first, we have to remove the trailing space token.
+%
+\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
+% \parseargdef\foo{...}
+% is roughly equivalent to
+% \def\foo{\parsearg\Xfoo}
+% \def\Xfoo#1{...}
+%
+% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
+% favourite TeX trick. --kasal, 16nov03
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment. Type Return to continue.}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
+\def\parseargdef#1{%
+ \expandafter \doparseargdef \csname\string#1\endcsname #1%
+}
+\def\doparseargdef#1#2{%
+ \def#2{\parsearg#1}%
+ \def#1##1%
+}
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Type <Return> to continue}
+% Several utility definitions with active space:
+{
+ \obeyspaces
+ \gdef\obeyedspace{ }
+
+ % Make each space character in the input produce a normal interword
+ % space in the output. Don't allow a line break at this space, as this
+ % is used only in environments like @example, where each line of input
+ % should produce a line of output anyway.
+ %
+ \gdef\sepspaces{\obeyspaces\let =\tie}
+
+ % If an index command is used in an @example environment, any spaces
+ % therein should become regular spaces in the raw index file, not the
+ % expansion of \tie (\leavevmode \penalty \@M \ ).
+ \gdef\unsepspaces{\let =\space}
+}
-\outer\def\begin{\parsearg\beginxxx}
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
+\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-%% @end foo executes the definition of \Efoo.
-%% foo can be delimited by doublequotes or brackets.
+% Define the framework for environments in texinfo.tex. It's used like this:
+%
+% \envdef\foo{...}
+% \def\Efoo{...}
+%
+% It's the responsibility of \envdef to insert \begingroup before the
+% actual body; @end closes the group after calling \Efoo. \envdef also
+% defines \thisenv, so the current environment is known; @end checks
+% whether the environment name matches. The \checkenv macro can also be
+% used to check whether the current environment is the one expected.
+%
+% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+% are not treated as enviroments; they don't open a group. (The
+% implementation of @end takes care not to call \endgroup in this
+% special case.)
+
+
+% At runtime, environments start with this:
+\def\startenvironment#1{\begingroup\def\thisenv{#1}}
+% initialize
+\let\thisenv\empty
+
+% ... but they get defined via ``\envdef\foo{...}'':
+\long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
+\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
+
+% Check whether we're in the right environment:
+\def\checkenv#1{%
+ \def\temp{#1}%
+ \ifx\thisenv\temp
+ \else
+ \badenverr
+ \fi
+}
-\def\end{\parsearg\endxxx}
+% Evironment mismatch, #1 expected:
+\def\badenverr{%
+ \errhelp = \EMsimple
+ \errmessage{This command can appear only \inenvironment\temp,
+ not \inenvironment\thisenv}%
+}
+\def\inenvironment#1{%
+ \ifx#1\empty
+ out of any environment%
+ \else
+ in environment \expandafter\string#1%
+ \fi
+}
-\def\endxxx #1{%
-\expandafter\ifx\csname E#1\endcsname\relax
-\expandafter\ifx\csname #1\endcsname\relax
-\errmessage{Undefined command @end #1}\else
-\errorE{#1}\fi\fi
-\csname E#1\endcsname}
-\def\errorE#1{
-{\errhelp=\EMsimple \errmessage{@end #1 not within #1 environment}}}
+% @end foo executes the definition of \Efoo.
+% But first, it executes a specialized version of \checkenv
+%
+\parseargdef\end{%
+ \if 1\csname iscond.#1\endcsname
+ \else
+ % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+ \expandafter\checkenv\csname#1\endcsname
+ \csname E#1\endcsname
+ \endgroup
+ \fi
+}
-% Single-spacing is done by various environments.
+\newhelp\EMsimple{Press RETURN to continue.}
-\newskip\singlespaceskip \singlespaceskip = \baselineskip
-\def\singlespace{%
-{\advance \baselineskip by -\singlespaceskip
-\kern \baselineskip}%
-\baselineskip=\singlespaceskip
-}
%% Simple single-character @ commands
% @@ prints an @
% Kludge this until the fonts are right (grr).
-\def\@{{\sf \char '100}}
+\def\@{{\tt\char64}}
-% Define @` and @' to be the same as ` and '
-% but suppressing ligatures.
-\def\`{{`}}
-\def\'{{'}}
+% This is turned off because it was never documented
+% and you can use @w{...} around a quote to suppress ligatures.
+%% Define @` and @' to be the same as ` and '
+%% but suppressing ligatures.
+%\def\`{{`}}
+%\def\'{{'}}
% Used to generate quoted braces.
-
-\def\mylbrace {{\tt \char '173}}
-\def\myrbrace {{\tt \char '175}}
+\def\mylbrace {{\tt\char123}}
+\def\myrbrace {{\tt\char125}}
\let\{=\mylbrace
\let\}=\myrbrace
+\begingroup
+ % Definitions to produce \{ and \} commands for indices,
+ % and @{ and @} for the aux/toc files.
+ \catcode`\{ = \other \catcode`\} = \other
+ \catcode`\[ = 1 \catcode`\] = 2
+ \catcode`\! = 0 \catcode`\\ = \other
+ !gdef!lbracecmd[\{]%
+ !gdef!rbracecmd[\}]%
+ !gdef!lbraceatcmd[@{]%
+ !gdef!rbraceatcmd[@}]%
+!endgroup
+
+% @comma{} to avoid , parsing problems.
+\let\comma = ,
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
+\let\, = \c
+\let\dotaccent = \.
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \t
+\let\ubaraccent = \b
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown @ordf @ordm
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+ \def\temp{#1}%
+ \ifx\temp\imacro \ptexi
+ \else\ifx\temp\jmacro \j
+ \else \errmessage{@dotless can be used only with i or j}%
+ \fi\fi
+}
+
+% The \TeX{} logo, as in plain, but resetting the spacing so that a
+% period following counts as ending a sentence. (Idea found in latex.)
+%
+\edef\TeX{\TeX \spacefactor=1000 }
+
+% @LaTeX{} logo. Not quite the same results as the definition in
+% latex.ltx, since we use a different font for the raised A; it's most
+% convenient for us to use an explicitly smaller font, rather than using
+% the \scriptstyle font (since we don't reset \scriptstyle and
+% \scriptscriptstyle).
+%
+\def\LaTeX{%
+ L\kern-.36em
+ {\setbox0=\hbox{T}%
+ \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
+ \kern-.15em
+ \TeX
+}
+
+% Be sure we're in horizontal mode when doing a tie, since we make space
+% equivalent to this in @example-like environments. Otherwise, a space
+% at the beginning of a line will start with \penalty -- and
+% since \penalty is valid in vertical mode, we'd end up putting the
+% penalty on the vertical list instead of in the new paragraph.
+{\catcode`@ = 11
+ % Avoid using \@M directly, because that causes trouble
+ % if the definition is written into an index file.
+ \global\let\tiepenalty = \@M
+ \gdef\tie{\leavevmode\penalty\tiepenalty\ }
+}
% @: forces normal size whitespace following.
\def\:{\spacefactor=1000 }
% @* forces a line break.
-\def\*{\hfil\break}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
+\def\*{\hfil\break\hbox{}\ignorespaces}
-% @w prevents a word break
-\def\w #1{\hbox{#1}}
+% @/ allows a line break.
+\let\/=\allowbreak
-% @group ... @end group forces ... to be all on one page.
+% @. is an end-of-sentence period.
+\def\.{.\spacefactor=\endofsentencespacefactor\space}
-\def\group{\begingroup% \inENV ???
-\def \Egroup{\egroup\endgroup}
-\vbox\bgroup}
+% @! is an end-of-sentence bang.
+\def\!{!\spacefactor=\endofsentencespacefactor\space}
-% @br forces paragraph break
+% @? is an end-of-sentence query.
+\def\?{?\spacefactor=\endofsentencespacefactor\space}
-\let\br = \par
+% @frenchspacing on|off says whether to put extra space after punctuation.
+%
+\def\onword{on}
+\def\offword{off}
+%
+\parseargdef\frenchspacing{%
+ \def\temp{#1}%
+ \ifx\temp\onword \plainfrenchspacing
+ \else\ifx\temp\offword \plainnonfrenchspacing
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
+ \fi\fi
+}
-% @dots{} output some dots
+% @w prevents a word break. Without the \leavevmode, @w at the
+% beginning of a paragraph, when TeX is still in vertical mode, would
+% produce a whole line of output instead of starting the paragraph.
+\def\w#1{\leavevmode\hbox{#1}}
+
+% @group ... @end group forces ... to be all on one page, by enclosing
+% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
+% to keep its height that of a normal line. According to the rules for
+% \topskip (p.114 of the TeXbook), the glue inserted is
+% max (\topskip - \ht (first item), 0). If that height is large,
+% therefore, no glue is inserted, and the space between the headline and
+% the text is small, which looks bad.
+%
+% Another complication is that the group might be very large. This can
+% cause the glue on the previous page to be unduly stretched, because it
+% does not have much material. In this case, it's better to add an
+% explicit \vfill so that the extra space is at the bottom. The
+% threshold for doing this is if the group is more than \vfilllimit
+% percent of a page (\vfilllimit can be changed inside of @tex).
+%
+\newbox\groupbox
+\def\vfilllimit{0.7}
+%
+\envdef\group{%
+ \ifnum\catcode`\^^M=\active \else
+ \errhelp = \groupinvalidhelp
+ \errmessage{@group invalid in context where filling is enabled}%
+ \fi
+ \startsavinginserts
+ %
+ \setbox\groupbox = \vtop\bgroup
+ % Do @comment since we are called inside an environment such as
+ % @example, where each end-of-line in the input causes an
+ % end-of-line in the output. We don't want the end-of-line after
+ % the `@group' to put extra space in the output. Since @group
+ % should appear on a line by itself (according to the Texinfo
+ % manual), we don't worry about eating any user text.
+ \comment
+}
+%
+% The \vtop produces a box with normal height and large depth; thus, TeX puts
+% \baselineskip glue before it, and (when the next line of text is done)
+% \lineskip glue after it. Thus, space below is not quite equal to space
+% above. But it's pretty close.
+\def\Egroup{%
+ % To get correct interline space between the last line of the group
+ % and the first line afterwards, we have to propagate \prevdepth.
+ \endgraf % Not \par, as it may have been set to \lisppar.
+ \global\dimen1 = \prevdepth
+ \egroup % End the \vtop.
+ % \dimen0 is the vertical size of the group's box.
+ \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
+ % \dimen2 is how much space is left on the page (more or less).
+ \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
+ % if the group doesn't fit on the current page, and it's a big big
+ % group, force a page break.
+ \ifdim \dimen0 > \dimen2
+ \ifdim \pagetotal < \vfilllimit\pageheight
+ \page
+ \fi
+ \fi
+ \box\groupbox
+ \prevdepth = \dimen1
+ \checkinserts
+}
+%
+% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
+% message, so this ends up printing `@group can only ...'.
+%
+\newhelp\groupinvalidhelp{%
+group can only be used in environments such as @example,^^J%
+where each line of input produces a line of output.}
+
+% @need space-in-mils
+% forces a page break if there is not space-in-mils remaining.
+
+\newdimen\mil \mil=0.001in
+
+% Old definition--didn't work.
+%\parseargdef\need{\par %
+%% This method tries to make TeX break the page naturally
+%% if the depth of the box does not fit.
+%{\baselineskip=0pt%
+%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
+%\prevdepth=-1000pt
+%}}
+
+\parseargdef\need{%
+ % Ensure vertical mode, so we don't make a big box in the middle of a
+ % paragraph.
+ \par
+ %
+ % If the @need value is less than one line space, it's useless.
+ \dimen0 = #1\mil
+ \dimen2 = \ht\strutbox
+ \advance\dimen2 by \dp\strutbox
+ \ifdim\dimen0 > \dimen2
+ %
+ % Do a \strut just to make the height of this box be normal, so the
+ % normal leading is inserted relative to the preceding line.
+ % And a page break here is fine.
+ \vtop to #1\mil{\strut\vfil}%
+ %
+ % TeX does not even consider page breaks if a penalty added to the
+ % main vertical list is 10000 or more. But in order to see if the
+ % empty box we just added fits on the page, we must make it consider
+ % page breaks. On the other hand, we don't want to actually break the
+ % page after the empty box. So we use a penalty of 9999.
+ %
+ % There is an extremely small chance that TeX will actually break the
+ % page at this \penalty, if there are no other feasible breakpoints in
+ % sight. (If the user is using lots of big @group commands, which
+ % almost-but-not-quite fill up a page, TeX will have a hard time doing
+ % good page breaking, for example.) However, I could not construct an
+ % example where a page broke at this \penalty; if it happens in a real
+ % document, then we can reconsider our strategy.
+ \penalty9999
+ %
+ % Back up by the size of the box, whether we did a page break or not.
+ \kern -#1\mil
+ %
+ % Do not allow a page break right after this kern.
+ \nobreak
+ \fi
+}
-\def\dots{$\ldots$}
+% @br forces paragraph break (and is undocumented).
-% @page forces the start of a new page
+\let\br = \par
+% @page forces the start of a new page.
+%
\def\page{\par\vfill\supereject}
% @exdent text....
% outputs text on separate line in roman font, starting at standard page margin
-\def\exdent{\errmessage{@exdent in filled text}}
- % @lisp, etc, define \exdent locally from \internalexdent
+% This records the amount of indent in the innermost environment.
+% That's how much \exdent should take out.
+\newskip\exdentamount
+
+% This defn is used inside fill environments such as @defun.
+\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
-{\obeyspaces
-\gdef\internalexdent{\parsearg\exdentzzz}}
+% This defn is used inside nofill environments such as @example.
+\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
+ \leftline{\hskip\leftskip{\rm#1}}}}
-\def\exdentzzz #1{{\advance \leftskip by -\lispnarrowing
-\advance \hsize by -\leftskip
-\advance \hsize by -\rightskip
-\leftline{{\rm#1}}}}
+% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+% paragraph. For more general purposes, use the \margin insertion
+% class. WHICH is `l' or `r'.
+%
+\newskip\inmarginspacing \inmarginspacing=1cm
+\def\strutdepth{\dp\strutbox}
+%
+\def\doinmargin#1#2{\strut\vadjust{%
+ \nobreak
+ \kern-\strutdepth
+ \vtop to \strutdepth{%
+ \baselineskip=\strutdepth
+ \vss
+ % if you have multiple lines of stuff to put here, you'll need to
+ % make the vbox yourself of the appropriate size.
+ \ifx#1l%
+ \llap{\ignorespaces #2\hskip\inmarginspacing}%
+ \else
+ \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+ \fi
+ \null
+ }%
+}}
+\def\inleftmargin{\doinmargin l}
+\def\inrightmargin{\doinmargin r}
+%
+% @inmargin{TEXT [, RIGHT-TEXT]}
+% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+% else use TEXT for both).
+%
+\def\inmargin#1{\parseinmargin #1,,\finish}
+\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \def\lefttext{#1}% have both texts
+ \def\righttext{#2}%
+ \else
+ \def\lefttext{#1}% have only one text
+ \def\righttext{#1}%
+ \fi
+ %
+ \ifodd\pageno
+ \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+ \else
+ \def\temp{\inleftmargin\lefttext}%
+ \fi
+ \temp
+}
% @include file insert text of that file as input.
+%
+\def\include{\parseargusing\filenamecatcodes\includezzz}
+\def\includezzz#1{%
+ \pushthisfilestack
+ \def\thisfile{#1}%
+ {%
+ \makevalueexpandable
+ \def\temp{\input #1 }%
+ \expandafter
+ }\temp
+ \popthisfilestack
+}
+\def\filenamecatcodes{%
+ \catcode`\\=\other
+ \catcode`~=\other
+ \catcode`^=\other
+ \catcode`_=\other
+ \catcode`|=\other
+ \catcode`<=\other
+ \catcode`>=\other
+ \catcode`+=\other
+ \catcode`-=\other
+}
-\def\include{\parsearg\includezzz}
-\def\includezzz #1{{\def\thisfile{#1}\input #1
-}}
+\def\pushthisfilestack{%
+ \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
+}
+\def\pushthisfilestackX{%
+ \expandafter\pushthisfilestackY\thisfile\StackTerm
+}
+\def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
+ \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
+}
-\def\thisfile{}
+\def\popthisfilestack{\errthisfilestackempty}
+\def\errthisfilestackempty{\errmessage{Internal error:
+ the stack of filenames is empty.}}
-% @center line outputs that line, centered
+\def\thisfile{}
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
+% @center line
+% outputs that line, centered.
+%
+\parseargdef\center{%
+ \ifhmode
+ \let\next\centerH
+ \else
+ \let\next\centerV
+ \fi
+ \next{\hfil \ignorespaces#1\unskip \hfil}%
+}
+\def\centerH#1{%
+ {%
+ \hfil\break
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{#1}%
+ \break
+ }%
+}
+\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
% @sp n outputs n lines of vertical space
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\par \vskip #1\baselineskip}
+\parseargdef\sp{\vskip #1\baselineskip}
% @comment ...line which is ignored...
% @c is the same as @comment
% @ignore ... @end ignore is another way to write a comment
-\def\comment{\parsearg \commentxxx}
-
-\def\commentxxx #1{}
+\def\comment{\begingroup \catcode`\^^M=\other%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
+\commentxxx}
+{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
\let\c=\comment
-\long\def\ignore #1\end ignore{}
+% @paragraphindent NCHARS
+% We'll use ems for NCHARS, close enough.
+% NCHARS can also be the word `asis' or `none'.
+% We cannot feasibly implement @paragraphindent asis, though.
+%
+\def\asisword{asis} % no translation, these are keywords
+\def\noneword{none}
+%
+\parseargdef\paragraphindent{%
+ \def\temp{#1}%
+ \ifx\temp\asisword
+ \else
+ \ifx\temp\noneword
+ \defaultparindent = 0pt
+ \else
+ \defaultparindent = #1em
+ \fi
+ \fi
+ \parindent = \defaultparindent
+}
-\outer\def\ifset{\parsearg\ifsetxxx}
+% @exampleindent NCHARS
+% We'll use ems for NCHARS like @paragraphindent.
+% It seems @exampleindent asis isn't necessary, but
+% I preserve it to make it similar to @paragraphindent.
+\parseargdef\exampleindent{%
+ \def\temp{#1}%
+ \ifx\temp\asisword
+ \else
+ \ifx\temp\noneword
+ \lispnarrowing = 0pt
+ \else
+ \lispnarrowing = #1em
+ \fi
+ \fi
+}
-\def\ifsetxxx #1#2\end ifset{%
-\expandafter\ifx\csname IF#1\endcsname\relax \else #2\fi}
+% @firstparagraphindent WORD
+% If WORD is `none', then suppress indentation of the first paragraph
+% after a section heading. If WORD is `insert', then do indent at such
+% paragraphs.
+%
+% The paragraph indentation is suppressed or not by calling
+% \suppressfirstparagraphindent, which the sectioning commands do.
+% We switch the definition of this back and forth according to WORD.
+% By default, we suppress indentation.
+%
+\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+\def\insertword{insert}
+%
+\parseargdef\firstparagraphindent{%
+ \def\temp{#1}%
+ \ifx\temp\noneword
+ \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+ \else\ifx\temp\insertword
+ \let\suppressfirstparagraphindent = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @firstparagraphindent option `\temp'}%
+ \fi\fi
+}
-\outer\def\ifclear{\parsearg\ifclearxxx}
+% Here is how we actually suppress indentation. Redefine \everypar to
+% \kern backwards by \parindent, and then reset itself to empty.
+%
+% We also make \indent itself not actually do anything until the next
+% paragraph.
+%
+\gdef\dosuppressfirstparagraphindent{%
+ \gdef\indent{%
+ \restorefirstparagraphindent
+ \indent
+ }%
+ \gdef\noindent{%
+ \restorefirstparagraphindent
+ \noindent
+ }%
+ \global\everypar = {%
+ \kern -\parindent
+ \restorefirstparagraphindent
+ }%
+}
-\def\ifclearxxx #1#2\end ifclear{%
-\expandafter\ifx\csname IF#1\endcsname\relax #2\fi}
+\gdef\restorefirstparagraphindent{%
+ \global \let \indent = \ptexindent
+ \global \let \noindent = \ptexnoindent
+ \global \everypar = {}%
+}
-% Some texinfo constructs that are trivial in tex
-\def\iftex{}
-\def\Eiftex{}
-\long\def\ifinfo #1\end ifinfo{}
-\long\def\menu #1\end menu{}
+% @asis just yields its argument. Used with @table, for example.
+%
\def\asis#1{#1}
-\def\node{\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\lastnode=\relax
+% @math outputs its argument in math mode.
+%
+% One complication: _ usually means subscripts, but it could also mean
+% an actual _ character, as in @math{@var{some_variable} + 1}. So make
+% _ active, and distinguish by seeing if the current family is \slfam,
+% which is what @var uses.
+{
+ \catcode`\_ = \active
+ \gdef\mathunderscore{%
+ \catcode`\_=\active
+ \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+ }
+}
+% Another complication: we want \\ (and @\) to output a \ character.
+% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
+% this is not advertised and we don't care. Texinfo does not
+% otherwise define @\.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+ \tex
+ \mathunderscore
+ \let\\ = \mathbackslash
+ \mathactive
+ $\finishmath
+}
+\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
+
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an argument
+% to a command which sets the catcodes (such as @item or @section).
+%
+{
+ \catcode`^ = \active
+ \catcode`< = \active
+ \catcode`> = \active
+ \catcode`+ = \active
+ \gdef\mathactive{%
+ \let^ = \ptexhat
+ \let< = \ptexless
+ \let> = \ptexgtr
+ \let+ = \ptexplus
+ }
+}
-\def\donoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\setref{\lastnode}\fi
-\let\lastnode=\relax}
+% @bullet and @minus need the same treatment as @math, just above.
+\def\bullet{$\ptexbullet$}
+\def\minus{$-$}
+
+% @dots{} outputs an ellipsis using the current font.
+% We do .5em per period so that it has the same spacing in a typewriter
+% font as three actual period characters.
+%
+\def\dots{%
+ \leavevmode
+ \hbox to 1.5em{%
+ \hskip 0pt plus 0.25fil
+ .\hfil.\hfil.%
+ \hskip 0pt plus 0.5fil
+ }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+ \dots
+ \spacefactor=\endofsentencespacefactor
+}
-\def\unnumbnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi
-\let\lastnode=\relax}
+% @comma{} is so commas can be inserted into text without messing up
+% Texinfo's parsing.
+%
+\let\comma = ,
+% @refill is a no-op.
\let\refill=\relax
-\let\setfilename=\comment
+% If working on a large document in chapters, it is convenient to
+% be able to disable indexing, cross-referencing, and contents, for test runs.
+% This is done with @novalidate (before @setfilename).
+%
+\newif\iflinks \linkstrue % by default we want the aux files.
+\let\novalidate = \linksfalse
+
+% @setfilename is done at the beginning of every texinfo file.
+% So open here the files we need to have open while reading the input.
+% This makes it possible to make a .fmt file for texinfo.
+\def\setfilename{%
+ \fixbackslash % Turn off hack to swallow `\input texinfo'.
+ \iflinks
+ \tryauxfile
+ % Open the new aux file. TeX will close it automatically at exit.
+ \immediate\openout\auxfile=\jobname.aux
+ \fi % \openindices needs to do some work in any case.
+ \openindices
+ \let\setfilename=\comment % Ignore extra @setfilename cmds.
+ %
+ % If texinfo.cnf is present on the system, read it.
+ % Useful for site-wide @afourpaper, etc.
+ \openin 1 texinfo.cnf
+ \ifeof 1 \else \input texinfo.cnf \fi
+ \closein 1
+ %
+ \comment % Ignore the actual filename.
+}
+
+% Called from \setfilename.
+%
+\def\openindices{%
+ \newindex{cp}%
+ \newcodeindex{fn}%
+ \newcodeindex{vr}%
+ \newcodeindex{tp}%
+ \newcodeindex{ky}%
+ \newcodeindex{pg}%
+}
+
+% @bye.
+\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+
+
+\message{pdf,}
+% adobe `portable' document format
+\newcount\tempnum
+\newcount\lnkcount
+\newtoks\filename
+\newcount\filenamelength
+\newcount\pgn
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newbox\boxA
+\newcount\countA
+\newif\ifpdf
+\newif\ifpdfmakepagedest
+
+% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
+% can be set). So we test for \relax and 0 as well as \undefined,
+% borrowed from ifpdf.sty.
+\ifx\pdfoutput\undefined
+\else
+ \ifx\pdfoutput\relax
+ \else
+ \ifcase\pdfoutput
+ \else
+ \pdftrue
+ \fi
+ \fi
+\fi
+
+% PDF uses PostScript string constants for the names of xref targets,
+% for display in the outlines, and in other places. Thus, we have to
+% double any backslashes. Otherwise, a name like "\node" will be
+% interpreted as a newline (\n), followed by o, d, e. Not good.
+% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
+% (and related messages, the final outcome is that it is up to the TeX
+% user to double the backslashes and otherwise make the string valid, so
+% that's what we do).
+
+% double active backslashes.
+%
+{\catcode`\@=0 \catcode`\\=\active
+ @gdef@activebackslashdouble{%
+ @catcode`@\=@active
+ @let\=@doublebackslash}
+}
+
+% To handle parens, we must adopt a different approach, since parens are
+% not active characters. hyperref.dtx (which has the same problem as
+% us) handles it with this amazing macro to replace tokens. I've
+% tinkered with it a little for texinfo, but it's definitely from there.
+%
+% #1 is the tokens to replace.
+% #2 is the replacement.
+% #3 is the control sequence with the string.
+%
+\def\HyPsdSubst#1#2#3{%
+ \def\HyPsdReplace##1#1##2\END{%
+ ##1%
+ \ifx\\##2\\%
+ \else
+ #2%
+ \HyReturnAfterFi{%
+ \HyPsdReplace##2\END
+ }%
+ \fi
+ }%
+ \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
+}
+\long\def\HyReturnAfterFi#1\fi{\fi#1}
+
+% #1 is a control sequence in which to do the replacements.
+\def\backslashparens#1{%
+ \xdef#1{#1}% redefine it as its expansion; the definition is simply
+ % \lastnode when called from \setref -> \pdfmkdest.
+ \HyPsdSubst{(}{\realbackslash(}{#1}%
+ \HyPsdSubst{)}{\realbackslash)}{#1}%
+}
+
+\ifpdf
+ \input pdfcolor
+ \pdfcatalog{/PageMode /UseOutlines}%
+ \def\dopdfimage#1#2#3{%
+ \def\imagewidth{#2}%
+ \def\imageheight{#3}%
+ % without \immediate, pdftex seg faults when the same image is
+ % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
+ \ifnum\pdftexversion < 14
+ \immediate\pdfimage
+ \else
+ \immediate\pdfximage
+ \fi
+ \ifx\empty\imagewidth\else width \imagewidth \fi
+ \ifx\empty\imageheight\else height \imageheight \fi
+ \ifnum\pdftexversion<13
+ #1.pdf%
+ \else
+ {#1.pdf}%
+ \fi
+ \ifnum\pdftexversion < 14 \else
+ \pdfrefximage \pdflastximage
+ \fi}
+ \def\pdfmkdest#1{{%
+ % We have to set dummies so commands such as @code, and characters
+ % such as \, aren't expanded when present in a section title.
+ \atdummies
+ \activebackslashdouble
+ \def\pdfdestname{#1}%
+ \backslashparens\pdfdestname
+ \pdfdest name{\pdfdestname} xyz%
+ }}%
+ %
+ % used to mark target names; must be expandable.
+ \def\pdfmkpgn#1{#1}%
+ %
+ \let\linkcolor = \Blue % was Cyan, but that seems light?
+ \def\endlink{\Black\pdfendlink}
+ % Adding outlines to PDF; macros for calculating structure of outlines
+ % come from Petr Olsak
+ \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+ \else \csname#1\endcsname \fi}
+ \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
+ \advance\tempnum by 1
+ \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
+ %
+ % #1 is the section text, which is what will be displayed in the
+ % outline by the pdf viewer. #2 is the pdf expression for the number
+ % of subentries (or empty, for subsubsections). #3 is the node text,
+ % which might be empty if this toc entry had no corresponding node.
+ % #4 is the page number
+ %
+ \def\dopdfoutline#1#2#3#4{%
+ % Generate a link to the node text if that exists; else, use the
+ % page number. We could generate a destination for the section
+ % text in the case where a section has no node, but it doesn't
+ % seem worth the trouble, since most documents are normally structured.
+ \def\pdfoutlinedest{#3}%
+ \ifx\pdfoutlinedest\empty
+ \def\pdfoutlinedest{#4}%
+ \else
+ % Doubled backslashes in the name.
+ {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
+ \backslashparens\pdfoutlinedest}%
+ \fi
+ %
+ % Also double the backslashes in the display string.
+ {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
+ \backslashparens\pdfoutlinetext}%
+ %
+ \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+ }
+ %
+ \def\pdfmakeoutlines{%
+ \begingroup
+ % Thanh's hack / proper braces in bookmarks
+ \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
+ \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
+ %
+ % Read toc silently, to get counts of subentries for \pdfoutline.
+ \def\numchapentry##1##2##3##4{%
+ \def\thischapnum{##2}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsecentry##1##2##3##4{%
+ \advancenumber{chap\thischapnum}%
+ \def\thissecnum{##2}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsubsecentry##1##2##3##4{%
+ \advancenumber{sec\thissecnum}%
+ \def\thissubsecnum{##2}%
+ }%
+ \def\numsubsubsecentry##1##2##3##4{%
+ \advancenumber{subsec\thissubsecnum}%
+ }%
+ \def\thischapnum{0}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ %
+ % use \def rather than \let here because we redefine \chapentry et
+ % al. a second time, below.
+ \def\appentry{\numchapentry}%
+ \def\appsecentry{\numsecentry}%
+ \def\appsubsecentry{\numsubsecentry}%
+ \def\appsubsubsecentry{\numsubsubsecentry}%
+ \def\unnchapentry{\numchapentry}%
+ \def\unnsecentry{\numsecentry}%
+ \def\unnsubsecentry{\numsubsecentry}%
+ \def\unnsubsubsecentry{\numsubsubsecentry}%
+ \readdatafile{toc}%
+ %
+ % Read toc second time, this time actually producing the outlines.
+ % The `-' means take the \expnumber as the absolute number of
+ % subentries, which we calculated on our first read of the .toc above.
+ %
+ % We use the node names as the destinations.
+ \def\numchapentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+ \def\numsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
+ \def\numsubsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+ \def\numsubsubsecentry##1##2##3##4{% count is always zero
+ \dopdfoutline{##1}{}{##3}{##4}}%
+ %
+ % PDF outlines are displayed using system fonts, instead of
+ % document fonts. Therefore we cannot use special characters,
+ % since the encoding is unknown. For example, the eogonek from
+ % Latin 2 (0xea) gets translated to a | character. Info from
+ % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+ %
+ % xx to do this right, we have to translate 8-bit characters to
+ % their "best" equivalent, based on the @documentencoding. Right
+ % now, I guess we'll just let the pdf reader have its way.
+ \indexnofonts
+ \setupdatafile
+ \catcode`\\=\active \otherbackslash
+ \input \jobname.toc
+ \endgroup
+ }
+ %
+ \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+ \ifx\PP\D\let\nextsp\relax
+ \else\let\nextsp\skipspaces
+ \ifx\p\space\else\addtokens{\filename}{\PP}%
+ \advance\filenamelength by 1
+ \fi
+ \fi
+ \nextsp}
+ \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+ \ifnum\pdftexversion < 14
+ \let \startlink \pdfannotlink
+ \else
+ \let \startlink \pdfstartlink
+ \fi
+ % make a live url in pdf output.
+ \def\pdfurl#1{%
+ \begingroup
+ % it seems we really need yet another set of dummies; have not
+ % tried to figure out what each command should do in the context
+ % of @url. for now, just make @/ a no-op, that's the only one
+ % people have actually reported a problem with.
+ %
+ \normalturnoffactive
+ \def\@{@}%
+ \let\/=\empty
+ \makevalueexpandable
+ \leavevmode\Red
+ \startlink attr{/Border [0 0 0]}%
+ user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+ \endgroup}
+ \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+ \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+ \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+ \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+ \def\maketoks{%
+ \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+ \ifx\first0\adn0
+ \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+ \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else
+ \ifnum0=\countA\else\makelink\fi
+ \ifx\first.\let\next=\done\else
+ \let\next=\maketoks
+ \addtokens{\toksB}{\the\toksD}
+ \ifx\first,\addtokens{\toksB}{\space}\fi
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next}
+ \def\makelink{\addtokens{\toksB}%
+ {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+ \def\pdflink#1{%
+ \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
+ \linkcolor #1\endlink}
+ \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+\else
+ \let\pdfmkdest = \gobble
+ \let\pdfurl = \gobble
+ \let\endlink = \relax
+ \let\linkcolor = \relax
+ \let\pdfmakeoutlines = \relax
+\fi % \ifx\pdfoutput
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{See Info file \file{\losespace#3{}}, node `\losespace#1{}'}
-\def\losespace #1{#1}
\message{fonts,}
-% Font-change commands.
-
-%% Try out Computer Modern fonts at \magstephalf
-\font\tenrm=cmr10 scaled \magstephalf
-\font\tentt=cmtt10 scaled \magstephalf
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\font\tenbf=cmb10 scaled \magstephalf
-\font\tenit=cmti10 scaled \magstephalf
-\font\tensl=cmsl10 scaled \magstephalf
-\font\tensf=cmss10 scaled \magstephalf
-\def\li{\sf}
-\font\tensc=cmcsc10 scaled \magstephalf
-
-% Fonts for @defun, etc.
-\font\defbf=cmbx10 scaled \magstep1 %was 1314
-\let\deftt=\tentt
-\def\df{\let\tt=\deftt \defbf}
-
-% Font for title
-\font\titlerm = cmbx10 scaled \magstep5
-
-% Fonts for indices
-\font\indit=cmti9 \font\indrm=cmr9
-\def\indbf{\indrm} \def\indsl{\indit}
-\def\indexfonts{\let\it=\indit \let\sl=\indsl \let\bf=\indbf \let\rm=\indrm}
-
-% Fonts for headings
-\font\chaprm=cmbx10 scaled \magstep3
-\font\chapit=cmti10 scaled \magstep3
-\font\chapsl=cmsl10 scaled \magstep3
-\font\chaptt=cmtt10 scaled \magstep3
-\font\chapsf=cmss10 scaled \magstep3
+% Change the current font style to #1, remembering it in \curfontstyle.
+% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
+% italics, not bold italics.
+%
+\def\setfontstyle#1{%
+ \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
+ \csname ten#1\endcsname % change the current font
+}
+
+% Select #1 fonts with the current style.
+%
+\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
+
+\def\rm{\fam=0 \setfontstyle{rm}}
+\def\it{\fam=\itfam \setfontstyle{it}}
+\def\sl{\fam=\slfam \setfontstyle{sl}}
+\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}
+
+% Texinfo sort of supports the sans serif font style, which plain TeX does not.
+% So we set up a \sf.
+\newfam\sffam
+\def\sf{\fam=\sffam \setfontstyle{sf}}
+\let\li = \sf % Sometimes we call it \li, not \sf.
+
+% We don't need math for this font style.
+\def\ttsl{\setfontstyle{ttsl}}
+
+% Default leading.
+\newdimen\textleading \textleading = 13.2pt
+
+% Set the baselineskip to #1, and the lineskip and strut size
+% correspondingly. There is no deep meaning behind these magic numbers
+% used as factors; they just match (closely enough) what Knuth defined.
+%
+\def\lineskipfactor{.08333}
+\def\strutheightpercent{.70833}
+\def\strutdepthpercent {.29167}
+%
+\def\setleading#1{%
+ \normalbaselineskip = #1\relax
+ \normallineskip = \lineskipfactor\normalbaselineskip
+ \normalbaselines
+ \setbox\strutbox =\hbox{%
+ \vrule width0pt height\strutheightpercent\baselineskip
+ depth \strutdepthpercent \baselineskip
+ }%
+}
+
+% Set the font macro #1 to the font named #2, adding on the
+% specified font prefix (normally `cm').
+% #3 is the font's design size, #4 is a scale factor
+\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
+
+% Use cm as the default font prefix.
+% To specify the font prefix, you must define \fontprefix
+% before you read in texinfo.tex.
+\ifx\fontprefix\undefined
+\def\fontprefix{cm}
+\fi
+% Support font families that don't use the same naming scheme as CM.
+\def\rmshape{r}
+\def\rmbshape{bx} %where the normal face is bold
+\def\bfshape{b}
+\def\bxshape{bx}
+\def\ttshape{tt}
+\def\ttbshape{tt}
+\def\ttslshape{sltt}
+\def\itshape{ti}
+\def\itbshape{bxti}
+\def\slshape{sl}
+\def\slbshape{bxsl}
+\def\sfshape{ss}
+\def\sfbshape{ss}
+\def\scshape{csc}
+\def\scbshape{csc}
+
+% Text fonts (11.2pt, magstep1).
+\def\textnominalsize{11pt}
+\edef\mainmagstep{\magstephalf}
+\setfont\textrm\rmshape{10}{\mainmagstep}
+\setfont\texttt\ttshape{10}{\mainmagstep}
+\setfont\textbf\bfshape{10}{\mainmagstep}
+\setfont\textit\itshape{10}{\mainmagstep}
+\setfont\textsl\slshape{10}{\mainmagstep}
+\setfont\textsf\sfshape{10}{\mainmagstep}
+\setfont\textsc\scshape{10}{\mainmagstep}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstep1}
+\setfont\deftt\ttshape{10}{\magstep1}
+\setfont\defttsl\ttslshape{10}{\magstep1}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+
+% Fonts for indices, footnotes, small examples (9pt).
+\def\smallnominalsize{9pt}
+\setfont\smallrm\rmshape{9}{1000}
+\setfont\smalltt\ttshape{9}{1000}
+\setfont\smallbf\bfshape{10}{900}
+\setfont\smallit\itshape{9}{1000}
+\setfont\smallsl\slshape{9}{1000}
+\setfont\smallsf\sfshape{9}{1000}
+\setfont\smallsc\scshape{10}{900}
+\setfont\smallttsl\ttslshape{10}{900}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+
+% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
+\setfont\smallerrm\rmshape{8}{1000}
+\setfont\smallertt\ttshape{8}{1000}
+\setfont\smallerbf\bfshape{10}{800}
+\setfont\smallerit\itshape{8}{1000}
+\setfont\smallersl\slshape{8}{1000}
+\setfont\smallersf\sfshape{8}{1000}
+\setfont\smallersc\scshape{10}{800}
+\setfont\smallerttsl\ttslshape{10}{800}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
+\setfont\titlerm\rmbshape{12}{\magstep3}
+\setfont\titleit\itbshape{10}{\magstep4}
+\setfont\titlesl\slbshape{10}{\magstep4}
+\setfont\titlett\ttbshape{12}{\magstep3}
+\setfont\titlettsl\ttslshape{10}{\magstep4}
+\setfont\titlesf\sfbshape{17}{\magstep1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}
+\font\titlei=cmmi12 scaled \magstep3
+\font\titlesy=cmsy10 scaled \magstep4
+\def\authorrm{\secrm}
+\def\authortt{\sectt}
+
+% Chapter (and unnumbered) fonts (17.28pt).
+\def\chapnominalsize{17pt}
+\setfont\chaprm\rmbshape{12}{\magstep2}
+\setfont\chapit\itbshape{10}{\magstep3}
+\setfont\chapsl\slbshape{10}{\magstep3}
+\setfont\chaptt\ttbshape{12}{\magstep2}
+\setfont\chapttsl\ttslshape{10}{\magstep3}
+\setfont\chapsf\sfbshape{17}{1000}
\let\chapbf=\chaprm
+\setfont\chapsc\scbshape{10}{\magstep3}
+\font\chapi=cmmi12 scaled \magstep2
+\font\chapsy=cmsy10 scaled \magstep3
+
+% Section fonts (14.4pt).
+\def\secnominalsize{14pt}
+\setfont\secrm\rmbshape{12}{\magstep1}
+\setfont\secit\itbshape{10}{\magstep2}
+\setfont\secsl\slbshape{10}{\magstep2}
+\setfont\sectt\ttbshape{12}{\magstep1}
+\setfont\secttsl\ttslshape{10}{\magstep2}
+\setfont\secsf\sfbshape{12}{\magstep1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}
+\font\seci=cmmi12 scaled \magstep1
+\font\secsy=cmsy10 scaled \magstep2
+
+% Subsection fonts (13.15pt).
+\def\ssecnominalsize{13pt}
+\setfont\ssecrm\rmbshape{12}{\magstephalf}
+\setfont\ssecit\itbshape{10}{1315}
+\setfont\ssecsl\slbshape{10}{1315}
+\setfont\ssectt\ttbshape{12}{\magstephalf}
+\setfont\ssecttsl\ttslshape{10}{1315}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1315}
+\font\sseci=cmmi12 scaled \magstephalf
+\font\ssecsy=cmsy10 scaled 1315
+
+% Reduced fonts for @acro in text (10pt).
+\def\reducednominalsize{10pt}
+\setfont\reducedrm\rmshape{10}{1000}
+\setfont\reducedtt\ttshape{10}{1000}
+\setfont\reducedbf\bfshape{10}{1000}
+\setfont\reducedit\itshape{10}{1000}
+\setfont\reducedsl\slshape{10}{1000}
+\setfont\reducedsf\sfshape{10}{1000}
+\setfont\reducedsc\scshape{10}{1000}
+\setfont\reducedttsl\ttslshape{10}{1000}
+\font\reducedi=cmmi10
+\font\reducedsy=cmsy10
+
+% In order for the font changes to affect most math symbols and letters,
+% we have to define the \textfont of the standard families. Since
+% texinfo doesn't allow for producing subscripts and superscripts except
+% in the main text, we don't bother to reset \scriptfont and
+% \scriptscriptfont (which would also require loading a lot more fonts).
+%
+\def\resetmathfonts{%
+ \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
+ \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
+ \textfont\ttfam=\tentt \textfont\sffam=\tensf
+}
+
+% The font-changing commands redefine the meanings of \tenSTYLE, instead
+% of just \STYLE. We do this because \STYLE needs to also set the
+% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire
+% \tenSTYLE to set the current font.
+%
+% Each font-changing command also sets the names \lsize (one size lower)
+% and \lllsize (three sizes lower). These relative commands are used in
+% the LaTeX logo and acronyms.
+%
+% This all needs generalizing, badly.
+%
+\def\textfonts{%
+ \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
+ \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
+ \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+ \let\tenttsl=\textttsl
+ \def\curfontsize{text}%
+ \def\lsize{reduced}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{\textleading}}
+\def\titlefonts{%
+ \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
+ \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
+ \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
+ \let\tenttsl=\titlettsl
+ \def\curfontsize{title}%
+ \def\lsize{chap}\def\lllsize{subsec}%
+ \resetmathfonts \setleading{25pt}}
+\def\titlefont#1{{\titlefonts\rm #1}}
+\def\chapfonts{%
+ \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
+ \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
+ \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
+ \let\tenttsl=\chapttsl
+ \def\curfontsize{chap}%
+ \def\lsize{sec}\def\lllsize{text}%
+ \resetmathfonts \setleading{19pt}}
+\def\secfonts{%
+ \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
+ \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
+ \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
+ \let\tenttsl=\secttsl
+ \def\curfontsize{sec}%
+ \def\lsize{subsec}\def\lllsize{reduced}%
+ \resetmathfonts \setleading{16pt}}
+\def\subsecfonts{%
+ \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
+ \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
+ \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
+ \let\tenttsl=\ssecttsl
+ \def\curfontsize{ssec}%
+ \def\lsize{text}\def\lllsize{small}%
+ \resetmathfonts \setleading{15pt}}
+\let\subsubsecfonts = \subsecfonts
+\def\reducedfonts{%
+ \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
+ \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
+ \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
+ \let\tenttsl=\reducedttsl
+ \def\curfontsize{reduced}%
+ \def\lsize{small}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{10.5pt}}
+\def\smallfonts{%
+ \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
+ \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
+ \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
+ \let\tenttsl=\smallttsl
+ \def\curfontsize{small}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{10.5pt}}
+\def\smallerfonts{%
+ \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
+ \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
+ \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
+ \let\tenttsl=\smallerttsl
+ \def\curfontsize{smaller}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{9.5pt}}
+
+% Set the fonts to use with the @small... environments.
+\let\smallexamplefonts = \smallfonts
+
+% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
+% can fit this many characters:
+% 8.5x11=86 smallbook=72 a4=90 a5=69
+% If we use \scriptfonts (8pt), then we can fit this many characters:
+% 8.5x11=90+ smallbook=80 a4=90+ a5=77
+% For me, subjectively, the few extra characters that fit aren't worth
+% the additional smallness of 8pt. So I'm making the default 9pt.
+%
+% By the way, for comparison, here's what fits with @example (10pt):
+% 8.5x11=71 smallbook=60 a4=75 a5=58
+%
+% I wish the USA used A4 paper.
+% --karl, 24jan03.
+
+
+% Set up the default fonts, so we can use them for creating boxes.
+%
+\textfonts \rm
+
+% Define these so they can be easily changed for other fonts.
+\def\angleleft{$\langle$}
+\def\angleright{$\rangle$}
-\font\secrm=cmbx10 scaled \magstep2
-\font\secit=cmti10 scaled \magstep2
-\font\secsl=cmsl10 scaled \magstep2
-\font\sectt=cmtt10 scaled \magstep2
-\font\secsf=cmss10 scaled \magstep2
-\let\secbf=\secrm
-
-\font\ssecrm=cmbx10 scaled \magstep1
-\font\ssecit=cmti10 scaled \magstep1
-\font\ssecsl=cmsl10 scaled \magstep1
-\font\ssectt=cmtt10 scaled \magstep1
-\font\ssecsf=cmss10 scaled \magstep1
-\let\ssecbf=\ssecrm
-
-\def\textfonts{\let\rm=\tenrm\let\it=\tenit\let\sl=\tensl\let\bf=\tenbf%
-\let\sc=\tensc\let\sf=\tensf}
-\def\chapfonts{\let\rm=\chaprm\let\it=\chapit\let\sl=\chapsl\let\bf=\chapbf\let\tt=\chaptt\let\sf=\chapsf}
-\def\secfonts{\let\rm=\secrm\let\it=\secit\let\sl=\secsl\let\bf=\secbf\let\tt=\sectt\let\sf=\secsf}
-\def\subsecfonts{\let\rm=\ssecrm\let\it=\ssecit\let\sl=\ssecsl\let\bf=\ssecbf\let\tt=\ssectt\let\sf=\ssecsf}
% Count depth in font-changes, for error checks
\newcount\fontdepth \fontdepth=0
+% Fonts for short table of contents.
+\setfont\shortcontrm\rmshape{12}{1000}
+\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}
+\setfont\shortconttt\ttshape{12}{1000}
+
%% Add scribe-like font environments, plus @l for inline lisp (usually sans
%% serif) and @ii for TeX italic
-\def\i#1{{\sl #1}}
-\let\var=\i
-\let\dfn=\i
-\let\emph=\i
-\let\cite=\i
+% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
+% unless the following character is such as not to need one.
+\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
+ \ptexslash\fi\fi\fi}
+\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
+\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
+% like \smartslanted except unconditionally uses \ttsl.
+% @var is set to this for defun arguments.
+\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
+
+% like \smartslanted except unconditionally use \sl. We never want
+% ttsl for book titles, do we?
+\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
+
+\let\i=\smartitalic
+\let\slanted=\smartslanted
+\let\var=\smartslanted
+\let\dfn=\smartslanted
+\let\emph=\smartitalic
+
+% @b, explicit bold.
\def\b#1{{\bf #1}}
\let\strong=\b
-\def\t#1{{\tt \rawbackslash \frenchspacing #1}\null}
-\let\ttfont = \t
-\let\kbd=\t
-\let\code=\t
-\def\samp #1{`{\tt \rawbackslash \frenchspacing #1}'\null}
-\def\key #1{{\tt \uppercase{#1}}\null}
+% @sansserif, explicit sans.
+\def\sansserif#1{{\sf #1}}
+
+% We can't just use \exhyphenpenalty, because that only has effect at
+% the end of a paragraph. Restore normal hyphenation at the end of the
+% group within which \nohyphenation is presumably called.
+%
+\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
+\def\restorehyphenation{\hyphenchar\font = `- }
+
+% Set sfcode to normal for the chars that usually have another value.
+% Can't use plain's \frenchspacing because it uses the `\x notation, and
+% sometimes \x has an active definition that messes things up.
+%
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dotChar = `\.
+\chardef\exclamChar= `\!
+\chardef\questChar = `\?
+\chardef\semiChar = `\;
+%
+\catcode`@=11
+ \def\plainfrenchspacing{%
+ \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+ \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+ \def\endofsentencespacefactor{1000}% for @. and friends
+ }
+ \def\plainnonfrenchspacing{%
+ \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
+ \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
+ \def\endofsentencespacefactor{3000}% for @. and friends
+ }
+\catcode`@=\other
+\def\endofsentencespacefactor{3000}% default
+
+\def\t#1{%
+ {\tt \rawbackslash \plainfrenchspacing #1}%
+ \null
+}
+\def\samp#1{`\tclose{#1}'\null}
+\setfont\keyrm\rmshape{8}{1000}
+\font\keysy=cmsy9
+\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+ \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+ \vbox{\hrule\kern-0.4pt
+ \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+ \kern-0.4pt\hrule}%
+ \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+% The old definition, with no lozenge:
+%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+% @file, @option are the same as @samp.
\let\file=\samp
+\let\option=\samp
+
+% @code is a modification of @t,
+% which makes spaces the same size as normal in the surrounding text.
+\def\tclose#1{%
+ {%
+ % Change normal interword space to be same as for the current font.
+ \spaceskip = \fontdimen2\font
+ %
+ % Switch to typewriter.
+ \tt
+ %
+ % But `\ ' produces the large typewriter interword space.
+ \def\ {{\spaceskip = 0pt{} }}%
+ %
+ % Turn off hyphenation.
+ \nohyphenation
+ %
+ \rawbackslash
+ \plainfrenchspacing
+ #1%
+ }%
+ \null
+}
-\def\l#1{{\li #1}\null}
+% We *must* turn on hyphenation at `-' and `_' in @code.
+% Otherwise, it is too hard to avoid overfull hboxes
+% in the Emacs manual, the Library manual, etc.
-\def\r#1{{\rm #1}}
-\def\s#1{{\sc #1}}
-\def\ii#1{{\it #1}}
+% Unfortunately, TeX uses one parameter (\hyphenchar) to control
+% both hyphenation at - and hyphenation within words.
+% We must therefore turn them both off (\tclose does that)
+% and arrange explicitly to hyphenate at a dash.
+% -- rms.
+{
+ \catcode`\-=\active
+ \catcode`\_=\active
+ %
+ \global\def\code{\begingroup
+ \catcode`\-=\active \catcode`\_=\active
+ \ifallowcodebreaks
+ \let-\codedash
+ \let_\codeunder
+ \else
+ \let-\realdash
+ \let_\realunder
+ \fi
+ \codex
+ }
+}
-\def\titlefont#1{{\titlerm #1}}
+\def\realdash{-}
+\def\codedash{-\discretionary{}{}{}}
+\def\codeunder{%
+ % this is all so @math{@code{var_name}+1} can work. In math mode, _
+ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+ % will therefore expand the active definition of _, which is us
+ % (inside @code that is), therefore an endless loop.
+ \ifusingtt{\ifmmode
+ \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+ \else\normalunderscore \fi
+ \discretionary{}{}{}}%
+ {\_}%
+}
+\def\codex #1{\tclose{#1}\endgroup}
+
+% An additional complication: the above will allow breaks after, e.g.,
+% each of the four underscores in __typeof__. This is undesirable in
+% some manuals, especially if they don't have long identifiers in
+% general. @allowcodebreaks provides a way to control this.
+%
+\newif\ifallowcodebreaks \allowcodebreakstrue
+
+\def\keywordtrue{true}
+\def\keywordfalse{false}
+
+\parseargdef\allowcodebreaks{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\keywordtrue
+ \allowcodebreakstrue
+ \else\ifx\txiarg\keywordfalse
+ \allowcodebreaksfalse
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
+ \fi\fi
+}
-\def\titlepage{\begingroup \parindent=0pt \hbox{}%
-\let\oldpage=\page
-\def\page{\oldpage \hbox{}}}
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+% `example' (@kbd uses ttsl only inside of @example and friends),
+% or `code' (@kbd uses normal tty font always).
+\parseargdef\kbdinputstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\worddistinct
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+ \else\ifx\txiarg\wordexample
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+ \else\ifx\txiarg\wordcode
+ \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
+ \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct.'
+\kbdinputstyle distinct
+
+\def\xkey{\key}
+\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
+\ifx\one\xkey\ifx\threex\three \key{#2}%
+\else{\tclose{\kbdfont\look}}\fi
+\else{\tclose{\kbdfont\look}}\fi}
+
+% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
+\let\indicateurl=\code
+\let\env=\code
+\let\command=\code
+
+% @uref (abbreviation for `urlref') takes an optional (comma-separated)
+% second argument specifying the text to display and an optional third
+% arg as text to display instead of (rather than in addition to) the url
+% itself. First (mandatory) arg is the url. Perhaps eventually put in
+% a hypertex \special here.
+%
+\def\uref#1{\douref #1,,,\finish}
+\def\douref#1,#2,#3,#4\finish{\begingroup
+ \unsepspaces
+ \pdfurl{#1}%
+ \setbox0 = \hbox{\ignorespaces #3}%
+ \ifdim\wd0 > 0pt
+ \unhbox0 % third arg given, show only that
+ \else
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \ifpdf
+ \unhbox0 % PDF: 2nd arg given, show only it
+ \else
+ \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
+ \fi
+ \else
+ \code{#1}% only url given, so show it
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% @url synonym for @uref, since that's how everyone uses it.
+%
+\let\url=\uref
-\def\Etitlepage{\endgroup\page\HEADINGSon}
+% rms does not like angle brackets --karl, 17may97.
+% So now @email is just like @uref, unless we are pdf.
+%
+%\def\email#1{\angleleft{\tt #1}\angleright}
+\ifpdf
+ \def\email#1{\doemail#1,,\finish}
+ \def\doemail#1,#2,#3\finish{\begingroup
+ \unsepspaces
+ \pdfurl{mailto:#1}%
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+ \endlink
+ \endgroup}
+\else
+ \let\email=\uref
+\fi
-% Make altmode in file print out right
+% Check if we are currently using a typewriter font. Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
+
+% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
+% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
+%
+\def\dmn#1{\thinspace #1}
+
+\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
+
+% @l was never documented to mean ``switch to the Lisp font'',
+% and it is not used as such in any manual I can find. We need it for
+% Polish suppressed-l. --karl, 22sep96.
+%\def\l#1{{\li #1}\null}
+
+% Explicit font changes: @r, @sc, undocumented @ii.
+\def\r#1{{\rm #1}} % roman font
+\def\sc#1{{\smallcaps#1}} % smallcaps font
+\def\ii#1{{\it #1}} % italic font
+
+% @acronym for "FBI", "NATO", and the like.
+% We print this one point size smaller, since it's intended for
+% all-uppercase.
+%
+\def\acronym#1{\doacronym #1,,\finish}
+\def\doacronym#1,#2,#3\finish{%
+ {\selectfonts\lsize #1}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+}
+
+% @abbr for "Comput. J." and the like.
+% No font change, but don't do end-of-sentence spacing.
+%
+\def\abbr#1{\doabbr #1,,\finish}
+\def\doabbr#1,#2,#3\finish{%
+ {\plainfrenchspacing #1}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+}
+
+% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
+%
+\def\pounds{{\it\$}}
+
+% @euro{} comes from a separate font, depending on the current style.
+% We use the free feym* fonts from the eurosym package by Henrik
+% Theiling, which support regular, slanted, bold and bold slanted (and
+% "outlined" (blackboard board, sort of) versions, which we don't need).
+% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
+%
+% Although only regular is the truly official Euro symbol, we ignore
+% that. The Euro is designed to be slightly taller than the regular
+% font height.
+%
+% feymr - regular
+% feymo - slanted
+% feybr - bold
+% feybo - bold slanted
+%
+% There is no good (free) typewriter version, to my knowledge.
+% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
+% Hmm.
+%
+% Also doesn't work in math. Do we need to do math with euro symbols?
+% Hope not.
+%
+%
+\def\euro{{\eurofont e}}
+\def\eurofont{%
+ % We set the font at each command, rather than predefining it in
+ % \textfonts and the other font-switching commands, so that
+ % installations which never need the symbol don't have to have the
+ % font installed.
+ %
+ % There is only one designed size (nominal 10pt), so we always scale
+ % that to the current nominal size.
+ %
+ % By the way, simply using "at 1em" works for cmr10 and the like, but
+ % does not work for cmbx10 and other extended/shrunken fonts.
+ %
+ \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
+ %
+ \ifx\curfontstyle\bfstylename
+ % bold:
+ \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
+ \else
+ % regular:
+ \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
+ \fi
+ \thiseurofont
+}
+
+% @registeredsymbol - R in a circle. The font for the R should really
+% be smaller yet, but lllsize is the best we can do for now.
+% Adapted from the plain.tex definition of \copyright.
+%
+\def\registeredsymbol{%
+ $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
+ \hfil\crcr\Orb}}%
+ }$%
+}
+
+% Laurent Siebenmann reports \Orb undefined with:
+% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
+% so we'll define it if necessary.
+%
+\ifx\Orb\undefined
+\def\Orb{\mathhexbox20D}
+\fi
-\catcode `\^^[=\active \def^^[{$\diamondsuit$}
\message{page headings,}
+\newskip\titlepagetopglue \titlepagetopglue = 1.5in
+\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
+
+% First the title page. Must do @settitle before @titlepage.
+\newif\ifseenauthor
+\newif\iffinishedtitlepage
+
+% Do an implicit @contents or @shortcontents after @end titlepage if the
+% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
+%
+\newif\ifsetcontentsaftertitlepage
+ \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
+\newif\ifsetshortcontentsaftertitlepage
+ \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+
+\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+ \endgroup\page\hbox{}\page}
+
+\envdef\titlepage{%
+ % Open one extra group, as we want to close it in the middle of \Etitlepage.
+ \begingroup
+ \parindent=0pt \textfonts
+ % Leave some space at the very top of the page.
+ \vglue\titlepagetopglue
+ % No rule at page bottom unless we print one at the top with @title.
+ \finishedtitlepagetrue
+ %
+ % Most title ``pages'' are actually two pages long, with space
+ % at the top of the second. We don't want the ragged left on the second.
+ \let\oldpage = \page
+ \def\page{%
+ \iffinishedtitlepage\else
+ \finishtitlepage
+ \fi
+ \let\page = \oldpage
+ \page
+ \null
+ }%
+}
+
+\def\Etitlepage{%
+ \iffinishedtitlepage\else
+ \finishtitlepage
+ \fi
+ % It is important to do the page break before ending the group,
+ % because the headline and footline are only empty inside the group.
+ % If we use the new definition of \page, we always get a blank page
+ % after the title page, which we certainly don't want.
+ \oldpage
+ \endgroup
+ %
+ % Need this before the \...aftertitlepage checks so that if they are
+ % in effect the toc pages will come out with page numbers.
+ \HEADINGSon
+ %
+ % If they want short, they certainly want long too.
+ \ifsetshortcontentsaftertitlepage
+ \shortcontents
+ \contents
+ \global\let\shortcontents = \relax
+ \global\let\contents = \relax
+ \fi
+ %
+ \ifsetcontentsaftertitlepage
+ \contents
+ \global\let\contents = \relax
+ \global\let\shortcontents = \relax
+ \fi
+}
+
+\def\finishtitlepage{%
+ \vskip4pt \hrule height 2pt width \hsize
+ \vskip\titlepagebottomglue
+ \finishedtitlepagetrue
+}
+
+%%% Macros to be used within @titlepage:
+
+\let\subtitlerm=\tenrm
+\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
+
+\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+ \let\tt=\authortt}
+
+\parseargdef\title{%
+ \checkenv\titlepage
+ \leftline{\titlefonts\rm #1}
+ % print a rule at the page bottom also.
+ \finishedtitlepagefalse
+ \vskip4pt \hrule height 4pt width \hsize \vskip4pt
+}
+
+\parseargdef\subtitle{%
+ \checkenv\titlepage
+ {\subtitlefont \rightline{#1}}%
+}
+
+% @author should come last, but may come many times.
+% It can also be used inside @quotation.
+%
+\parseargdef\author{%
+ \def\temp{\quotation}%
+ \ifx\thisenv\temp
+ \def\quotationauthor{#1}% printed in \Equotation.
+ \else
+ \checkenv\titlepage
+ \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+ {\authorfont \leftline{#1}}%
+ \fi
+}
+
+
%%% Set up page headings and footings.
\let\thispage=\folio
-\newtoks \evenheadline % Token sequence for heading line of even pages
-\newtoks \oddheadline % Token sequence for heading line of odd pages
-\newtoks \evenfootline % Token sequence for footing line of even pages
-\newtoks \oddfootline % Token sequence for footing line of odd pages
+\newtoks\evenheadline % headline on even pages
+\newtoks\oddheadline % headline on odd pages
+\newtoks\evenfootline % footline on even pages
+\newtoks\oddfootline % footline on odd pages
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}}
+% Now make TeX use those variables
+\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
+ \else \the\evenheadline \fi}}
+\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
+ \else \the\evenfootline \fi}\HEADINGShook}
+\let\HEADINGShook=\relax
% Commands to set those variables.
% For example, this is what @headings on does
@@ -534,92 +2272,123 @@
% @evenfooting @thisfile||
% @oddfooting ||@thisfile
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
+\def\evenheading{\parsearg\evenheadingxxx}
+\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
+\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
+\def\oddheading{\parsearg\oddheadingxxx}
+\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
+\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\everyheadingxxx #1{\everyheadingyyy #1@|@|@|@|\finish}
-\gdef\everyheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
+\def\evenfooting{\parsearg\evenfootingxxx}
+\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
+\def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+\def\oddfooting{\parsearg\oddfootingxxx}
+\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
+\def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
+ \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
+ %
+ % Leave some space for the footline. Hopefully ok to assume
+ % @evenfooting will not be used by itself.
+ \global\advance\pageheight by -\baselineskip
+ \global\advance\vsize by -\baselineskip
+}
-\gdef\everyfootingxxx #1{\everyfootingyyy #1@|@|@|@|\finish}
-\gdef\everyfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
-\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-%
-}% unbind the catcode of @.
+\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-% @headings on turns them on.
-% @headings off turns them off.
-% By default, they are off.
+
+% @headings double turns headings on for double-sided printing.
+% @headings single turns headings on for single-sided printing.
+% @headings off turns them off.
+% @headings on same as @headings double, retained for compatibility.
+% @headings after turns on double-sided headings after this page.
+% @headings doubleafter turns on double-sided headings after this page.
+% @headings singleafter turns on single-sided headings after this page.
+% By default, they are off at the start of a document,
+% and turned `on' after @end titlepage.
\def\headings #1 {\csname HEADINGS#1\endcsname}
-\def\HEADINGSoff{
+\def\HEADINGSoff{%
\global\evenheadline={\hfil} \global\evenfootline={\hfil}
\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
\HEADINGSoff
-% When we turn headings on, set the page number to 1,
-% Put current file name in lower left corner,
-% Put chapter name on inside top of right hand pages, document
+% When we turn headings on, set the page number to 1.
+% For double-sided printing, put current file name in lower left corner,
+% chapter name on inside top of right hand pages, document
% title on inside top of left hand pages, and page numbers on outside top
% edge of all pages.
-\def\HEADINGSon{
-\pagealignmacro
+\def\HEADINGSdouble{%
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+\let\contentsalignmacro = \chappager
+
+% For single-sided printing, chapter title goes across top left of page,
+% page number on top right.
+\def\HEADINGSsingle{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+\def\HEADINGSon{\HEADINGSdouble}
+
+\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
+\let\HEADINGSdoubleafter=\HEADINGSafter
+\def\HEADINGSdoublex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+
+\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
+\def\HEADINGSsinglex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
}
% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line... specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
+% This produces Day Month Year style of output.
+% Only define if not already defined, in case a txi-??.tex file has set
+% up a different format (e.g., txi-cs.tex does this).
+\ifx\today\undefined
+\def\today{%
+ \number\day\space
+ \ifcase\month
+ \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+ \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+ \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+ \fi
+ \space\number\year}
+\fi
-\message{tables,}
+% @settitle line... specifies the title of the document, for headings.
+% It generates no output of its own.
+\def\thistitle{\putwordNoTitle}
+\def\settitle{\parsearg{\gdef\thistitle}}
-% Tables -- @table, @ftable, @item(x), @kitem(x), @xitem(x).
+
+\message{tables,}
+% Tables -- @table, @ftable, @vtable, @item(x).
% default indentation of table text
\newdimen\tableindent \tableindent=.8in
@@ -631,178 +2400,804 @@ July\or August\or September\or October\or November\or December\fi
% used internally for \itemindent minus \itemmargin
\newdimen\itemmax
-% Note @table and @ftable define @item, @itemx, etc., with these defs.
+% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
+% these defs.
% They also define \itemindex
% to index the item name in whatever manner is desired (perhaps none).
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\par \parsearg\itemzzz}
+\newif\ifitemxneedsnegativevskip
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \par \parsearg\xitemzzz}
+\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\par \parsearg\kitemzzz}
+\def\internalBitem{\smallbreak \parsearg\itemzzz}
+\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}\itemzzz {#1}}
+\def\itemzzz #1{\begingroup %
+ \advance\hsize by -\rightskip
+ \advance\hsize by -\tableindent
+ \setbox0=\hbox{\itemindicate{#1}}%
+ \itemindex{#1}%
+ \nobreak % This prevents a break before @itemx.
+ %
+ % If the item text does not fit in the space we have, put it on a line
+ % by itself, and do not allow a page break either before or after that
+ % line. We do not start a paragraph here because then if the next
+ % command is, e.g., @kindex, the whatsit would get put into the
+ % horizontal list on a line by itself, resulting in extra blank space.
+ \ifdim \wd0>\itemmax
+ %
+ % Make this a paragraph so we get the \parskip glue and wrapping,
+ % but leave it ragged-right.
+ \begingroup
+ \advance\leftskip by-\tableindent
+ \advance\hsize by\tableindent
+ \advance\rightskip by0pt plus1fil
+ \leavevmode\unhbox0\par
+ \endgroup
+ %
+ % We're going to be starting a paragraph, but we don't want the
+ % \parskip glue -- logically it's part of the @item we just started.
+ \nobreak \vskip-\parskip
+ %
+ % Stop a page break at the \parskip glue coming up. However, if
+ % what follows is an environment such as @example, there will be no
+ % \parskip glue; then the negative vskip we just inserted would
+ % cause the example and the item to crash together. So we use this
+ % bizarre value of 10001 as a signal to \aboveenvbreak to insert
+ % \parskip glue after all. Section titles are handled this way also.
+ %
+ \penalty 10001
+ \endgroup
+ \itemxneedsnegativevskipfalse
+ \else
+ % The item text fits into the space. Start a paragraph, so that the
+ % following text (if any) will end up on the same line.
+ \noindent
+ % Do this with kerns and \unhbox so that if there is a footnote in
+ % the item text, it can migrate to the main vertical list and
+ % eventually be printed.
+ \nobreak\kern-\tableindent
+ \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
+ \unhbox0
+ \nobreak\kern\dimen0
+ \endgroup
+ \itemxneedsnegativevskiptrue
+ \fi
+}
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}\itemzzz {#1}}
+\def\item{\errmessage{@item while not in a list environment}}
+\def\itemx{\errmessage{@itemx while not in a list environment}}
-\def\itemzzz #1{\begingroup %
-\advance \hsize by -\rightskip %
-\advance \hsize by -\leftskip %
-\setbox0=\hbox{\itemfont{#1}}%
-\itemindex{#1}%
-\parskip=0in %
-\noindent %
-\ifdim \wd0>\itemmax %
-\vadjust{\penalty 10000}%
-\hbox to \hsize{\hskip -\tableindent\box0\hss}\ %
-\else %
-\hbox to 0pt{\hskip -\tableindent\box0\hss}%
-\fi %
-\endgroup %
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-%% Contains a kludge to get @end[description] to work
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Neccessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\endgroup\afterenvbreak}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
+% @table, @ftable, @vtable.
+\envdef\table{%
+ \let\itemindex\gobble
+ \tablecheck{table}%
+}
+\envdef\ftable{%
+ \def\itemindex ##1{\doind {fn}{\code{##1}}}%
+ \tablecheck{ftable}%
+}
+\envdef\vtable{%
+ \def\itemindex ##1{\doind {vr}{\code{##1}}}%
+ \tablecheck{vtable}%
+}
+\def\tablecheck#1{%
+ \ifnum \the\catcode`\^^M=\active
+ \endgroup
+ \errmessage{This command won't work in this context; perhaps the problem is
+ that we are \inenvironment\thisenv}%
+ \def\next{\doignore{#1}}%
+ \else
+ \let\next\tablex
+ \fi
+ \next
+}
+\def\tablex#1{%
+ \def\itemindicate{#1}%
+ \parsearg\tabley
+}
+\def\tabley#1{%
+ {%
+ \makevalueexpandable
+ \edef\temp{\noexpand\tablez #1\space\space\space}%
+ \expandafter
+ }\temp \endtablez
+}
+\def\tablez #1 #2 #3 #4\endtablez{%
+ \aboveenvbreak
+ \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
+ \ifnum 0#2>0 \tableindent=#2\mil \fi
+ \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
+ \itemmax=\tableindent
+ \advance \itemmax by -\itemmargin
+ \advance \leftskip by \tableindent
+ \exdentamount=\tableindent
+ \parindent = 0pt
+ \parskip = \smallskipamount
+ \ifdim \parskip=0pt \parskip=2pt \fi
+ \let\item = \internalBitem
+ \let\itemx = \internalBitemx
}
+\def\Etable{\endgraf\afterenvbreak}
+\let\Eftable\Etable
+\let\Evtable\Etable
+\let\Eitemize\Etable
+\let\Eenumerate\Etable
% This is the counter used by @enumerate, which is really @itemize
\newcount \itemno
-\def\itemize{\parsearg\itemizezzz}
+\envdef\itemize{\parsearg\doitemize}
+
+\def\doitemize#1{%
+ \aboveenvbreak
+ \itemmax=\itemindent
+ \advance\itemmax by -\itemmargin
+ \advance\leftskip by \itemindent
+ \exdentamount=\itemindent
+ \parindent=0pt
+ \parskip=\smallskipamount
+ \ifdim\parskip=0pt \parskip=2pt \fi
+ \def\itemcontents{#1}%
+ % @itemize with no arg is equivalent to @itemize @bullet.
+ \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+ \let\item=\itemizeitem
+}
-\def\itemizezzz #1{\itemizey {#1}{\Eitemize}}
+% Definition of @item while inside @itemize and @enumerate.
+%
+\def\itemizeitem{%
+ \advance\itemno by 1 % for enumerations
+ {\let\par=\endgraf \smallbreak}% reasonable place to break
+ {%
+ % If the document has an @itemize directly after a section title, a
+ % \nobreak will be last on the list, and \sectionheading will have
+ % done a \vskip-\parskip. In that case, we don't want to zero
+ % parskip, or the item text will crash with the heading. On the
+ % other hand, when there is normal text preceding the item (as there
+ % usually is), we do want to zero parskip, or there would be too much
+ % space. In that case, we won't have a \nobreak before. At least
+ % that's the theory.
+ \ifnum\lastpenalty<10000 \parskip=0in \fi
+ \noindent
+ \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
+ \vadjust{\penalty 1200}}% not good to break after first line of item.
+ \flushcr
+}
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\begingroup %
-\itemno = 0 %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\endgroup\afterenvbreak}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
+% \splitoff TOKENS\endmark defines \first to be the first token in
+% TOKENS, and \rest to be the remainder.
+%
+\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-\def\bullet{$\ptexbullet$}
-\def\minus{$-$}
+% Allow an optional argument of an uppercase letter, lowercase letter,
+% or number, to specify the first label in the enumerated list. No
+% argument is the same as `1'.
+%
+\envparseargdef\enumerate{\enumeratey #1 \endenumeratey}
+\def\enumeratey #1 #2\endenumeratey{%
+ % If we were given no argument, pretend we were given `1'.
+ \def\thearg{#1}%
+ \ifx\thearg\empty \def\thearg{1}\fi
+ %
+ % Detect if the argument is a single token. If so, it might be a
+ % letter. Otherwise, the only valid thing it can be is a number.
+ % (We will always have one token, because of the test we just made.
+ % This is a good thing, since \splitoff doesn't work given nothing at
+ % all -- the first parameter is undelimited.)
+ \expandafter\splitoff\thearg\endmark
+ \ifx\rest\empty
+ % Only one token in the argument. It could still be anything.
+ % A ``lowercase letter'' is one whose \lccode is nonzero.
+ % An ``uppercase letter'' is one whose \lccode is both nonzero, and
+ % not equal to itself.
+ % Otherwise, we assume it's a number.
+ %
+ % We need the \relax at the end of the \ifnum lines to stop TeX from
+ % continuing to look for a <number>.
+ %
+ \ifnum\lccode\expandafter`\thearg=0\relax
+ \numericenumerate % a number (we hope)
+ \else
+ % It's a letter.
+ \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
+ \lowercaseenumerate % lowercase letter
+ \else
+ \uppercaseenumerate % uppercase letter
+ \fi
+ \fi
+ \else
+ % Multiple tokens in the argument. We hope it's a number.
+ \numericenumerate
+ \fi
+}
-\def\enumerate{\itemizey{\the\itemno.}\Eenumerate\flushcr}
+% An @enumerate whose labels are integers. The starting integer is
+% given in \thearg.
+%
+\def\numericenumerate{%
+ \itemno = \thearg
+ \startenumeration{\the\itemno}%
+}
-% Definition of @item while inside @itemize.
+% The starting (lowercase) letter is in \thearg.
+\def\lowercaseenumerate{%
+ \itemno = \expandafter`\thearg
+ \startenumeration{%
+ % Be sure we're not beyond the end of the alphabet.
+ \ifnum\itemno=0
+ \errmessage{No more lowercase letters in @enumerate; get a bigger
+ alphabet}%
+ \fi
+ \char\lccode\itemno
+ }%
+}
+
+% The starting (uppercase) letter is in \thearg.
+\def\uppercaseenumerate{%
+ \itemno = \expandafter`\thearg
+ \startenumeration{%
+ % Be sure we're not beyond the end of the alphabet.
+ \ifnum\itemno=0
+ \errmessage{No more uppercase letters in @enumerate; get a bigger
+ alphabet}
+ \fi
+ \char\uccode\itemno
+ }%
+}
+
+% Call \doitemize, adding a period to the first argument and supplying the
+% common last two arguments. Also subtract one from the initial value in
+% \itemno, since @item increments \itemno.
+%
+\def\startenumeration#1{%
+ \advance\itemno by -1
+ \doitemize{#1.}\flushcr
+}
+
+% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
+% to @enumerate.
+%
+\def\alphaenumerate{\enumerate{a}}
+\def\capsenumerate{\enumerate{A}}
+\def\Ealphaenumerate{\Eenumerate}
+\def\Ecapsenumerate{\Eenumerate}
+
+
+% @multitable macros
+% Amy Hendrickson, 8/18/94, 3/6/96
+%
+% @multitable ... @end multitable will make as many columns as desired.
+% Contents of each column will wrap at width given in preamble. Width
+% can be specified either with sample text given in a template line,
+% or in percent of \hsize, the current width of text on page.
+
+% Table can continue over pages but will only break between lines.
+
+% To make preamble:
+%
+% Either define widths of columns in terms of percent of \hsize:
+% @multitable @columnfractions .25 .3 .45
+% @item ...
+%
+% Numbers following @columnfractions are the percent of the total
+% current hsize to be used for each column. You may use as many
+% columns as desired.
+
+
+% Or use a template:
+% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+% @item ...
+% using the widest term desired in each column.
+
+% Each new table line starts with @item, each subsequent new column
+% starts with @tab. Empty columns may be produced by supplying @tab's
+% with nothing between them for as many times as empty columns are needed,
+% ie, @tab@tab@tab will produce two empty columns.
+
+% @item, @tab do not need to be on their own lines, but it will not hurt
+% if they are.
+
+% Sample multitable:
+
+% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+% @item first col stuff @tab second col stuff @tab third col
+% @item
+% first col stuff
+% @tab
+% second col stuff
+% @tab
+% third col
+% @item first col stuff @tab second col stuff
+% @tab Many paragraphs of text may be used in any column.
+%
+% They will wrap at the width determined by the template.
+% @item@tab@tab This will be in third column.
+% @end multitable
+
+% Default dimensions may be reset by user.
+% @multitableparskip is vertical space between paragraphs in table.
+% @multitableparindent is paragraph indent in table.
+% @multitablecolmargin is horizontal space to be left between columns.
+% @multitablelinespace is space to leave between table items, baseline
+% to baseline.
+% 0pt means it depends on current normal line spacing.
+%
+\newskip\multitableparskip
+\newskip\multitableparindent
+\newdimen\multitablecolspace
+\newskip\multitablelinespace
+\multitableparskip=0pt
+\multitableparindent=6pt
+\multitablecolspace=12pt
+\multitablelinespace=0pt
+
+% Macros used to set up halign preamble:
+%
+\let\endsetuptable\relax
+\def\xendsetuptable{\endsetuptable}
+\let\columnfractions\relax
+\def\xcolumnfractions{\columnfractions}
+\newif\ifsetpercent
+
+% #1 is the @columnfraction, usually a decimal number like .5, but might
+% be just 1. We just use it, whatever it is.
+%
+\def\pickupwholefraction#1 {%
+ \global\advance\colcount by 1
+ \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
+ \setuptable
+}
+
+\newcount\colcount
+\def\setuptable#1{%
+ \def\firstarg{#1}%
+ \ifx\firstarg\xendsetuptable
+ \let\go = \relax
+ \else
+ \ifx\firstarg\xcolumnfractions
+ \global\setpercenttrue
+ \else
+ \ifsetpercent
+ \let\go\pickupwholefraction
+ \else
+ \global\advance\colcount by 1
+ \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+ % separator; typically that is always in the input, anyway.
+ \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+ \fi
+ \fi
+ \ifx\go\pickupwholefraction
+ % Put the argument back for the \pickupwholefraction call, so
+ % we'll always have a period there to be parsed.
+ \def\go{\pickupwholefraction#1}%
+ \else
+ \let\go = \setuptable
+ \fi%
+ \fi
+ \go
+}
+
+% multitable-only commands.
+%
+% @headitem starts a heading row, which we typeset in bold.
+% Assignments have to be global since we are inside the implicit group
+% of an alignment entry. Note that \everycr resets \everytab.
+\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
+%
+% A \tab used to include \hskip1sp. But then the space in a template
+% line is not enough. That is bad. So let's go back to just `&' until
+% we encounter the problem it was intended to solve again.
+% --karl, nathan@acm.org, 20apr99.
+\def\tab{\checkenv\multitable &\the\everytab}%
+
+% @multitable ... @end multitable definitions:
+%
+\newtoks\everytab % insert after every tab.
+%
+\envdef\multitable{%
+ \vskip\parskip
+ \startsavinginserts
+ %
+ % @item within a multitable starts a normal row.
+ % We use \def instead of \let so that if one of the multitable entries
+ % contains an @itemize, we don't choke on the \item (seen as \crcr aka
+ % \endtemplate) expanding \doitemize.
+ \def\item{\crcr}%
+ %
+ \tolerance=9500
+ \hbadness=9500
+ \setmultitablespacing
+ \parskip=\multitableparskip
+ \parindent=\multitableparindent
+ \overfullrule=0pt
+ \global\colcount=0
+ %
+ \everycr = {%
+ \noalign{%
+ \global\everytab={}%
+ \global\colcount=0 % Reset the column counter.
+ % Check for saved footnotes, etc.
+ \checkinserts
+ % Keeps underfull box messages off when table breaks over pages.
+ %\filbreak
+ % Maybe so, but it also creates really weird page breaks when the
+ % table breaks over pages. Wouldn't \vfil be better? Wait until the
+ % problem manifests itself, so it can be fixed for real --karl.
+ }%
+ }%
+ %
+ \parsearg\domultitable
+}
+\def\domultitable#1{%
+ % To parse everything between @multitable and @item:
+ \setuptable#1 \endsetuptable
+ %
+ % This preamble sets up a generic column definition, which will
+ % be used as many times as user calls for columns.
+ % \vtop will set a single line and will also let text wrap and
+ % continue for many paragraphs if desired.
+ \halign\bgroup &%
+ \global\advance\colcount by 1
+ \multistrut
+ \vtop{%
+ % Use the current \colcount to find the correct column width:
+ \hsize=\expandafter\csname col\the\colcount\endcsname
+ %
+ % In order to keep entries from bumping into each other
+ % we will add a \leftskip of \multitablecolspace to all columns after
+ % the first one.
+ %
+ % If a template has been used, we will add \multitablecolspace
+ % to the width of each template entry.
+ %
+ % If the user has set preamble in terms of percent of \hsize we will
+ % use that dimension as the width of the column, and the \leftskip
+ % will keep entries from bumping into each other. Table will start at
+ % left margin and final column will justify at right margin.
+ %
+ % Make sure we don't inherit \rightskip from the outer environment.
+ \rightskip=0pt
+ \ifnum\colcount=1
+ % The first column will be indented with the surrounding text.
+ \advance\hsize by\leftskip
+ \else
+ \ifsetpercent \else
+ % If user has not set preamble in terms of percent of \hsize
+ % we will advance \hsize by \multitablecolspace.
+ \advance\hsize by \multitablecolspace
+ \fi
+ % In either case we will make \leftskip=\multitablecolspace:
+ \leftskip=\multitablecolspace
+ \fi
+ % Ignoring space at the beginning and end avoids an occasional spurious
+ % blank line, when TeX decides to break the line at the space before the
+ % box from the multistrut, so the strut ends up on a line by itself.
+ % For example:
+ % @multitable @columnfractions .11 .89
+ % @item @code{#}
+ % @tab Legal holiday which is valid in major parts of the whole country.
+ % Is automatically provided with highlighting sequences respectively
+ % marking characters.
+ \noindent\ignorespaces##\unskip\multistrut
+ }\cr
+}
+\def\Emultitable{%
+ \crcr
+ \egroup % end the \halign
+ \global\setpercentfalse
+}
+
+\def\setmultitablespacing{%
+ \def\multistrut{\strut}% just use the standard line spacing
+ %
+ % Compute \multitablelinespace (if not defined by user) for use in
+ % \multitableparskip calculation. We used define \multistrut based on
+ % this, but (ironically) that caused the spacing to be off.
+ % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
+\ifdim\multitablelinespace=0pt
+\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
+\global\advance\multitablelinespace by-\ht0
+\fi
+%% Test to see if parskip is larger than space between lines of
+%% table. If not, do nothing.
+%% If so, set to same dimension as multitablelinespace.
+\ifdim\multitableparskip>\multitablelinespace
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi%
+\ifdim\multitableparskip=0pt
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi}
+
+
+\message{conditionals,}
+
+% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+% @ifnotxml always succeed. They currently do nothing; we don't
+% attempt to check whether the conditionals are properly nested. But we
+% have to remember that they are conditionals, so that @end doesn't
+% attempt to close an environment group.
+%
+\def\makecond#1{%
+ \expandafter\let\csname #1\endcsname = \relax
+ \expandafter\let\csname iscond.#1\endcsname = 1
+}
+\makecond{iftex}
+\makecond{ifnotdocbook}
+\makecond{ifnothtml}
+\makecond{ifnotinfo}
+\makecond{ifnotplaintext}
+\makecond{ifnotxml}
+
+% Ignore @ignore, @ifhtml, @ifinfo, and the like.
+%
+\def\direntry{\doignore{direntry}}
+\def\documentdescription{\doignore{documentdescription}}
+\def\docbook{\doignore{docbook}}
+\def\html{\doignore{html}}
+\def\ifdocbook{\doignore{ifdocbook}}
+\def\ifhtml{\doignore{ifhtml}}
+\def\ifinfo{\doignore{ifinfo}}
+\def\ifnottex{\doignore{ifnottex}}
+\def\ifplaintext{\doignore{ifplaintext}}
+\def\ifxml{\doignore{ifxml}}
+\def\ignore{\doignore{ignore}}
+\def\menu{\doignore{menu}}
+\def\xml{\doignore{xml}}
+
+% Ignore text until a line `@end #1', keeping track of nested conditionals.
+%
+% A count to remember the depth of nesting.
+\newcount\doignorecount
+
+\def\doignore#1{\begingroup
+ % Scan in ``verbatim'' mode:
+ \obeylines
+ \catcode`\@ = \other
+ \catcode`\{ = \other
+ \catcode`\} = \other
+ %
+ % Make sure that spaces turn into tokens that match what \doignoretext wants.
+ \spaceisspace
+ %
+ % Count number of #1's that we've seen.
+ \doignorecount = 0
+ %
+ % Swallow text until we reach the matching `@end #1'.
+ \dodoignore{#1}%
+}
+
+{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
+ \obeylines %
+ %
+ \gdef\dodoignore#1{%
+ % #1 contains the command name as a string, e.g., `ifinfo'.
+ %
+ % Define a command to find the next `@end #1'.
+ \long\def\doignoretext##1^^M@end #1{%
+ \doignoretextyyy##1^^M@#1\_STOP_}%
+ %
+ % And this command to find another #1 command, at the beginning of a
+ % line. (Otherwise, we would consider a line `@c @ifset', for
+ % example, to count as an @ifset for nesting.)
+ \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
+ %
+ % And now expand that command.
+ \doignoretext ^^M%
+ }%
+}
+
+\def\doignoreyyy#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty % Nothing found.
+ \let\next\doignoretextzzz
+ \else % Found a nested condition, ...
+ \advance\doignorecount by 1
+ \let\next\doignoretextyyy % ..., look for another.
+ % If we're here, #1 ends with ^^M\ifinfo (for example).
+ \fi
+ \next #1% the token \_STOP_ is present just after this macro.
+}
+
+% We have to swallow the remaining "\_STOP_".
+%
+\def\doignoretextzzz#1{%
+ \ifnum\doignorecount = 0 % We have just found the outermost @end.
+ \let\next\enddoignore
+ \else % Still inside a nested condition.
+ \advance\doignorecount by -1
+ \let\next\doignoretext % Look for the next @end.
+ \fi
+ \next
+}
+
+% Finish off ignored text.
+{ \obeylines%
+ % Ignore anything after the last `@end #1'; this matters in verbatim
+ % environments, where otherwise the newline after an ignored conditional
+ % would result in a blank line in the output.
+ \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
+}
+
+
+% @set VAR sets the variable VAR to an empty value.
+% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
+%
+% Since we want to separate VAR from REST-OF-LINE (which might be
+% empty), we can't just use \parsearg; we have to insert a space of our
+% own to delimit the rest of the line, and then take it out again if we
+% didn't need it.
+% We rely on the fact that \parsearg sets \catcode`\ =10.
+%
+\parseargdef\set{\setyyy#1 \endsetyyy}
+\def\setyyy#1 #2\endsetyyy{%
+ {%
+ \makevalueexpandable
+ \def\temp{#2}%
+ \edef\next{\gdef\makecsname{SET#1}}%
+ \ifx\temp\empty
+ \next{}%
+ \else
+ \setzzz#2\endsetzzz
+ \fi
+ }%
+}
+% Remove the trailing space \setxxx inserted.
+\def\setzzz#1 \endsetzzz{\next{#1}}
+
+% @clear VAR clears (i.e., unsets) the variable VAR.
+%
+\parseargdef\clear{%
+ {%
+ \makevalueexpandable
+ \global\expandafter\let\csname SET#1\endcsname=\relax
+ }%
+}
+
+% @value{foo} gets the text saved in variable foo.
+\def\value{\begingroup\makevalueexpandable\valuexxx}
+\def\valuexxx#1{\expandablevalue{#1}\endgroup}
+{
+ \catcode`\- = \active \catcode`\_ = \active
+ %
+ \gdef\makevalueexpandable{%
+ \let\value = \expandablevalue
+ % We don't want these characters active, ...
+ \catcode`\-=\other \catcode`\_=\other
+ % ..., but we might end up with active ones in the argument if
+ % we're called from @code, as @code{@value{foo-bar_}}, though.
+ % So \let them to their normal equivalents.
+ \let-\realdash \let_\normalunderscore
+ }
+}
+
+% We have this subroutine so that we can handle at least some @value's
+% properly in indexes (we call \makevalueexpandable in \indexdummies).
+% The command has to be fully expandable (if the variable is set), since
+% the result winds up in the index file. This means that if the
+% variable's value contains other Texinfo commands, it's almost certain
+% it will fail (although perhaps we could fix that with sufficient work
+% to do a one-level expansion on the result, instead of complete).
+%
+\def\expandablevalue#1{%
+ \expandafter\ifx\csname SET#1\endcsname\relax
+ {[No value for ``#1'']}%
+ \message{Variable `#1', used in @value, is not set.}%
+ \else
+ \csname SET#1\endcsname
+ \fi
+}
+
+% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+% with @set.
+%
+% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+\makecond{ifset}
+\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
+\def\doifset#1#2{%
+ {%
+ \makevalueexpandable
+ \let\next=\empty
+ \expandafter\ifx\csname SET#2\endcsname\relax
+ #1% If not set, redefine \next.
+ \fi
+ \expandafter
+ }\next
+}
+\def\ifsetfail{\doignore{ifset}}
+
+% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% defined with @set, or has been undefined with @clear.
+%
+% The `\else' inside the `\doifset' parameter is a trick to reuse the
+% above code: if the variable is not set, do nothing, if it is set,
+% then redefine \next to \ifclearfail.
+%
+\makecond{ifclear}
+\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
+\def\ifclearfail{\doignore{ifclear}}
+
+% @dircategory CATEGORY -- specify a category of the dir file
+% which this file should belong to. Ignore this in TeX.
+\let\dircategory=\comment
+
+% @defininfoenclose.
+\let\definfoenclose=\comment
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{\in hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 300}}%
-\flushcr}
\message{indexing,}
% Index generation facilities
% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
+% except not \outer, so it can be used within macros and \if's.
+\edef\newwrite{\makecsname{ptexnewwrite}}
% \newindex {foo} defines an index named foo.
% It automatically defines \fooindex such that
% \fooindex ...rest of line... puts an entry in the index foo.
% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
+% the file that accumulates this index. The file's extension is foo.
% The name of an index should be no more than 2 characters long
% for the sake of vms.
-
-\def\newindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#1}}
+%
+\def\newindex#1{%
+ \iflinks
+ \expandafter\newwrite \csname#1indfile\endcsname
+ \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+ \fi
+ \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
+ \noexpand\doindex{#1}}
}
% @defindex foo == \newindex{foo}
-
+%
\def\defindex{\parsearg\newindex}
% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#1}}
+%
+\def\defcodeindex{\parsearg\newcodeindex}
+%
+\def\newcodeindex#1{%
+ \iflinks
+ \expandafter\newwrite \csname#1indfile\endcsname
+ \openout \csname#1indfile\endcsname \jobname.#1
+ \fi
+ \expandafter\xdef\csname#1index\endcsname{%
+ \noexpand\docodeindex{#1}}%
}
-\def\defcodeindex{\parsearg\newcodeindex}
% @synindex foo bar makes index foo feed into index bar.
% Do this instead of @defindex foo if you don't want it as a separate index.
-\def\synindex #1 #2 {%
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#2}}%
-}
-
+%
% @syncodeindex foo bar similar, but put all entries made for index foo
% inside @code.
-\def\syncodeindex #1 #2 {%
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#2}}%
+%
+\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+
+% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+% #3 the target index (bar).
+\def\dosynindex#1#2#3{%
+ % Only do \closeout if we haven't already done it, else we'll end up
+ % closing the target index.
+ \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+ % The \closeout helps reduce unnecessary open files; the limit on the
+ % Acorn RISC OS is a mere 16 files.
+ \expandafter\closeout\csname#2indfile\endcsname
+ \expandafter\let\csname\donesynindex#2\endcsname = 1
+ \fi
+ % redefine \fooindfile:
+ \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+ \expandafter\let\csname#2indfile\endcsname=\temp
+ % redefine \fooindex:
+ \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
}
% Define \doindex, the driver for all \fooindex macros.
@@ -822,74 +3217,394 @@ July\or August\or September\or October\or November\or December\fi
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+% Take care of Texinfo commands that can appear in an index entry.
+% Since there are some commands we want to expand, and others we don't,
+% we have to laboriously prevent expansion for those that we don't.
+%
\def\indexdummies{%
-\def\bf{\realbackslash bf }%
-\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\dots{\realbackslash dots }%
-\def\copyright{\realbackslash copyright }%
+ \escapechar = `\\ % use backslash in output files.
+ \def\@{@}% change to @@ when we switch to @ as escape char in index files.
+ \def\ {\realbackslash\space }%
+ % Need these in case \tex is in effect and \{ is a \delimiter again.
+ % But can't use \lbracecmd and \rbracecmd because texindex assumes
+ % braces and backslashes are used only as delimiters.
+ \let\{ = \mylbrace
+ \let\} = \myrbrace
+ %
+ % Do the redefinitions.
+ \commondummies
}
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexnofonts{%
-\let\code=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
+% For the aux and toc files, @ is the escape character. So we want to
+% redefine everything using @ as the escape character (instead of
+% \realbackslash, still used for index files). When everything uses @,
+% this will be simpler.
+%
+\def\atdummies{%
+ \def\@{@@}%
+ \def\ {@ }%
+ \let\{ = \lbraceatcmd
+ \let\} = \rbraceatcmd
+ %
+ % Do the redefinitions.
+ \commondummies
+ \otherbackslash
+}
+
+% Called from \indexdummies and \atdummies.
+%
+\def\commondummies{%
+ %
+ % \definedummyword defines \#1 as \string\#1\space, thus effectively
+ % preventing its expansion. This is used only for control% words,
+ % not control letters, because the \space would be incorrect for
+ % control characters, but is needed to separate the control word
+ % from whatever follows.
+ %
+ % For control letters, we have \definedummyletter, which omits the
+ % space.
+ %
+ % These can be used both for control words that take an argument and
+ % those that do not. If it is followed by {arg} in the input, then
+ % that will dutifully get written to the index (or wherever).
+ %
+ \def\definedummyword ##1{\def##1{\string##1\space}}%
+ \def\definedummyletter##1{\def##1{\string##1}}%
+ \let\definedummyaccent\definedummyletter
+ %
+ \commondummiesnofonts
+ %
+ \definedummyletter\_%
+ %
+ % Non-English letters.
+ \definedummyword\AA
+ \definedummyword\AE
+ \definedummyword\L
+ \definedummyword\OE
+ \definedummyword\O
+ \definedummyword\aa
+ \definedummyword\ae
+ \definedummyword\l
+ \definedummyword\oe
+ \definedummyword\o
+ \definedummyword\ss
+ \definedummyword\exclamdown
+ \definedummyword\questiondown
+ \definedummyword\ordf
+ \definedummyword\ordm
+ %
+ % Although these internal commands shouldn't show up, sometimes they do.
+ \definedummyword\bf
+ \definedummyword\gtr
+ \definedummyword\hat
+ \definedummyword\less
+ \definedummyword\sf
+ \definedummyword\sl
+ \definedummyword\tclose
+ \definedummyword\tt
+ %
+ \definedummyword\LaTeX
+ \definedummyword\TeX
+ %
+ % Assorted special characters.
+ \definedummyword\bullet
+ \definedummyword\comma
+ \definedummyword\copyright
+ \definedummyword\registeredsymbol
+ \definedummyword\dots
+ \definedummyword\enddots
+ \definedummyword\equiv
+ \definedummyword\error
+ \definedummyword\euro
+ \definedummyword\expansion
+ \definedummyword\minus
+ \definedummyword\pounds
+ \definedummyword\point
+ \definedummyword\print
+ \definedummyword\result
+ %
+ % We want to disable all macros so that they are not expanded by \write.
+ \macrolist
+ %
+ \normalturnoffactive
+ %
+ % Handle some cases of @value -- where it does not contain any
+ % (non-fully-expandable) commands.
+ \makevalueexpandable
}
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
+% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+%
+\def\commondummiesnofonts{%
+ % Control letters and accents.
+ \definedummyletter\!%
+ \definedummyaccent\"%
+ \definedummyaccent\'%
+ \definedummyletter\*%
+ \definedummyaccent\,%
+ \definedummyletter\.%
+ \definedummyletter\/%
+ \definedummyletter\:%
+ \definedummyaccent\=%
+ \definedummyletter\?%
+ \definedummyaccent\^%
+ \definedummyaccent\`%
+ \definedummyaccent\~%
+ \definedummyword\u
+ \definedummyword\v
+ \definedummyword\H
+ \definedummyword\dotaccent
+ \definedummyword\ringaccent
+ \definedummyword\tieaccent
+ \definedummyword\ubaraccent
+ \definedummyword\udotaccent
+ \definedummyword\dotless
+ %
+ % Texinfo font commands.
+ \definedummyword\b
+ \definedummyword\i
+ \definedummyword\r
+ \definedummyword\sc
+ \definedummyword\t
+ %
+ % Commands that take arguments.
+ \definedummyword\acronym
+ \definedummyword\cite
+ \definedummyword\code
+ \definedummyword\command
+ \definedummyword\dfn
+ \definedummyword\emph
+ \definedummyword\env
+ \definedummyword\file
+ \definedummyword\kbd
+ \definedummyword\key
+ \definedummyword\math
+ \definedummyword\option
+ \definedummyword\pxref
+ \definedummyword\ref
+ \definedummyword\samp
+ \definedummyword\strong
+ \definedummyword\tie
+ \definedummyword\uref
+ \definedummyword\url
+ \definedummyword\var
+ \definedummyword\verb
+ \definedummyword\w
+ \definedummyword\xref
+}
-{\catcode`\@=0 \catcode`\\=\other
-@gdef@realbackslash{\}}
+% \indexnofonts is used when outputting the strings to sort the index
+% by, and when constructing control sequence names. It eliminates all
+% control sequences and just writes whatever the best ASCII sort string
+% would be for a given command (usually its argument).
+%
+\def\indexnofonts{%
+ % Accent commands should become @asis.
+ \def\definedummyaccent##1{\let##1\asis}%
+ % We can just ignore other control letters.
+ \def\definedummyletter##1{\let##1\empty}%
+ % Hopefully, all control words can become @asis.
+ \let\definedummyword\definedummyaccent
+ %
+ \commondummiesnofonts
+ %
+ % Don't no-op \tt, since it isn't a user-level command
+ % and is used in the definitions of the active chars like <, >, |, etc.
+ % Likewise with the other plain tex font commands.
+ %\let\tt=\asis
+ %
+ \def\ { }%
+ \def\@{@}%
+ % how to handle braces?
+ \def\_{\normalunderscore}%
+ %
+ % Non-English letters.
+ \def\AA{AA}%
+ \def\AE{AE}%
+ \def\L{L}%
+ \def\OE{OE}%
+ \def\O{O}%
+ \def\aa{aa}%
+ \def\ae{ae}%
+ \def\l{l}%
+ \def\oe{oe}%
+ \def\o{o}%
+ \def\ss{ss}%
+ \def\exclamdown{!}%
+ \def\questiondown{?}%
+ \def\ordf{a}%
+ \def\ordm{o}%
+ %
+ \def\LaTeX{LaTeX}%
+ \def\TeX{TeX}%
+ %
+ % Assorted special characters.
+ % (The following {} will end up in the sort string, but that's ok.)
+ \def\bullet{bullet}%
+ \def\comma{,}%
+ \def\copyright{copyright}%
+ \def\registeredsymbol{R}%
+ \def\dots{...}%
+ \def\enddots{...}%
+ \def\equiv{==}%
+ \def\error{error}%
+ \def\euro{euro}%
+ \def\expansion{==>}%
+ \def\minus{-}%
+ \def\pounds{pounds}%
+ \def\point{.}%
+ \def\print{-|}%
+ \def\result{=>}%
+ %
+ % We need to get rid of all macros, leaving only the arguments (if present).
+ % Of course this is not nearly correct, but it is the best we can do for now.
+ % makeinfo does not expand macros in the argument to @deffn, which ends up
+ % writing an index entry, and texindex isn't prepared for an index sort entry
+ % that starts with \.
+ %
+ % Since macro invocations are followed by braces, we can just redefine them
+ % to take a single TeX argument. The case of a macro invocation that
+ % goes to end-of-line is not handled.
+ %
+ \macrolist
+}
\let\indexbackslash=0 %overridden during \printindex.
+\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-\def\doind #1#2{%
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\count10=\lastpenalty %
-\escapechar=`\\%
-{\let\folio=0% Expand all macros now EXCEPT \folio
-\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
-% so it will be output as is; and it will print as backslash in the indx.
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}}}%
-\temp }%
-\penalty\count10}}
-
-\def\dosubind #1#2#3{%
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\count10=\lastpenalty %
-\escapechar=`\\%
-{\let\folio=0%
-\def\rawbackslashxx{\indexbackslash}%
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2 #3}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}{#3}}}%
-\temp }%
-\penalty\count10}}
+% Most index entries go through here, but \dosubind is the general case.
+% #1 is the index name, #2 is the entry text.
+\def\doind#1#2{\dosubind{#1}{#2}{}}
+
+% Workhorse for all \fooindexes.
+% #1 is name of index, #2 is stuff to put there, #3 is subentry --
+% empty if called from \doind, as we usually are (the main exception
+% is with most defuns, which call us directly).
+%
+\def\dosubind#1#2#3{%
+ \iflinks
+ {%
+ % Store the main index entry text (including the third arg).
+ \toks0 = {#2}%
+ % If third arg is present, precede it with a space.
+ \def\thirdarg{#3}%
+ \ifx\thirdarg\empty \else
+ \toks0 = \expandafter{\the\toks0 \space #3}%
+ \fi
+ %
+ \edef\writeto{\csname#1indfile\endcsname}%
+ %
+ \ifvmode
+ \dosubindsanitize
+ \else
+ \dosubindwrite
+ \fi
+ }%
+ \fi
+}
+
+% Write the entry in \toks0 to the index file:
+%
+\def\dosubindwrite{%
+ % Put the index entry in the margin if desired.
+ \ifx\SETmarginindex\relax\else
+ \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+ \fi
+ %
+ % Remember, we are within a group.
+ \indexdummies % Must do this here, since \bf, etc expand at this stage
+ \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
+ % so it will be output as is; and it will print as backslash.
+ %
+ % Process the index entry with all font commands turned off, to
+ % get the string to sort by.
+ {\indexnofonts
+ \edef\temp{\the\toks0}% need full expansion
+ \xdef\indexsorttmp{\temp}%
+ }%
+ %
+ % Set up the complete index entry, with both the sort key and
+ % the original text, including any font commands. We write
+ % three arguments to \entry to the .?? file (four in the
+ % subentry case), texindex reduces to two when writing the .??s
+ % sorted result.
+ \edef\temp{%
+ \write\writeto{%
+ \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+ }%
+ \temp
+}
+
+% Take care of unwanted page breaks:
+%
+% If a skip is the last thing on the list now, preserve it
+% by backing up by \lastskip, doing the \write, then inserting
+% the skip again. Otherwise, the whatsit generated by the
+% \write will make \lastskip zero. The result is that sequences
+% like this:
+% @end defun
+% @tindex whatever
+% @defun ...
+% will have extra space inserted, because the \medbreak in the
+% start of the @defun won't see the skip inserted by the @end of
+% the previous defun.
+%
+% But don't do any of this if we're not in vertical mode. We
+% don't want to do a \vskip and prematurely end a paragraph.
+%
+% Avoid page breaks due to these extra skips, too.
+%
+% But wait, there is a catch there:
+% We'll have to check whether \lastskip is zero skip. \ifdim is not
+% sufficient for this purpose, as it ignores stretch and shrink parts
+% of the skip. The only way seems to be to check the textual
+% representation of the skip.
+%
+% The following is almost like \def\zeroskipmacro{0.0pt} except that
+% the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
+%
+\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
+%
+% ..., ready, GO:
+%
+\def\dosubindsanitize{%
+ % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+ \skip0 = \lastskip
+ \edef\lastskipmacro{\the\lastskip}%
+ \count255 = \lastpenalty
+ %
+ % If \lastskip is nonzero, that means the last item was a
+ % skip. And since a skip is discardable, that means this
+ % -\skip0 glue we're inserting is preceded by a
+ % non-discardable item, therefore it is not a potential
+ % breakpoint, therefore no \nobreak needed.
+ \ifx\lastskipmacro\zeroskipmacro
+ \else
+ \vskip-\skip0
+ \fi
+ %
+ \dosubindwrite
+ %
+ \ifx\lastskipmacro\zeroskipmacro
+ % If \lastskip was zero, perhaps the last item was a penalty, and
+ % perhaps it was >=10000, e.g., a \nobreak. In that case, we want
+ % to re-insert the same penalty (values >10000 are used for various
+ % signals); since we just inserted a non-discardable item, any
+ % following glue (such as a \parskip) would be a breakpoint. For example:
+ %
+ % @deffn deffn-whatever
+ % @vindex index-whatever
+ % Description.
+ % would allow a break between the index-whatever whatsit
+ % and the "Description." paragraph.
+ \ifnum\count255>9999 \penalty\count255 \fi
+ \else
+ % On the other hand, if we had a nonzero \lastskip,
+ % this make-up glue would be preceded by a non-discardable item
+ % (the whatsit from the \write), so we must insert a \nobreak.
+ \nobreak\vskip\skip0
+ \fi
+}
% The index entry written in the file actually looks like
% \entry {sortstring}{page}{topic}
@@ -906,7 +3621,7 @@ July\or August\or September\or October\or November\or December\fi
% \secondary {subtopic}{pagelist}
% for each subtopic.
-% Define the user-accessible indexing commands
+% Define the user-accessible indexing commands
% @findex, @vindex, @kindex, @cindex.
\def\findex {\fnindex}
@@ -923,284 +3638,682 @@ July\or August\or September\or October\or November\or December\fi
% Define the macros used in formatting output of the sorted index material.
-% This is what you call to cause a particular index to get printed.
-% Write
-% @unnumbered Function Index
-% @printindex fn
-
-\def\printindex{\parsearg\doprintindex}
-
-\def\doprintindex#1{\tex %
-\catcode`\%=\other\catcode`\&=\other\catcode`\#=\other
-\catcode`\$=\other\catcode`\_=\other
-\catcode`\~=\other
-\def\indexbackslash{\rawbackslashxx}
-\indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt
-\begindoublecolumns
-\openin 1 \jobname.#1s
-\ifeof 1 \else \closein 1 \input \jobname.#1s
-\fi
-\enddoublecolumns
-\Etex}
+% @printindex causes a particular index (the ??s file) to get printed.
+% It does not print any chapter heading (usually an @unnumbered).
+%
+\parseargdef\printindex{\begingroup
+ \dobreak \chapheadingskip{10000}%
+ %
+ \smallfonts \rm
+ \tolerance = 9500
+ \everypar = {}% don't want the \kern\-parindent from indentation suppression.
+ %
+ % See if the index file exists and is nonempty.
+ % Change catcode of @ here so that if the index file contains
+ % \initial {@}
+ % as its first line, TeX doesn't complain about mismatched braces
+ % (because it thinks @} is a control sequence).
+ \catcode`\@ = 11
+ \openin 1 \jobname.#1s
+ \ifeof 1
+ % \enddoublecolumns gets confused if there is no text in the index,
+ % and it loses the chapter title and the aux file entries for the
+ % index. The easiest way to prevent this problem is to make sure
+ % there is some text.
+ \putwordIndexNonexistent
+ \else
+ %
+ % If the index file exists but is empty, then \openin leaves \ifeof
+ % false. We have to make TeX try to read something from the file, so
+ % it can discover if there is anything in it.
+ \read 1 to \temp
+ \ifeof 1
+ \putwordIndexIsEmpty
+ \else
+ % Index files are almost Texinfo source, but we use \ as the escape
+ % character. It would be better to use @, but that's too big a change
+ % to make right now.
+ \def\indexbackslash{\backslashcurfont}%
+ \catcode`\\ = 0
+ \escapechar = `\\
+ \begindoublecolumns
+ \input \jobname.#1s
+ \enddoublecolumns
+ \fi
+ \fi
+ \closein 1
+\endgroup}
% These macros are used by the sorted index file itself.
% Change them to control the appearance of the index.
-% Same as \bigskipamount except no shrink.
-% \balancecolumns gets confused if there is any shrink.
-\newskip\initialskipamount \initialskipamount 12pt plus4pt
+\def\initial#1{{%
+ % Some minor font changes for the special characters.
+ \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
+ %
+ % Remove any glue we may have, we'll be inserting our own.
+ \removelastskip
+ %
+ % We like breaks before the index initials, so insert a bonus.
+ \nobreak
+ \vskip 0pt plus 3\baselineskip
+ \penalty 0
+ \vskip 0pt plus -3\baselineskip
+ %
+ % Typeset the initial. Making this add up to a whole number of
+ % baselineskips increases the chance of the dots lining up from column
+ % to column. It still won't often be perfect, because of the stretch
+ % we need before each entry, but it's better.
+ %
+ % No shrink because it confuses \balancecolumns.
+ \vskip 1.67\baselineskip plus .5\baselineskip
+ \leftline{\secbf #1}%
+ % Do our best not to break after the initial.
+ \nobreak
+ \vskip .33\baselineskip plus .1\baselineskip
+}}
-\outer\def\initial #1{%
-{\let\tentt=\sectt \let\sf=\sectt
-\ifdim\lastskip<\initialskipamount
-\removelastskip \penalty-200 \vskip \initialskipamount\fi
-\line{\secbf#1\hfill}\kern 2pt\penalty3000}}
+% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+% then page number (#2) flushed to the right margin. It is used for index
+% and table of contents entries. The paragraph is indented by \leftskip.
+%
+% A straightforward implementation would start like this:
+% \def\entry#1#2{...
+% But this frozes the catcodes in the argument, and can cause problems to
+% @code, which sets - active. This problem was fixed by a kludge---
+% ``-'' was active throughout whole index, but this isn't really right.
+%
+% The right solution is to prevent \entry from swallowing the whole text.
+% --kasal, 21nov03
+\def\entry{%
+ \begingroup
+ %
+ % Start a new paragraph if necessary, so our assignments below can't
+ % affect previous text.
+ \par
+ %
+ % Do not fill out the last line with white space.
+ \parfillskip = 0in
+ %
+ % No extra space above this paragraph.
+ \parskip = 0in
+ %
+ % Do not prefer a separate line ending with a hyphen to fewer lines.
+ \finalhyphendemerits = 0
+ %
+ % \hangindent is only relevant when the entry text and page number
+ % don't both fit on one line. In that case, bob suggests starting the
+ % dots pretty far over on the line. Unfortunately, a large
+ % indentation looks wrong when the entry text itself is broken across
+ % lines. So we use a small indentation and put up with long leaders.
+ %
+ % \hangafter is reset to 1 (which is the value we want) at the start
+ % of each paragraph, so we need not do anything with that.
+ \hangindent = 2em
+ %
+ % When the entry text needs to be broken, just fill out the first line
+ % with blank space.
+ \rightskip = 0pt plus1fil
+ %
+ % A bit of stretch before each entry for the benefit of balancing
+ % columns.
+ \vskip 0pt plus1pt
+ %
+ % Swallow the left brace of the text (first parameter):
+ \afterassignment\doentry
+ \let\temp =
+}
+\def\doentry{%
+ \bgroup % Instead of the swallowed brace.
+ \noindent
+ \aftergroup\finishentry
+ % And now comes the text of the entry.
+}
+\def\finishentry#1{%
+ % #1 is the page number.
+ %
+ % The following is kludged to not output a line of dots in the index if
+ % there are no page numbers. The next person who breaks this will be
+ % cursed by a Unix daemon.
+ \def\tempa{{\rm }}%
+ \def\tempb{#1}%
+ \edef\tempc{\tempa}%
+ \edef\tempd{\tempb}%
+ \ifx\tempc\tempd
+ \ %
+ \else
+ %
+ % If we must, put the page number on a line of its own, and fill out
+ % this line with blank space. (The \hfil is overwhelmed with the
+ % fill leaders glue in \indexdotfill if the page number does fit.)
+ \hfil\penalty50
+ \null\nobreak\indexdotfill % Have leaders before the page number.
+ %
+ % The `\ ' here is removed by the implicit \unskip that TeX does as
+ % part of (the primitive) \par. Without it, a spurious underfull
+ % \hbox ensues.
+ \ifpdf
+ \pdfgettoks#1.%
+ \ \the\toksA
+ \else
+ \ #1%
+ \fi
+ \fi
+ \par
+ \endgroup
+}
-\outer\def\entry #1#2{
-{\parfillskip=0in \parskip=0in \parindent=0in
-\hangindent=1in \hangafter=1%
-\noindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll #2\par
-}}
+% Like \dotfill except takes at least 1 em.
+\def\indexdotfill{\cleaders
+ \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
\def\primary #1{\line{#1\hfil}}
\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll#2\par
+\def\secondary#1#2{{%
+ \parfillskip=0in
+ \parskip=0in
+ \hangindent=1in
+ \hangafter=1
+ \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+ \ifpdf
+ \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+ \else
+ #2
+ \fi
+ \par
}}
-%% Define two-column mode, which is used in indexes.
-%% Adapted from the TeXBook, page 416
-\catcode `\@=11
+% Define two-column mode, which we use to typeset indexes.
+% Adapted from the TeXbook, page 416, which is to say,
+% the manmac.tex format used to print the TeXbook itself.
+\catcode`\@=11
\newbox\partialpage
+\newdimen\doublecolumnhsize
+
+\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
+ % Grab any single-column material above us.
+ \output = {%
+ %
+ % Here is a possibility not foreseen in manmac: if we accumulate a
+ % whole lot of material, we might end up calling this \output
+ % routine twice in a row (see the doublecol-lose test, which is
+ % essentially a couple of indexes with @setchapternewpage off). In
+ % that case we just ship out what is in \partialpage with the normal
+ % output routine. Generally, \partialpage will be empty when this
+ % runs and this will be a no-op. See the indexspread.tex test case.
+ \ifvoid\partialpage \else
+ \onepageout{\pagecontents\partialpage}%
+ \fi
+ %
+ \global\setbox\partialpage = \vbox{%
+ % Unvbox the main output page.
+ \unvbox\PAGE
+ \kern-\topskip \kern\baselineskip
+ }%
+ }%
+ \eject % run that output routine to set \partialpage
+ %
+ % Use the double-column output routine for subsequent pages.
+ \output = {\doublecolumnout}%
+ %
+ % Change the page size parameters. We could do this once outside this
+ % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
+ % format, but then we repeat the same computation. Repeating a couple
+ % of assignments once per index is clearly meaningless for the
+ % execution time, so we may as well do it in one place.
+ %
+ % First we halve the line length, less a little for the gutter between
+ % the columns. We compute the gutter based on the line length, so it
+ % changes automatically with the paper format. The magic constant
+ % below is chosen so that the gutter has the same value (well, +-<1pt)
+ % as it did when we hard-coded it.
+ %
+ % We put the result in a separate register, \doublecolumhsize, so we
+ % can restore it in \pagesofar, after \hsize itself has (potentially)
+ % been clobbered.
+ %
+ \doublecolumnhsize = \hsize
+ \advance\doublecolumnhsize by -.04154\hsize
+ \divide\doublecolumnhsize by 2
+ \hsize = \doublecolumnhsize
+ %
+ % Double the \vsize as well. (We don't need a separate register here,
+ % since nobody clobbers \vsize.)
+ \vsize = 2\vsize
+}
-\newdimen\doublecolumnhsize \doublecolumnhsize = 3.11in
-\newdimen\doublecolumnvsize \doublecolumnvsize = 19.1in
+% The double-column output routine for all double-column pages except
+% the last.
+%
+\def\doublecolumnout{%
+ \splittopskip=\topskip \splitmaxdepth=\maxdepth
+ % Get the available space for the double columns -- the normal
+ % (undoubled) page height minus any material left over from the
+ % previous page.
+ \dimen@ = \vsize
+ \divide\dimen@ by 2
+ \advance\dimen@ by -\ht\partialpage
+ %
+ % box0 will be the left-hand column, box2 the right.
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255
+ \penalty\outputpenalty
+}
+%
+% Re-output the contents of the output page -- any previous material,
+% followed by the two boxes we just split, in box0 and box2.
+\def\pagesofar{%
+ \unvbox\partialpage
+ %
+ \hsize = \doublecolumnhsize
+ \wd0=\hsize \wd2=\hsize
+ \hbox to\pagewidth{\box0\hfil\box2}%
+}
+%
+% All done with double columns.
+\def\enddoublecolumns{%
+ \output = {%
+ % Split the last of the double-column material. Leave it on the
+ % current page, no automatic page break.
+ \balancecolumns
+ %
+ % If we end up splitting too much material for the current page,
+ % though, there will be another page break right after this \output
+ % invocation ends. Having called \balancecolumns once, we do not
+ % want to call it again. Therefore, reset \output to its normal
+ % definition right away. (We hope \balancecolumns will never be
+ % called on to balance too much material, but if it is, this makes
+ % the output somewhat more palatable.)
+ \global\output = {\onepageout{\pagecontents\PAGE}}%
+ }%
+ \eject
+ \endgroup % started in \begindoublecolumns
+ %
+ % \pagegoal was set to the doubled \vsize above, since we restarted
+ % the current page. We're now back to normal single-column
+ % typesetting, so reset \pagegoal to the normal \vsize (after the
+ % \endgroup where \vsize got restored).
+ \pagegoal = \vsize
+}
+%
+% Called at the end of the double column material.
+\def\balancecolumns{%
+ \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
+ \dimen@ = \ht0
+ \advance\dimen@ by \topskip
+ \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by 2 % target to split to
+ %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
+ \splittopskip = \topskip
+ % Loop until we get a decent breakpoint.
+ {%
+ \vbadness = 10000
+ \loop
+ \global\setbox3 = \copy0
+ \global\setbox1 = \vsplit3 to \dimen@
+ \ifdim\ht3>\dimen@
+ \global\advance\dimen@ by 1pt
+ \repeat
+ }%
+ %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
+ \setbox0=\vbox to\dimen@{\unvbox1}%
+ \setbox2=\vbox to\dimen@{\unvbox3}%
+ %
+ \pagesofar
+}
+\catcode`\@ = \other
-\def\begindoublecolumns{\begingroup
- \output={\global\setbox\partialpage=\vbox{\unvbox255\kern -\topskip \kern \baselineskip}}\eject
- \output={\doublecolumnout} \hsize=\doublecolumnhsize \vsize=\doublecolumnvsize}
-\def\enddoublecolumns{\output={\balancecolumns}\eject
- \endgroup \pagegoal=\vsize}
-\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth
- \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar \unvbox255 \penalty\outputpenalty}
-\def\pagesofar{\unvbox\partialpage %
- \hsize=\doublecolumnhsize % have to restore this since output routine
-% changes it to set cropmarks (P. A. MacKay, 12 Nov. 1986)
- \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
-\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0
- \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
- \divide\dimen@ by2 \splittopskip=\topskip
- {\vbadness=10000 \loop \global\setbox3=\copy0
- \global\setbox1=\vsplit3 to\dimen@
- \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}
- \setbox0=\vbox to\dimen@{\unvbox1} \setbox2=\vbox to\dimen@{\unvbox3}
- \pagesofar}
-
-\catcode `\@=\other
\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount \chapno
-\newcount \secno
-\newcount \subsecno
-\newcount \subsubsecno
+% Chapters, sections, etc.
+
+% \unnumberedno is an oxymoron, of course. But we count the unnumbered
+% sections so that we can refer to them unambiguously in the pdf
+% outlines by their "section number". We avoid collisions with chapter
+% numbers by starting them at 10000. (If a document ever has 10000
+% chapters, we're in trouble anyway, I'm sure.)
+\newcount\unnumberedno \unnumberedno = 10000
+\newcount\chapno
+\newcount\secno \secno=0
+\newcount\subsecno \subsecno=0
+\newcount\subsubsecno \subsubsecno=0
% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount \appendixno \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-\newwrite \contentsfile
-\openout \contentsfile = \jobname.toc
+\newcount\appendixno \appendixno = `\@
+%
+% \def\appendixletter{\char\the\appendixno}
+% We do the following ugly conditional instead of the above simple
+% construct for the sake of pdftex, which needs the actual
+% letter in the expansion, not just typeset.
+%
+\def\appendixletter{%
+ \ifnum\appendixno=`A A%
+ \else\ifnum\appendixno=`B B%
+ \else\ifnum\appendixno=`C C%
+ \else\ifnum\appendixno=`D D%
+ \else\ifnum\appendixno=`E E%
+ \else\ifnum\appendixno=`F F%
+ \else\ifnum\appendixno=`G G%
+ \else\ifnum\appendixno=`H H%
+ \else\ifnum\appendixno=`I I%
+ \else\ifnum\appendixno=`J J%
+ \else\ifnum\appendixno=`K K%
+ \else\ifnum\appendixno=`L L%
+ \else\ifnum\appendixno=`M M%
+ \else\ifnum\appendixno=`N N%
+ \else\ifnum\appendixno=`O O%
+ \else\ifnum\appendixno=`P P%
+ \else\ifnum\appendixno=`Q Q%
+ \else\ifnum\appendixno=`R R%
+ \else\ifnum\appendixno=`S S%
+ \else\ifnum\appendixno=`T T%
+ \else\ifnum\appendixno=`U U%
+ \else\ifnum\appendixno=`V V%
+ \else\ifnum\appendixno=`W W%
+ \else\ifnum\appendixno=`X X%
+ \else\ifnum\appendixno=`Y Y%
+ \else\ifnum\appendixno=`Z Z%
+ % The \the is necessary, despite appearances, because \appendixletter is
+ % expanded while writing the .toc file. \char\appendixno is not
+ % expandable, thus it is written literally, thus all appendixes come out
+ % with the same letter (or @) in the toc without it.
+ \else\char\the\appendixno
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it. @section does likewise
-
-\def\thischapter{} \def\thissection{}
-\def\seccheck#1{\if \pageno<0 %
-\errmessage{@#1 not allowed after generating table of contents}\fi
-%
-}
-
-\outer\def\chapter{\parsearg\chapterzzz}
-\def\chapterzzz #1{\seccheck{chapter}%
-\secno=0 \subsecno=0 \subsubsecno=0 \global\advance \chapno by 1 \message{Chapter \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}\gdef\thischapter{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-}
-
-\outer\def\appendix{\parsearg\appendixzzz}
-\def\appendixzzz #1{\seccheck{appendix}%
-\secno=0 \subsecno=0 \subsubsecno=0 \global\advance \appendixno by 1 \message{Appendix \appendixletter}%
-\chapmacro {#1}{Appendix \appendixletter}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash chapentry {#1}{Appendix \appendixletter}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-}
-
-\outer\def\unnumbered{\parsearg\unnumberedzzz}
-\def\unnumberedzzz #1{\seccheck{unnumbered}%
-\secno=0 \subsecno=0 \subsubsecno=0 \message{(#1)}
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-}
-
-\outer\def\section{\parsearg\sectionzzz}
-\def\sectionzzz #1{\seccheck{section}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash secentry %
-{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}
-
-\outer\def\appendixsection{\parsearg\appendixsectionzzz}
-\outer\def\appendixsec{\parsearg\appendixsectionzzz}
-\def\appendixsectionzzz #1{\seccheck{appendixsection}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash secentry %
-{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedseczzz}
-\def\unnumberedseczzz #1{\seccheck{unnumberedsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\subsection{\parsearg\subsectionzzz}
-\def\subsectionzzz #1{\seccheck{subsection}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsecentry %
-{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubseczzz}
-\def\appendixsubseczzz #1{\seccheck{appendixsubsec}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsecentry %
-{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\subsubsection{\parsearg\subsubsectionzzz}
-\def\subsubsectionzzz #1{\seccheck{subsubsection}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsubsecentry %
-{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%\
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubseczzz}
-\def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsubsecentry{#1}%
-{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%\
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
+% page headings and footings can use it. @section does likewise.
+% However, they are not reliable, because we don't use marks.
+\def\thischapter{}
+\def\thissection{}
+
+\newcount\absseclevel % used to calculate proper heading level
+\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
+
+% @raisesections: treat @section as chapter, @subsection as section, etc.
+\def\raisesections{\global\advance\secbase by -1}
+\let\up=\raisesections % original BFox name
+
+% @lowersections: treat @chapter as section, @section as subsection, etc.
+\def\lowersections{\global\advance\secbase by 1}
+\let\down=\lowersections % original BFox name
+
+% we only have subsub.
+\chardef\maxseclevel = 3
+%
+% A numbered section within an unnumbered changes to unnumbered too.
+% To achive this, remember the "biggest" unnum. sec. we are currently in:
+\chardef\unmlevel = \maxseclevel
+%
+% Trace whether the current chapter is an appendix or not:
+% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
+\def\chapheadtype{N}
+
+% Choose a heading macro
+% #1 is heading type
+% #2 is heading level
+% #3 is text for heading
+\def\genhead#1#2#3{%
+ % Compute the abs. sec. level:
+ \absseclevel=#2
+ \advance\absseclevel by \secbase
+ % Make sure \absseclevel doesn't fall outside the range:
+ \ifnum \absseclevel < 0
+ \absseclevel = 0
+ \else
+ \ifnum \absseclevel > 3
+ \absseclevel = 3
+ \fi
+ \fi
+ % The heading type:
+ \def\headtype{#1}%
+ \if \headtype U%
+ \ifnum \absseclevel < \unmlevel
+ \chardef\unmlevel = \absseclevel
+ \fi
+ \else
+ % Check for appendix sections:
+ \ifnum \absseclevel = 0
+ \edef\chapheadtype{\headtype}%
+ \else
+ \if \headtype A\if \chapheadtype N%
+ \errmessage{@appendix... within a non-appendix chapter}%
+ \fi\fi
+ \fi
+ % Check for numbered within unnumbered:
+ \ifnum \absseclevel > \unmlevel
+ \def\headtype{U}%
+ \else
+ \chardef\unmlevel = 3
+ \fi
+ \fi
+ % Now print the heading:
+ \if \headtype U%
+ \ifcase\absseclevel
+ \unnumberedzzz{#3}%
+ \or \unnumberedseczzz{#3}%
+ \or \unnumberedsubseczzz{#3}%
+ \or \unnumberedsubsubseczzz{#3}%
+ \fi
+ \else
+ \if \headtype A%
+ \ifcase\absseclevel
+ \appendixzzz{#3}%
+ \or \appendixsectionzzz{#3}%
+ \or \appendixsubseczzz{#3}%
+ \or \appendixsubsubseczzz{#3}%
+ \fi
+ \else
+ \ifcase\absseclevel
+ \chapterzzz{#3}%
+ \or \seczzz{#3}%
+ \or \numberedsubseczzz{#3}%
+ \or \numberedsubsubseczzz{#3}%
+ \fi
+ \fi
+ \fi
+ \suppressfirstparagraphindent
+}
+
+% an interface:
+\def\numhead{\genhead N}
+\def\apphead{\genhead A}
+\def\unnmhead{\genhead U}
+
+% @chapter, @appendix, @unnumbered. Increment top-level counter, reset
+% all lower-level sectioning counters to zero.
+%
+% Also set \chaplevelprefix, which we prepend to @float sequence numbers
+% (e.g., figures), q.v. By default (before any chapter), that is empty.
+\let\chaplevelprefix = \empty
+%
+\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
+\def\chapterzzz#1{%
+ % section resetting is \global in case the chapter is in a group, such
+ % as an @include file.
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\chapno by 1
+ %
+ % Used for \float.
+ \gdef\chaplevelprefix{\the\chapno.}%
+ \resetallfloatnos
+ %
+ \message{\putwordChapter\space \the\chapno}%
+ %
+ % Write the actual heading.
+ \chapmacro{#1}{Ynumbered}{\the\chapno}%
+ %
+ % So @section and the like are numbered underneath this chapter.
+ \global\let\section = \numberedsec
+ \global\let\subsection = \numberedsubsec
+ \global\let\subsubsection = \numberedsubsubsec
+}
+
+\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
+\def\appendixzzz#1{%
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\appendixno by 1
+ \gdef\chaplevelprefix{\appendixletter.}%
+ \resetallfloatnos
+ %
+ \def\appendixnum{\putwordAppendix\space \appendixletter}%
+ \message{\appendixnum}%
+ %
+ \chapmacro{#1}{Yappendix}{\appendixletter}%
+ %
+ \global\let\section = \appendixsec
+ \global\let\subsection = \appendixsubsec
+ \global\let\subsubsection = \appendixsubsubsec
+}
+
+\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+\def\unnumberedzzz#1{%
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\unnumberedno by 1
+ %
+ % Since an unnumbered has no number, no prefix for figures.
+ \global\let\chaplevelprefix = \empty
+ \resetallfloatnos
+ %
+ % This used to be simply \message{#1}, but TeX fully expands the
+ % argument to \message. Therefore, if #1 contained @-commands, TeX
+ % expanded them. For example, in `@unnumbered The @cite{Book}', TeX
+ % expanded @cite (which turns out to cause errors because \cite is meant
+ % to be executed, not expanded).
+ %
+ % Anyway, we don't want the fully-expanded definition of @cite to appear
+ % as a result of the \message, we just want `@cite' itself. We use
+ % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+ % simply yielding the contents of <toks register>. (We also do this for
+ % the toc entries.)
+ \toks0 = {#1}%
+ \message{(\the\toks0)}%
+ %
+ \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
+ %
+ \global\let\section = \unnumberedsec
+ \global\let\subsection = \unnumberedsubsec
+ \global\let\subsubsection = \unnumberedsubsubsec
+}
+
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\parseargdef\centerchap{%
+ % Well, we could do the following in a group, but that would break
+ % an assumption that \chapmacro is called at the outermost level.
+ % Thus we are safer this way: --kasal, 24feb04
+ \let\centerparametersmaybe = \centerparameters
+ \unnmhead0{#1}%
+ \let\centerparametersmaybe = \relax
+}
+
+% @top is like @unnumbered.
+\let\top\unnumbered
+
+% Sections.
+\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+\def\seczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
+}
+
+\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+\def\appendixsectionzzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
+}
+\let\appendixsec\appendixsection
+
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+\def\unnumberedseczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
+}
+
+% Subsections.
+\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+\def\numberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
+}
+
+\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+\def\appendixsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno}%
}
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+\def\unnumberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno}%
+}
+
+% Subsubsections.
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+\def\numberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynumbered}%
+ {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+\def\appendixsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+\def\unnumberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+% These macros control what the section commands do, according
+% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
+% Define them by default for a numbered chapter.
+\let\section = \numberedsec
+\let\subsection = \numberedsubsec
+\let\subsubsection = \numberedsubsubsec
+
% Define @majorheading, @heading and @subheading
-\outer\def\majorheading #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 200}
+% NOTE on use of \vbox for chapter headings, section headings, and such:
+% 1) We use \vbox rather than the earlier \line to permit
+% overlong headings to fold.
+% 2) \hyphenpenalty is set to 10000 because hyphenation in a
+% heading is obnoxious; this forbids it.
+% 3) Likewise, headings look best if no \parindent is used, and
+% if justification is not attempted. Hence \raggedright.
+
-\outer\def\chapheading #1{\chapbreak %
-{\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 200}
+\def\majorheading{%
+ {\advance\chapheadingskip by 10pt \chapbreak }%
+ \parsearg\chapheadingzzz
+}
+
+\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
+\def\chapheadingzzz#1{%
+ {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}%
+ \bigskip \par\penalty 200\relax
+ \suppressfirstparagraphindent
+}
-\let\heading=\secheadingi
-\let\subheading=\subsecheadingi
-\let\subsubheading=\subsubsecheadingi
+% @heading, @subheading, @subsubheading.
+\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
% These macros generate a chapter, section, etc. heading only
% (including whitespace, linebreaking, etc. around it),
@@ -1209,12 +4322,10 @@ July\or August\or September\or October\or November\or December\fi
%%% Args are the skip and penalty (usually negative)
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-\newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt
+\newskip\chapheadingskip
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
@@ -1222,856 +4333,2894 @@ July\or August\or September\or October\or November\or December\fi
\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-\def\CHAPPAGoff{
+\def\CHAPPAGoff{%
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chapbreak
\global\let\pagealignmacro=\chappager}
-\def\CHAPPAGon{
+\def\CHAPPAGon{%
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager}
+\global\let\pagealignmacro=\chappager
+\global\def\HEADINGSon{\HEADINGSsingle}}
-\def\CHAPPAGodd{
+\def\CHAPPAGodd{%
+\global\let\contentsalignmacro = \chapoddpage
\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage}
+\global\let\pagealignmacro=\chapoddpage
+\global\def\HEADINGSon{\HEADINGSdouble}}
\CHAPPAGon
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain}
-
-\def\chfplain #1#2{%
-\pchapsepmacro %
-{\chapfonts \line{\chaprm #2.\enspace #1\hfill}}\bigskip \par\penalty 5000 %
+% Chapter opening.
+%
+% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
+% Yappendix, Yomitfromtoc), #3 the chapter number.
+%
+% To test against our argument.
+\def\Ynothingkeyword{Ynothing}
+\def\Yomitfromtockeyword{Yomitfromtoc}
+\def\Yappendixkeyword{Yappendix}
+%
+\def\chapmacro#1#2#3{%
+ \pchapsepmacro
+ {%
+ \chapfonts \rm
+ %
+ % Have to define \thissection before calling \donoderef, because the
+ % xref code eventually uses it. On the other hand, it has to be called
+ % after \pchapsepmacro, or the headline will change too soon.
+ \gdef\thissection{#1}%
+ \gdef\thischaptername{#1}%
+ %
+ % Only insert the separating space if we have a chapter/appendix
+ % number, and don't print the unnumbered ``number''.
+ \def\temptype{#2}%
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unnchap}%
+ \gdef\thischapter{#1}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+ \def\toctype{omit}%
+ \gdef\thischapter{}%
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+ \def\toctype{app}%
+ % We don't substitute the actual chapter name into \thischapter
+ % because we don't want its macros evaluated now. And we don't
+ % use \thissection because that changes with each section.
+ %
+ \xdef\thischapter{\putwordAppendix{} \appendixletter:
+ \noexpand\thischaptername}%
+ \else
+ \setbox0 = \hbox{#3\enspace}%
+ \def\toctype{numchap}%
+ \xdef\thischapter{\putwordChapter{} \the\chapno:
+ \noexpand\thischaptername}%
+ \fi\fi\fi
+ %
+ % Write the toc entry for this chapter. Must come before the
+ % \donoderef, because we include the current node name in the toc
+ % entry, and \donoderef resets it to empty.
+ \writetocentry{\toctype}{#1}{#3}%
+ %
+ % For pdftex, we have to write out the node definition (aka, make
+ % the pdfdest) after any page break, but before the actual text has
+ % been typeset. If the destination for the pdf outline is after the
+ % text, then jumping from the outline may wind up with the text not
+ % being visible, for instance under high magnification.
+ \donoderef{#2}%
+ %
+ % Typeset the actual heading.
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent=\wd0 \centerparametersmaybe
+ \unhbox0 #1\par}%
+ }%
+ \nobreak\bigskip % no page break after a chapter title
+ \nobreak
}
-\def\unnchfplain #1{%
-\pchapsepmacro %
-{\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 10000 %
+% @centerchap -- centered and unnumbered.
+\let\centerparametersmaybe = \relax
+\def\centerparameters{%
+ \advance\rightskip by 3\rightskip
+ \leftskip = \rightskip
+ \parfillskip = 0pt
}
-\CHAPFplain % The default
+
+% I don't think this chapter style is supported any more, so I'm not
+% updating it with the new noderef stuff. We'll see. --karl, 11aug03.
+%
+\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
+%
\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 10000 %
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}\bigskip \par\nobreak
}
-
\def\chfopen #1#2{\chapoddpage {\chapfonts
\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
\par\penalty 5000 %
}
+\def\centerchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt
+ \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
+}
+\def\CHAPFopen{%
+ \global\let\chapmacro=\chfopen
+ \global\let\centerchapmacro=\centerchfopen}
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen}
-
-% Parameter controlling skip before section headings.
-\newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
+% Section titles. These macros combine the section number parts and
+% call the generic \sectionheading to do the printing.
+%
+\newskip\secheadingskip
+\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
-\newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
+% Subsection titles.
+\newskip\subsecheadingskip
+\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
-\def\secheading #1#2#3{\secheadingi {#2.#3\enspace #1}}
-\def\plainsecheading #1{\secheadingi {#1}}
-\def\secheadingi #1{{\advance \secheadingskip by \parskip %
-\secheadingbreak}%
-{\secfonts \line{\secrm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
+% Subsubsection titles.
+\def\subsubsecheadingskip{\subsecheadingskip}
+\def\subsubsecheadingbreak{\subsecheadingbreak}
-\def\subsecheading #1#2#3#4{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\secfonts \line{\secrm#2.#3.#4\enspace #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
-\def\subsubsecfonts{\subsecfonts} % Maybe this should change
+% Print any size, any type, section title.
+%
+% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
+% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
+% section number.
+%
+\def\sectionheading#1#2#3#4{%
+ {%
+ % Switch to the right set of fonts.
+ \csname #2fonts\endcsname \rm
+ %
+ % Insert space above the heading.
+ \csname #2headingbreak\endcsname
+ %
+ % Only insert the space after the number if we have a section number.
+ \def\sectionlevel{#2}%
+ \def\temptype{#3}%
+ %
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unn}%
+ \gdef\thissection{#1}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ % for @headings -- no section number, don't include in toc,
+ % and don't redefine \thissection.
+ \setbox0 = \hbox{}%
+ \def\toctype{omit}%
+ \let\sectionlevel=\empty
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{app}%
+ \gdef\thissection{#1}%
+ \else
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{num}%
+ \gdef\thissection{#1}%
+ \fi\fi\fi
+ %
+ % Write the toc entry (before \donoderef). See comments in \chapmacro.
+ \writetocentry{\toctype\sectionlevel}{#1}{#4}%
+ %
+ % Write the node reference (= pdf destination for pdftex).
+ % Again, see comments in \chapmacro.
+ \donoderef{#3}%
+ %
+ % Interline glue will be inserted when the vbox is completed.
+ % That glue will be a valid breakpoint for the page, since it'll be
+ % preceded by a whatsit (usually from the \donoderef, or from the
+ % \writetocentry if there was no node). We don't want to allow that
+ % break, since then the whatsits could end up on page n while the
+ % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000.
+ \nobreak
+ %
+ % Output the actual section heading.
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent=\wd0 % zero if no section number
+ \unhbox0 #1}%
+ }%
+ % Add extra space after the heading -- half of whatever came above it.
+ % Don't allow stretch, though.
+ \kern .5 \csname #2headingskip\endcsname
+ %
+ % Do not let the kern be a potential breakpoint, as it would be if it
+ % was followed by glue.
+ \nobreak
+ %
+ % We'll almost certainly start a paragraph next, so don't let that
+ % glue accumulate. (Not a breakpoint because it's preceded by a
+ % discardable item.)
+ \vskip-\parskip
+ %
+ % This is purely so the last item on the list is a known \penalty >
+ % 10000. This is so \startdefun can avoid allowing breakpoints after
+ % section headings. Otherwise, it would insert a valid breakpoint between:
+ %
+ % @section sec-whatever
+ % @deffn def-whatever
+ \penalty 10001
+}
-\def\subsubsecheading #1#2#3#4#5{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\secfonts \line{\secrm#2.#3.#4.#5\enspace #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000}
-\message{toc printing,}
+\message{toc,}
+% Table of contents.
+\newwrite\tocfile
-\def\Dotsbox{\hbox to 1em{\hss.\hss}} % Used by index macros
+% Write an entry to the toc file, opening it if necessary.
+% Called from @chapter, etc.
+%
+% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
+% We append the current node name (if any) and page number as additional
+% arguments for the \{chap,sec,...}entry macros which will eventually
+% read this. The node name is used in the pdf outlines as the
+% destination to jump to.
+%
+% We open the .toc file for writing here instead of at @setfilename (or
+% any other fixed time) so that @contents can be anywhere in the document.
+% But if #1 is `omit', then we don't do anything. This is used for the
+% table of contents chapter openings themselves.
+%
+\newif\iftocfileopened
+\def\omitkeyword{omit}%
+%
+\def\writetocentry#1#2#3{%
+ \edef\writetoctype{#1}%
+ \ifx\writetoctype\omitkeyword \else
+ \iftocfileopened\else
+ \immediate\openout\tocfile = \jobname.toc
+ \global\tocfileopenedtrue
+ \fi
+ %
+ \iflinks
+ {\atdummies
+ \edef\temp{%
+ \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
+ \temp
+ }%
+ \fi
+ \fi
+ %
+ % Tell \shipout to create a pdf destination on each page, if we're
+ % writing pdf. These are used in the table of contents. We can't
+ % just write one on every page because the title pages are numbered
+ % 1 and 2 (the page numbers aren't printed), and so are the first
+ % two pages of the document. Thus, we'd have two destinations named
+ % `1', and two named `2'.
+ \ifpdf \global\pdfmakepagedesttrue \fi
+}
-\def\finishcontents{%
-\ifnum\pageno>0 %
-\pagealignmacro %
-\immediate\closeout \contentsfile%
-\pageno=-1 % Request roman numbered pages
-\fi}
-\outer\def\contents{%
-\finishcontents %
-\unnumbchapmacro{Table of Contents}
-\def\thischapter{Table of Contents}
-{\catcode`\\=0
-\catcode`\{=1 % Set up to handle contents files properly
-\catcode`\}=2
-\catcode`\@=11
-\input \jobname.toc
+% These characters do not print properly in the Computer Modern roman
+% fonts, so we must take special care. This is more or less redundant
+% with the Texinfo input format setup at the end of this file.
+%
+\def\activecatcodes{%
+ \catcode`\"=\active
+ \catcode`\$=\active
+ \catcode`\<=\active
+ \catcode`\>=\active
+ \catcode`\\=\active
+ \catcode`\^=\active
+ \catcode`\_=\active
+ \catcode`\|=\active
+ \catcode`\~=\active
}
-\vfill \eject}
-\outer\def\summarycontents{%
-\finishcontents %
-\unnumbchapmacro{Summary Table of Contents}
-\def\thischapter{Summary Table of Contents}
-{\catcode`\\=0
-\catcode`\{=1 % Set up to handle contents files properly
-\catcode`\}=2
-\catcode`\@=11
-\def\smallbreak{}
-\def\secentry ##1##2##3##4{}
-\def\subsecentry ##1##2##3##4##5{}
-\def\subsubsecentry ##1##2##3##4##5##6{}
-\def\unnumbsecentry ##1##2{}
-\def\unnumbsubsecentry ##1##2{}
-\def\unnumbsubsubsecentry ##1##2{}
-\let\medbreak=\smallbreak
-\input \jobname.toc
-}
-\vfill \eject}
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+% Read the toc file, which is essentially Texinfo input.
+\def\readtocfile{%
+ \setupdatafile
+ \activecatcodes
+ \input \jobname.toc
+}
-% These macros generate individual entries in the table of contents
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
+\newskip\contentsrightmargin \contentsrightmargin=1in
+\newcount\savepageno
+\newcount\lastnegativepageno \lastnegativepageno = -1
-\def\chapentry #1#2#3{%
-\medbreak
-\line{#2.\space#1\leaders\hbox to 1em{\hss.\hss}\hfill #3}
+% Prepare to read what we've written to \tocfile.
+%
+\def\startcontents#1{%
+ % If @setchapternewpage on, and @headings double, the contents should
+ % start on an odd page, unlike chapters. Thus, we maintain
+ % \contentsalignmacro in parallel with \pagealignmacro.
+ % From: Torbjorn Granlund <tege@matematik.su.se>
+ \contentsalignmacro
+ \immediate\closeout\tocfile
+ %
+ % Don't need to put `Contents' or `Short Contents' in the headline.
+ % It is abundantly clear what they are.
+ \def\thischapter{}%
+ \chapmacro{#1}{Yomitfromtoc}{}%
+ %
+ \savepageno = \pageno
+ \begingroup % Set up to handle contents files properly.
+ \raggedbottom % Worry more about breakpoints than the bottom.
+ \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+ %
+ % Roman numerals for page numbers.
+ \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
}
-\def\unnumbchapentry #1#2{%
-\medbreak
-\line{#1\leaders\Dotsbox\hfill #2}
-}
-\def\secentry #1#2#3#4{%
-\line{\enspace\enspace#2.#3\space#1\leaders\Dotsbox\hfill#4}
+% Normal (long) toc.
+\def\contents{%
+ \startcontents{\putwordTOC}%
+ \openin 1 \jobname.toc
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \ifeof 1 \else
+ \pdfmakeoutlines
+ \fi
+ \closein 1
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
}
-\def\unnumbsecentry #1#2{%
-\line{\enspace\enspace#1\leaders\Dotsbox\hfill #2}
+% And just the chapters.
+\def\summarycontents{%
+ \startcontents{\putwordShortTOC}%
+ %
+ \let\numchapentry = \shortchapentry
+ \let\appentry = \shortchapentry
+ \let\unnchapentry = \shortunnchapentry
+ % We want a true roman here for the page numbers.
+ \secfonts
+ \let\rm=\shortcontrm \let\bf=\shortcontbf
+ \let\sl=\shortcontsl \let\tt=\shortconttt
+ \rm
+ \hyphenpenalty = 10000
+ \advance\baselineskip by 1pt % Open it up a little.
+ \def\numsecentry##1##2##3##4{}
+ \let\appsecentry = \numsecentry
+ \let\unnsecentry = \numsecentry
+ \let\numsubsecentry = \numsecentry
+ \let\appsubsecentry = \numsecentry
+ \let\unnsubsecentry = \numsecentry
+ \let\numsubsubsecentry = \numsecentry
+ \let\appsubsubsecentry = \numsecentry
+ \let\unnsubsubsecentry = \numsecentry
+ \openin 1 \jobname.toc
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \closein 1
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
}
+\let\shortcontents = \summarycontents
-\def\subsecentry #1#2#3#4#5{%
-\line{\enspace\enspace\enspace\enspace
-#2.#3.#4\space#1\leaders\Dotsbox\hfill #5}
+% Typeset the label for a chapter or appendix for the short contents.
+% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
+%
+\def\shortchaplabel#1{%
+ % This space should be enough, since a single number is .5em, and the
+ % widest letter (M) is 1em, at least in the Computer Modern fonts.
+ % But use \hss just in case.
+ % (This space doesn't include the extra space that gets added after
+ % the label; that gets put in by \shortchapentry above.)
+ %
+ % We'd like to right-justify chapter numbers, but that looks strange
+ % with appendix letters. And right-justifying numbers and
+ % left-justifying letters looks strange when there is less than 10
+ % chapters. Have to read the whole toc once to know how many chapters
+ % there are before deciding ...
+ \hbox to 1em{#1\hss}%
}
-\def\unnumbsubsecentry #1#2{%
-\line{\enspace\enspace\enspace\enspace#1\leaders\Dotsbox\hfill #2}
-}
+% These macros generate individual entries in the table of contents.
+% The first argument is the chapter or section name.
+% The last argument is the page number.
+% The arguments in between are the chapter number, section number, ...
-\def\subsubsecentry #1#2#3#4#5#6{%
-\line{\enspace\enspace\enspace\enspace\enspace\enspace
-#2.#3.#4.#5\space#1\leaders\Dotsbox\hfill #6}
+% Chapters, in the main contents.
+\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+%
+% Chapters, in the short toc.
+% See comments in \dochapentry re vbox and related settings.
+\def\shortchapentry#1#2#3#4{%
+ \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
}
-\def\unnumbsubsubsecentry #1#2{%
-\line{\enspace\enspace\enspace\enspace\enspace\enspace#1\leaders\Dotsbox\hfill #2}
+% Appendices, in the main contents.
+% Need the word Appendix, and a fixed-size box.
+%
+\def\appendixbox#1{%
+ % We use M since it's probably the widest letter.
+ \setbox0 = \hbox{\putwordAppendix{} M}%
+ \hbox to \wd0{\putwordAppendix{} #1\hss}}
+%
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+
+% Unnumbered chapters.
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
+
+% Sections.
+\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\let\appsecentry=\numsecentry
+\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+
+% Subsections.
+\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsecentry=\numsubsecentry
+\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+
+% And subsubsections.
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsubsecentry=\numsubsubsecentry
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+
+% This parameter controls the indentation of the various levels.
+% Same as \defaultparindent.
+\newdimen\tocindent \tocindent = 15pt
+
+% Now for the actual typesetting. In all these, #1 is the text and #2 is the
+% page number.
+%
+% If the toc has to be broken over pages, we want it to be at chapters
+% if at all possible; hence the \penalty.
+\def\dochapentry#1#2{%
+ \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
+ \begingroup
+ \chapentryfonts
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+ \endgroup
+ \nobreak\vskip .25\baselineskip plus.1\baselineskip
}
+\def\dosecentry#1#2{\begingroup
+ \secentryfonts \leftskip=\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsecentry#1#2{\begingroup
+ \subsecentryfonts \leftskip=2\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsubsecentry#1#2{\begingroup
+ \subsubsecentryfonts \leftskip=3\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+% We use the same \entry macro as for the index entries.
+\let\tocentry = \entry
+
+% Space between chapter (or whatever) number and the title.
+\def\labelspace{\hskip1em \relax}
+
+\def\dopageno#1{{\rm #1}}
+\def\doshortpageno#1{{\rm #1}}
+
+\def\chapentryfonts{\secfonts \rm}
+\def\secentryfonts{\textfonts}
+\def\subsecentryfonts{\textfonts}
+\def\subsubsecentryfonts{\textfonts}
+
+
\message{environments,}
+% @foo ... @end foo.
+
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
+% Since these characters are used in examples, it should be an even number of
+% \tt widths. Each \tt character is 1en, so two makes it 1em.
+%
+\def\point{$\star$}
+\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
+\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+
+% The @error{} command.
+% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
+{\tentt \global\dimen0 = 3em}% Width of the box.
+\dimen2 = .55pt % Thickness of rules
+% The text. (`r' is open on the right, `e' somewhat less so on the left.)
+\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
+%
+\setbox\errorbox=\hbox to \dimen0{\hfil
+ \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
+ \advance\hsize by -2\dimen2 % Rules.
+ \vbox{%
+ \hrule height\dimen2
+ \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
+ \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
+ \kern3pt\vrule width\dimen2}% Space to right.
+ \hrule height\dimen2}
+ \hfil}
+%
+\def\error{\leavevmode\lower.7ex\copy\errorbox}
% @tex ... @end tex escapes into raw Tex temporarily.
% One exception: @ is still an escape character, so that @end tex works.
% But \@ or @@ will get a plain tex @ character.
-\def\tex{\begingroup
-\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
-\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
-\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
-\catcode `\%=14
-\catcode`\"=12
-\catcode`\|=12
-\catcode`\<=12
-\catcode`\>=12
-\escapechar=`\\
-%
-\let\{=\ptexlbrace
-\let\}=\ptexrbrace
-\let\.=\ptexdot
-\let\*=\ptexstar
-\def\@={@}%
-\let\bullet=\ptexbullet
-\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl
-\let\L=\ptexL
-%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
+\envdef\tex{%
+ \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
+ \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
+ \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
+ \catcode `\%=14
+ \catcode `\+=\other
+ \catcode `\"=\other
+ \catcode `\|=\other
+ \catcode `\<=\other
+ \catcode `\>=\other
+ \escapechar=`\\
+ %
+ \let\b=\ptexb
+ \let\bullet=\ptexbullet
+ \let\c=\ptexc
+ \let\,=\ptexcomma
+ \let\.=\ptexdot
+ \let\dots=\ptexdots
+ \let\equiv=\ptexequiv
+ \let\!=\ptexexclam
+ \let\i=\ptexi
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
+ \let\{=\ptexlbrace
+ \let\+=\tabalign
+ \let\}=\ptexrbrace
+ \let\/=\ptexslash
+ \let\*=\ptexstar
+ \let\t=\ptext
+ \let\frenchspacing=\plainfrenchspacing
+ %
+ \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
+ \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
+ \def\@{@}%
+}
+% There is no need to define \Etex.
+
+% Define @lisp ... @end lisp.
+% @lisp environment forms a group so it can rebind things,
+% including the definition of @end lisp (which normally is erroneous).
% Amount to narrow the margins by for @lisp.
\newskip\lispnarrowing \lispnarrowing=0.4in
-% This is the definition that ^M gets inside @lisp
-% phr: changed space to \null, to avoid overfull hbox problems.
-{\obeyspaces%
-\gdef\lisppar{\null\endgraf}}
-
-% Cause \obeyspaces to make each Space cause a word-separation
-% rather than the default which is that it acts punctuation.
-% This is because space in tt font looks funny.
-{\obeyspaces %
-\gdef\sepspaces{\def {\ }}}
-
-\newskip\aboveenvskipamount \aboveenvskipamount= 0pt
-\def\aboveenvbreak{{\advance\aboveenvskipamount by \parskip
-\endgraf \ifdim\lastskip<\aboveenvskipamount
-\removelastskip \penalty-50 \vskip\aboveenvskipamount \fi}}
-
-\def\afterenvbreak{\endgraf \ifdim\lastskip<\aboveenvskipamount
-\removelastskip \penalty-50 \vskip\aboveenvskipamount \fi}
-
-\def\lisp{\aboveenvbreak\begingroup\inENV %This group ends at the end of the @lisp body
-\hfuzz=12truept % Don't be fussy
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% Single space lines
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Elisp{\endgroup\afterenvbreak}%
-\parskip=0pt \advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing
-\parindent=0pt
-\let\exdent=\internalexdent
-\obeyspaces \obeylines \tt \rawbackslash
-\def\next##1{}\next}
-
-
-\let\example=\lisp
-\def\Eexample{\Elisp}
-
-\let\smallexample=\lisp
-\def\Esmallexample{\Elisp}
-
-% Macro for 9 pt. examples, necessary to print with 5" lines.
-% From Pavel@xerox. This is not really used unless the
-% @smallbook command is given.
-
-\def\smalllispx{\aboveenvbreak\begingroup\inENV
-% This group ends at the end of the @lisp body
-\hfuzz=12truept % Don't be fussy
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% Single space lines
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Esmalllisp{\endgroup\afterenvbreak}%
-\parskip=0pt \advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing
-\parindent=0pt
-\let\exdent=\internalexdent
-\obeyspaces \obeylines \ninett \rawbackslash
-\def\next##1{}\next}
-
-% This is @display; same as @lisp except use roman font.
-
-\def\display{\begingroup\inENV %This group ends at the end of the @display body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% Single space lines
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Edisplay{\endgroup\afterenvbreak}%
-\parskip=0pt \advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing
-\parindent=0pt
-\let\exdent=\internalexdent
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-% This is @format; same as @lisp except use roman font and don't narrow margins
-
-\def\format{\begingroup\inENV %This group ends at the end of the @format body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Eformat{\endgroup\afterenvbreak}
-\parskip=0pt \parindent=0pt
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-% @flushleft and @flushright
-
-\def\flushleft{\begingroup\inENV %This group ends at the end of the @format body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-% This also causes @ to work when the directive name
-% is terminated by end of line.
-\let\par=\lisppar
-\def\Eflushleft{\endgroup\afterenvbreak}%
-\parskip=0pt \parindent=0pt
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-\def\flushright{\begingroup\inENV %This group ends at the end of the @format body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-% This also causes @ to work when the directive name
-% is terminated by end of line.
-\let\par=\lisppar
-\def\Eflushright{\endgroup\afterenvbreak}%
-\parskip=0pt \parindent=0pt
-\advance \leftskip by 0pt plus 1fill
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-% @quotation - narrow the margins.
-
-\def\quotation{\begingroup\inENV %This group ends at the end of the @quotation body
-{\parskip=0pt % because we will skip by \parskip too, later
-\aboveenvbreak}%
-\singlespace
-\parindent=0pt
-\def\Equotation{\par\endgroup\afterenvbreak}%
-\advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing}
+% This is the definition that ^^M gets inside @lisp, @example, and other
+% such environments. \null is better than a space, since it doesn't
+% have any width.
+\def\lisppar{\null\endgraf}
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
+% This space is always present above and below environments.
+\newskip\envskipamount \envskipamount = 0pt
-\newskip\defbodyindent \defbodyindent=36pt
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
+% Make spacing and below environment symmetrical. We use \parskip here
+% to help in doing that, since in @example-like environments \parskip
+% is reset to zero; thus the \afterenvbreak inserts no space -- but the
+% start of the next paragraph will insert \parskip.
+%
+\def\aboveenvbreak{{%
+ % =10000 instead of <10000 because of a special case in \itemzzz and
+ % \sectionheading, q.v.
+ \ifnum \lastpenalty=10000 \else
+ \advance\envskipamount by \parskip
+ \endgraf
+ \ifdim\lastskip<\envskipamount
+ \removelastskip
+ % it's not a good place to break if the last penalty was \nobreak
+ % or better ...
+ \ifnum\lastpenalty<10000 \penalty-50 \fi
+ \vskip\envskipamount
+ \fi
+ \fi
+}}
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested %
-\global\advance\parencount by 1 }
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
-% also in that case restore the outer-level definition of (.
-\ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
-\global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}} \def\clnr{{\sf\char`\)}} \def\ampnr{\&}
-\def\lbrb{{\tt\char`\[}} \def\rbrb{{\tt\char`\]}}
+\let\afterenvbreak = \aboveenvbreak
+
+% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will
+% also clear it, so that its embedded environments do the narrowing again.
+\let\nonarrowing=\relax
+
+% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
+% environment contents.
+\font\circle=lcircle10
+\newdimen\circthick
+\newdimen\cartouter\newdimen\cartinner
+\newskip\normbskip\newskip\normpskip\newskip\normlskip
+\circthick=\fontdimen8\circle
+%
+\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
+\def\ctr{{\hskip 6pt\circle\char'010}}
+\def\cbl{{\circle\char'012\hskip -6pt}}
+\def\cbr{{\hskip 6pt\circle\char'011}}
+\def\carttop{\hbox to \cartouter{\hskip\lskip
+ \ctl\leaders\hrule height\circthick\hfil\ctr
+ \hskip\rskip}}
+\def\cartbot{\hbox to \cartouter{\hskip\lskip
+ \cbl\leaders\hrule height\circthick\hfil\cbr
+ \hskip\rskip}}
+%
+\newskip\lskip\newskip\rskip
+
+\envdef\cartouche{%
+ \ifhmode\par\fi % can't be in the midst of a paragraph.
+ \startsavinginserts
+ \lskip=\leftskip \rskip=\rightskip
+ \leftskip=0pt\rightskip=0pt % we want these *outside*.
+ \cartinner=\hsize \advance\cartinner by-\lskip
+ \advance\cartinner by-\rskip
+ \cartouter=\hsize
+ \advance\cartouter by 18.4pt % allow for 3pt kerns on either
+ % side, and for 6pt waste from
+ % each corner char, and rule thickness
+ \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+ % Flag to tell @lisp, etc., not to narrow margin.
+ \let\nonarrowing = t%
+ \vbox\bgroup
+ \baselineskip=0pt\parskip=0pt\lineskip=0pt
+ \carttop
+ \hbox\bgroup
+ \hskip\lskip
+ \vrule\kern3pt
+ \vbox\bgroup
+ \kern3pt
+ \hsize=\cartinner
+ \baselineskip=\normbskip
+ \lineskip=\normlskip
+ \parskip=\normpskip
+ \vskip -\parskip
+ \comment % For explanation, see the end of \def\group.
+}
+\def\Ecartouche{%
+ \ifhmode\par\fi
+ \kern3pt
+ \egroup
+ \kern3pt\vrule
+ \hskip\rskip
+ \egroup
+ \cartbot
+ \egroup
+ \checkinserts
+}
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-\def\defname #1#2{%
-\leftskip = 0in %
-\noindent %
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1 %
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}%
-\tolerance=10000 \hbadness=10000 % Make all lines underfull and no complaints
-{\df #1}\enskip % Generate function name
+% This macro is called at the beginning of all the @example variants,
+% inside a group.
+\def\nonfillstart{%
+ \aboveenvbreak
+ \hfuzz = 12pt % Don't be fussy
+ \sepspaces % Make spaces be word-separators rather than space tokens.
+ \let\par = \lisppar % don't ignore blank lines
+ \obeylines % each line of input is a line of output
+ \parskip = 0pt
+ \parindent = 0pt
+ \emergencystretch = 0pt % don't try to avoid overfull boxes
+ \ifx\nonarrowing\relax
+ \advance \leftskip by \lispnarrowing
+ \exdentamount=\lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+ \let\exdent=\nofillexdent
}
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
+% If you want all examples etc. small: @set dispenvsize small.
+% If you want even small examples the full size: @set dispenvsize nosmall.
+% This affects the following displayed environments:
+% @example, @display, @format, @lisp
+%
+\def\smallword{small}
+\def\nosmallword{nosmall}
+\let\SETdispenvsize\relax
+\def\setnormaldispenv{%
+ \ifx\SETdispenvsize\smallword
+ \smallexamplefonts \rm
+ \fi
+}
+\def\setsmalldispenv{%
+ \ifx\SETdispenvsize\nosmallword
+ \else
+ \smallexamplefonts \rm
+ \fi
+}
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in \leftskip=\defbodyindent %
-\begingroup\obeylines\activeparens\spacesplit#3}
+% We often define two environments, @foo and @smallfoo.
+% Let's do it by one command:
+\def\makedispenv #1#2{
+ \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
+ \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
+ \expandafter\let\csname E#1\endcsname \afterenvbreak
+ \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
+}
-\def\defmethparsebody #1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in \leftskip=\defbodyindent %
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
+% Define two synonyms:
+\def\maketwodispenvs #1#2#3{
+ \makedispenv{#1}{#3}
+ \makedispenv{#2}{#3}
+}
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
+% @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
+%
+% @smallexample and @smalllisp: use smaller fonts.
+% Originally contributed by Pavel@xerox.
+%
+\maketwodispenvs {lisp}{example}{%
+ \nonfillstart
+ \tt
+ \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+ \gobble % eat return
+}
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
+% @display/@smalldisplay: same as @lisp except keep current font.
+%
+\makedispenv {display}{%
+ \nonfillstart
+ \gobble
+}
-% So much for the things common to all kinds of definitions.
+% @format/@smallformat: same as @display except don't narrow margins.
+%
+\makedispenv{format}{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \gobble
+}
-% Define @defun.
+% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+\envdef\flushleft{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \gobble
+}
+\let\Eflushleft = \afterenvbreak
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
+% @flushright.
+%
+\envdef\flushright{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \advance\leftskip by 0pt plus 1fill
+ \gobble
+}
+\let\Eflushright = \afterenvbreak
-\def\defunargs #1{\functionparens \sl #1%
-\ifnum\parencount=0 \else \errmessage{unbalanced parens in @def arguments}\fi%
-\interlinepenalty=10000
-\endgraf\vskip -\parskip \penalty 10000}
-% Do complete processing of one @defun or @defunx line already parsed.
+% @quotation does normal linebreaking (hence we can't use \nonfillstart)
+% and narrows the margins. We keep \parskip nonzero in general, since
+% we're doing normal filling. So, when using \aboveenvbreak and
+% \afterenvbreak, temporarily make \parskip 0.
+%
+\envdef\quotation{%
+ {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+ \parindent=0pt
+ %
+ % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+ \ifx\nonarrowing\relax
+ \advance\leftskip by \lispnarrowing
+ \advance\rightskip by \lispnarrowing
+ \exdentamount = \lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+ \parsearg\quotationlabel
+}
-% @deffn Command forward-char nchars
+% We have retained a nonzero parskip for the environment, since we're
+% doing normal filling.
+%
+\def\Equotation{%
+ \par
+ \ifx\quotationauthor\undefined\else
+ % indent a bit.
+ \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
+ \fi
+ {\parskip=0pt \afterenvbreak}%
+}
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
+% If we're given an argument, typeset it in bold with a colon after.
+\def\quotationlabel#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty \else
+ {\bf #1: }%
+ \fi
+}
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup}
-% @defun == @deffn Function
+% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
+% If we want to allow any <char> as delimiter,
+% we need the curly braces so that makeinfo sees the @verb command, eg:
+% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
+%
+% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
+%
+% [Knuth] p.344; only we need to do the other characters Texinfo sets
+% active too. Otherwise, they get lost as the first character on a
+% verbatim line.
+\def\dospecials{%
+ \do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+ \do\<\do\>\do\|\do\@\do+\do\"%
+}
+%
+% [Knuth] p. 380
+\def\uncatcodespecials{%
+ \def\do##1{\catcode`##1=\other}\dospecials}
+%
+% [Knuth] pp. 380,381,391
+% Disable Spanish ligatures ?` and !` of \tt font
+\begingroup
+ \catcode`\`=\active\gdef`{\relax\lq}
+\endgroup
+%
+% Setup for the @verb command.
+%
+% Eight spaces for a tab
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+\endgroup
+%
+\def\setupverb{%
+ \tt % easiest (and conventionally used) font for verbatim
+ \def\par{\leavevmode\endgraf}%
+ \catcode`\`=\active
+ \tabeightspaces
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count
+ % must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
+}
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
+% Setup for the @verbatim environment
+%
+% Real tab expansion
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+\def\starttabbox{\setbox0=\hbox\bgroup}
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabexpand{%
+ \catcode`\^^I=\active
+ \def^^I{\leavevmode\egroup
+ \dimen0=\wd0 % the width so far, or since the previous tab
+ \divide\dimen0 by\tabw
+ \multiply\dimen0 by\tabw % compute previous multiple of \tabw
+ \advance\dimen0 by\tabw % advance to next multiple of \tabw
+ \wd0=\dimen0 \box0 \starttabbox
+ }%
+ }
+\endgroup
+\def\setupverbatim{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ % Easiest (and conventionally used) font for verbatim
+ \tt
+ \def\par{\leavevmode\egroup\box0\endgraf}%
+ \catcode`\`=\active
+ \tabexpand
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count
+ % must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
+ \everypar{\starttabbox}%
+}
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters. Before first delimiter expect a
+% right brace, after last delimiter expect closing brace:
+%
+% \def\doverb'{'<char>#1<char>'}'{#1}
+%
+% [Knuth] p. 382; only eat outer {}
+\begingroup
+ \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
+ \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+\endgroup
+%
+\def\verb{\begingroup\setupverb\doverb}
+%
+%
+% Do the @verbatim magic: define the macro \doverbatim so that
+% the (first) argument ends when '@end verbatim' is reached, ie:
+%
+% \def\doverbatim#1@end verbatim{#1}
+%
+% For Texinfo it's a lot easier than for LaTeX,
+% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+% we need not redefine '\', '{' and '}'.
+%
+% Inspired by LaTeX's verbatim command set [latex.ltx]
+%
+\begingroup
+ \catcode`\ =\active
+ \obeylines %
+ % ignore everything up to the first ^^M, that's the newline at the end
+ % of the @verbatim input line itself. Otherwise we get an extra blank
+ % line in the output.
+ \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+ % We really want {...\end verbatim} in the body of the macro, but
+ % without the active space; thus we have to use \xdef and \gobble.
+\endgroup
+%
+\envdef\verbatim{%
+ \setupverbatim\doverbatim
}
+\let\Everbatim = \afterenvbreak
-% @defmac == @deffn Macro
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
+%
+\def\doverbatiminclude#1{%
+ {%
+ \makevalueexpandable
+ \setupverbatim
+ \input #1
+ \afterenvbreak
+ }%
+}
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
+% @copying ... @end copying.
+% Save the text away for @insertcopying later.
+%
+% We save the uninterpreted tokens, rather than creating a box.
+% Saving the text in a box would be much easier, but then all the
+% typesetting commands (@smallbook, font changes, etc.) have to be done
+% beforehand -- and a) we want @copying to be done first in the source
+% file; b) letting users define the frontmatter in as flexible order as
+% possible is very desirable.
+%
+\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
+\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+%
+\def\insertcopying{%
+ \begingroup
+ \parindent = 0pt % paragraph indentation looks wrong on title page
+ \scanexp\copyingtext
+ \endgroup
}
-% @defspec == @deffn Special Form
+\message{defuns,}
+% @defun etc.
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
+\newskip\defbodyindent \defbodyindent=.4in
+\newskip\defargsindent \defargsindent=50pt
+\newskip\deflastargmargin \deflastargmargin=18pt
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special form}%
-\defunargs {#2}\endgroup %
+% Start the processing of @deffn:
+\def\startdefun{%
+ \ifnum\lastpenalty<10000
+ \medbreak
+ \else
+ % If there are two @def commands in a row, we'll have a \nobreak,
+ % which is there to keep the function description together with its
+ % header. But if there's nothing but headers, we need to allow a
+ % break somewhere. Check specifically for penalty 10002, inserted
+ % by \defargscommonending, instead of 10000, since the sectioning
+ % commands also insert a nobreak penalty, and we don't want to allow
+ % a break between a section heading and a defun.
+ %
+ \ifnum\lastpenalty=10002 \penalty2000 \fi
+ %
+ % Similarly, after a section heading, do not allow a break.
+ % But do insert the glue.
+ \medskip % preceded by discardable penalty, so not a breakpoint
+ \fi
+ %
+ \parindent=0in
+ \advance\leftskip by \defbodyindent
+ \exdentamount=\defbodyindent
}
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
-\def\defunx #1 {\errmessage{@defunx in invalid context}}
-\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
-\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
+\def\dodefunx#1{%
+ % First, check whether we are in the right environment:
+ \checkenv#1%
+ %
+ % As above, allow line break if we have multiple x headers in a row.
+ % It's not a great place, though.
+ \ifnum\lastpenalty=10002 \penalty3000 \fi
+ %
+ % And now, it's time to reuse the body of the original defun:
+ \expandafter\gobbledefun#1%
+}
+\def\gobbledefun#1\startdefun{}
-% @defmethod, and so on
+% \printdefunline \deffnheader{text}
+%
+\def\printdefunline#1#2{%
+ \begingroup
+ % call \deffnheader:
+ #1#2 \endheader
+ % common ending:
+ \interlinepenalty = 10000
+ \advance\rightskip by 0pt plus 1fil
+ \endgraf
+ \nobreak\vskip -\parskip
+ \penalty 10002 % signal to \startdefun and \dodefunx
+ % Some of the @defun-type tags do not enable magic parentheses,
+ % rendering the following check redundant. But we don't optimize.
+ \checkparencounts
+ \endgroup
+}
-% @defop {Funny Method} foo-class frobnicate argument
+\def\Edefun{\endgraf\medbreak}
-\def\defop #1 {\def\defoptype{#1}%
-\defmethparsebody\Edefop\defopx\defopheader}
+% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
+% the only thing remainnig is to define \deffnheader.
+%
+\def\makedefun#1{%
+ \expandafter\let\csname E#1\endcsname = \Edefun
+ \edef\temp{\noexpand\domakedefun
+ \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
+ \temp
+}
-\def\defopheader #1#2#3{\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
+% \domakedefun \deffn \deffnx \deffnheader
+%
+% Define \deffn and \deffnx, without parameters.
+% \deffnheader has to be defined explicitly.
+%
+\def\domakedefun#1#2#3{%
+ \envdef#1{%
+ \startdefun
+ \parseargusing\activeparens{\printdefunline#3}%
+ }%
+ \def#2{\dodefunx#1}%
+ \def#3%
}
-% @defmethod == @defop Method
+%%% Untyped functions:
+
+% @deffn category name args
+\makedefun{deffn}{\deffngeneral{}}
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
+% @deffn category class name args
+\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
-\def\defmethodheader #1#2#3{\dosubind {fn}{\code{#2}}{on #1}% entry in function index
-\begingroup\defname {#2}{Operation on #1}%
-\defunargs {#3}\endgroup %
+% \defopon {category on}class name args
+\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \deffngeneral {subind}category name args
+%
+\def\deffngeneral#1#2 #3 #4\endheader{%
+ % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
+ \dosubind{fn}{\code{#3}}{#1}%
+ \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
}
-% @defcv {Class Option} foo-class foo-flag
+%%% Typed functions:
+
+% @deftypefn category type name args
+\makedefun{deftypefn}{\deftypefngeneral{}}
+
+% @deftypeop category class type name args
+\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
-\def\defcv #1 {\def\defcvtype{#1}%
-\defmethparsebody\Edefcv\defcvx\defcvheader}
+% \deftypeopon {category on}class type name args
+\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype of #1}%
-\defvarargs {#3}\endgroup %
+% \deftypefngeneral {subind}category type name args
+%
+\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{fn}{\code{#4}}{#1}%
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-% @defivar == @defcv {Instance Variable}
+%%% Typed variables:
+
+% @deftypevr category type var args
+\makedefun{deftypevr}{\deftypecvgeneral{}}
+
+% @deftypecv category class type var args
+\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
-\def\defivar{\defmethparsebody\Edefivar\defivarx\defivarheader}
+% \deftypecvof {category of}class type var args
+\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance variable of #1}%
-\defvarargs {#3}\endgroup %
+% \deftypecvgeneral {subind}category type var args
+%
+\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{vr}{\code{#4}}{#1}%
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
+%%% Untyped variables:
-\def\defopx #1 {\errmessage{@defopx in invalid context}}
-\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
-\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
-\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
+% @defvr category var args
+\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
-% Now @defvar
+% @defcv category class var args
+\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\vskip -\parskip \penalty 10000}
+% \defcvof {category of}class var args
+\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-% @defvr Counter foo-count
+%%% Type:
+% @deftp category name args
+\makedefun{deftp}#1 #2 #3\endheader{%
+ \doind{tp}{\code{#2}}%
+ \defname{#1}{}{#2}\defunargs{#3\unskip}%
+}
-\def\defvr{\defmethparsebody\Edefvr\defvrx\defvrheader}
+% Remaining @defun-like shortcuts:
+\makedefun{defun}{\deffnheader{\putwordDeffunc} }
+\makedefun{defmac}{\deffnheader{\putwordDefmac} }
+\makedefun{defspec}{\deffnheader{\putwordDefspec} }
+\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
+\makedefun{defvar}{\defvrheader{\putwordDefvar} }
+\makedefun{defopt}{\defvrheader{\putwordDefopt} }
+\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
+\makedefun{defmethod}{\defopon\putwordMethodon}
+\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
+\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
+\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
+
+% \defname, which formats the name of the @def (not the args).
+% #1 is the category, such as "Function".
+% #2 is the return type, if any.
+% #3 is the function name.
+%
+% We are followed by (but not passed) the arguments, if any.
+%
+\def\defname#1#2#3{%
+ % Get the values of \leftskip and \rightskip as they were outside the @def...
+ \advance\leftskip by -\defbodyindent
+ %
+ % How we'll format the type name. Putting it in brackets helps
+ % distinguish it from the body text that may end up on the next line
+ % just below it.
+ \def\temp{#1}%
+ \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
+ %
+ % Figure out line sizes for the paragraph shape.
+ % The first line needs space for \box0; but if \rightskip is nonzero,
+ % we need only space for the part of \box0 which exceeds it:
+ \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ % The continuations:
+ \dimen2=\hsize \advance\dimen2 by -\defargsindent
+ % (plain.tex says that \dimen1 should be used only as global.)
+ \parshape 2 0in \dimen0 \defargsindent \dimen2
+ %
+ % Put the type name to the right margin.
+ \noindent
+ \hbox to 0pt{%
+ \hfil\box0 \kern-\hsize
+ % \hsize has to be shortened this way:
+ \kern\leftskip
+ % Intentionally do not respect \rightskip, since we need the space.
+ }%
+ %
+ % Allow all lines to be underfull without complaint:
+ \tolerance=10000 \hbadness=10000
+ \exdentamount=\defbodyindent
+ {%
+ % defun fonts. We use typewriter by default (used to be bold) because:
+ % . we're printing identifiers, they should be in tt in principle.
+ % . in languages with many accents, such as Czech or French, it's
+ % common to leave accents off identifiers. The result looks ok in
+ % tt, but exceedingly strange in rm.
+ % . we don't want -- and --- to be treated as ligatures.
+ % . this still does not fix the ?` and !` ligatures, but so far no
+ % one has made identifiers using them :).
+ \df \tt
+ \def\temp{#2}% return value type
+ \ifx\temp\empty\else \tclose{\temp} \fi
+ #3% output function name
+ }%
+ {\rm\enskip}% hskip 0.5 em of \tenrm
+ %
+ \boldbrax
+ % arguments will be output next, if any.
+}
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
+% Print arguments in slanted roman (not ttsl), inconsistently with using
+% tt for the name. This is because literal text is sometimes needed in
+% the argument list (groff manual), and ttsl and tt are not very
+% distinguishable. Prevent hyphenation at `-' chars.
+%
+\def\defunargs#1{%
+ % use sl by default (not ttsl),
+ % tt for the names.
+ \df \sl \hyphenchar\font=0
+ %
+ % On the other hand, if an argument has two dashes (for instance), we
+ % want a way to get ttsl. Let's try @var for that.
+ \let\var=\ttslanted
+ #1%
+ \sl\hyphenchar\font=45
+}
-% @defvar == @defvr Variable
+% We want ()&[] to print specially on the defun line.
+%
+\def\activeparens{%
+ \catcode`\(=\active \catcode`\)=\active
+ \catcode`\[=\active \catcode`\]=\active
+ \catcode`\&=\active
+}
-\def\defvar{\defparsebody\Edefvar\defvarx\defvarheader}
+% Make control sequences which act like normal parenthesis chars.
+\let\lparen = ( \let\rparen = )
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
+% Be sure that we always have a definition for `(', etc. For example,
+% if the fn name has parens in it, \boldbrax will not be in effect yet,
+% so TeX would otherwise complain about undefined control sequence.
+{
+ \activeparens
+ \global\let(=\lparen \global\let)=\rparen
+ \global\let[=\lbrack \global\let]=\rbrack
+ \global\let& = \&
+
+ \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+ \gdef\magicamp{\let&=\amprm}
}
-% @defopt == @defvr {User Option}
+\newcount\parencount
-\def\defopt{\defparsebody\Edefopt\defoptx\defoptheader}
+% If we encounter &foo, then turn on ()-hacking afterwards
+\newif\ifampseen
+\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+
+\def\parenfont{%
+ \ifampseen
+ % At the first level, print parens in roman,
+ % otherwise use the default font.
+ \ifnum \parencount=1 \rm \fi
+ \else
+ % The \sf parens (in \boldbrax) actually are a little bolder than
+ % the contained text. This is especially needed for [ and ] .
+ \sf
+ \fi
+}
+\def\infirstlevel#1{%
+ \ifampseen
+ \ifnum\parencount=1
+ #1%
+ \fi
+ \fi
+}
+\def\bfafterword#1 {#1 \bf}
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
+\def\opnr{%
+ \global\advance\parencount by 1
+ {\parenfont(}%
+ \infirstlevel \bfafterword
+}
+\def\clnr{%
+ {\parenfont)}%
+ \infirstlevel \sl
+ \global\advance\parencount by -1
}
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
+\newcount\brackcount
+\def\lbrb{%
+ \global\advance\brackcount by 1
+ {\bf[}%
+}
+\def\rbrb{%
+ {\bf]}%
+ \global\advance\brackcount by -1
+}
+
+\def\checkparencounts{%
+ \ifnum\parencount=0 \else \badparencount \fi
+ \ifnum\brackcount=0 \else \badbrackcount \fi
+}
+\def\badparencount{%
+ \errmessage{Unbalanced parentheses in @def}%
+ \global\parencount=0
+}
+\def\badbrackcount{%
+ \errmessage{Unbalanced square braces in @def}%
+ \global\brackcount=0
+}
-\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
-\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
+\message{macros,}
+% @macro.
+
+% To do this right we need a feature of e-TeX, \scantokens,
+% which we arrange to emulate with a temporary file in ordinary TeX.
+\ifx\eTeXversion\undefined
+ \newwrite\macscribble
+ \def\scantokens#1{%
+ \toks0={#1}%
+ \immediate\openout\macscribble=\jobname.tmp
+ \immediate\write\macscribble{\the\toks0}%
+ \immediate\closeout\macscribble
+ \input \jobname.tmp
+ }
+\fi
+
+\def\scanmacro#1{%
+ \begingroup
+ \newlinechar`\^^M
+ \let\xeatspaces\eatspaces
+ % Undo catcode changes of \startcontents and \doprintindex
+ % When called from @insertcopying or (short)caption, we need active
+ % backslash to get it printed correctly. Previously, we had
+ % \catcode`\\=\other instead. We'll see whether a problem appears
+ % with macro expansion. --kasal, 19aug04
+ \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+ % ... and \example
+ \spaceisspace
+ %
+ % Append \endinput to make sure that TeX does not see the ending newline.
+ %
+ % I've verified that it is necessary both for e-TeX and for ordinary TeX
+ % --kasal, 29nov03
+ \scantokens{#1\endinput}%
+ \endgroup
+}
-\def\deftpargs #1{\bf \defvarargs{#1}}
+\def\scanexp#1{%
+ \edef\temp{\noexpand\scanmacro{#1}}%
+ \temp
+}
-% @deftp Class window height width ...
+\newcount\paramno % Count of parameters
+\newtoks\macname % Macro name
+\newif\ifrecursive % Is it recursive?
+
+% List of all defined macros in the form
+% \definedummyword\macro1\definedummyword\macro2...
+% Currently is also contains all @aliases; the list can be split
+% if there is a need.
+\def\macrolist{}
+
+% Add the macro to \macrolist
+\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
+\def\addtomacrolistxxx#1{%
+ \toks0 = \expandafter{\macrolist\definedummyword#1}%
+ \xdef\macrolist{\the\toks0}%
+}
-\def\deftp{\defmethparsebody\Edeftp\deftpx\deftpheader}
+% Utility routines.
+% This does \let #1 = #2, with \csnames; that is,
+% \let \csname#1\endcsname = \csname#2\endcsname
+% (except of course we have to play expansion games).
+%
+\def\cslet#1#2{%
+ \expandafter\let
+ \csname#1\expandafter\endcsname
+ \csname#2\endcsname
+}
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
+% Trim leading and trailing spaces off a string.
+% Concepts from aro-bend problem 15 (see CTAN).
+{\catcode`\@=11
+\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
+\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
+\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
+\def\unbrace#1{#1}
+\unbrace{\gdef\trim@@@ #1 } #2@{#1}
+}
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
+% Trim a single trailing ^^M off a string.
+{\catcode`\^^M=\other \catcode`\Q=3%
+\gdef\eatcr #1{\eatcra #1Q^^MQ}%
+\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
+\gdef\eatcrb#1Q#2Q{#1}%
+}
-\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
+% Macro bodies are absorbed as an argument in a context where
+% all characters are catcode 10, 11 or 12, except \ which is active
+% (as in normal texinfo). It is necessary to change the definition of \.
+
+% It's necessary to have hard CRs when the macro is executed. This is
+% done by making ^^M (\endlinechar) catcode 12 when reading the macro
+% body, and then making it the \newlinechar in \scanmacro.
+
+\def\scanctxt{%
+ \catcode`\"=\other
+ \catcode`\+=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\@=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\~=\other
+}
-\message{cross reference,}
-% Define cross-reference macros
-\newwrite \auxfile
+\def\scanargctxt{%
+ \scanctxt
+ \catcode`\\=\other
+ \catcode`\^^M=\other
+}
-% \setref{foo} defines a cross-reference point named foo.
+\def\macrobodyctxt{%
+ \scanctxt
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\^^M=\other
+ \usembodybackslash
+}
-\def\setref#1{%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ysectionnumberandtype}}
+\def\macroargctxt{%
+ \scanctxt
+ \catcode`\\=\other
+}
-\def\unnumbsetref#1{%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ynothing}}
+% \mbodybackslash is the definition of \ in @macro bodies.
+% It maps \foo\ => \csname macarg.foo\endcsname => #N
+% where N is the macro parameter number.
+% We define \csname macarg.\endcsname to be \realbackslash, so
+% \\ in macro replacement text gets you a backslash.
-% \xref and \pxref generate cross references to specified points.
+{\catcode`@=0 @catcode`@\=@active
+ @gdef@usembodybackslash{@let\=@mbodybackslash}
+ @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
+}
+\expandafter\def\csname macarg.\endcsname{\realbackslash}
+
+\def\macro{\recursivefalse\parsearg\macroxxx}
+\def\rmacro{\recursivetrue\parsearg\macroxxx}
+
+\def\macroxxx#1{%
+ \getargs{#1}% now \macname is the macname and \argl the arglist
+ \ifx\argl\empty % no arguments
+ \paramno=0%
+ \else
+ \expandafter\parsemargdef \argl;%
+ \fi
+ \if1\csname ismacro.\the\macname\endcsname
+ \message{Warning: redefining \the\macname}%
+ \else
+ \expandafter\ifx\csname \the\macname\endcsname \relax
+ \else \errmessage{Macro name \the\macname\space already defined}\fi
+ \global\cslet{macsave.\the\macname}{\the\macname}%
+ \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
+ \addtomacrolist{\the\macname}%
+ \fi
+ \begingroup \macrobodyctxt
+ \ifrecursive \expandafter\parsermacbody
+ \else \expandafter\parsemacbody
+ \fi}
+
+\parseargdef\unmacro{%
+ \if1\csname ismacro.#1\endcsname
+ \global\cslet{#1}{macsave.#1}%
+ \global\expandafter\let \csname ismacro.#1\endcsname=0%
+ % Remove the macro name from \macrolist:
+ \begingroup
+ \expandafter\let\csname#1\endcsname \relax
+ \let\definedummyword\unmacrodo
+ \xdef\macrolist{\macrolist}%
+ \endgroup
+ \else
+ \errmessage{Macro #1 not defined}%
+ \fi
+}
-\def\pxref #1{see \xrefX [#1,,,,,,,]}
-\def\xref #1{See \xrefX [#1,,,,,,,]}
-\def\xrefX [#1,#2,#3,#4,#5,#6]{%
-\setbox1=\hbox{\i{\losespace#5{}}}%
-\setbox0=\hbox{\losespace#3{}}%
-\ifdim \wd0 =0pt \setbox0=\hbox{\losespace#1{}}\fi%
-\ifdim \wd1 >0pt%
-section \unhbox0{} in \unhbox1%
-\else%
-\refx{#1-snt} [\unhbox0], page\tie \refx{#1-pg}%
-\fi }
+% Called by \do from \dounmacro on each macro. The idea is to omit any
+% macro definitions that have been changed to \relax.
+%
+\def\unmacrodo#1{%
+ \ifx #1\relax
+ % remove this
+ \else
+ \noexpand\definedummyword \noexpand#1%
+ \fi
+}
-% \dosetq is the interface for calls from other macros
+% This makes use of the obscure feature that if the last token of a
+% <parameter list> is #, then the preceding argument is delimited by
+% an opening brace, and that opening brace is not consumed.
+\def\getargs#1{\getargsxxx#1{}}
+\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
+\def\getmacname #1 #2\relax{\macname={#1}}
+\def\getmacargs#1{\def\argl{#1}}
+
+% Parse the optional {params} list. Set up \paramno and \paramlist
+% so \defmacro knows what to do. Define \macarg.blah for each blah
+% in the params list, to be ##N where N is the position in that list.
+% That gets used by \mbodybackslash (above).
+
+% We need to get `macro parameter char #' into several definitions.
+% The technique used is stolen from LaTeX: let \hash be something
+% unexpandable, insert that wherever you need a #, and then redefine
+% it to # just before using the token list produced.
+%
+% The same technique is used to protect \eatspaces till just before
+% the macro is used.
+
+\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
+ \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
+\def\parsemargdefxxx#1,{%
+ \if#1;\let\next=\relax
+ \else \let\next=\parsemargdefxxx
+ \advance\paramno by 1%
+ \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+ {\xeatspaces{\hash\the\paramno}}%
+ \edef\paramlist{\paramlist\hash\the\paramno,}%
+ \fi\next}
+
+% These two commands read recursive and nonrecursive macro bodies.
+% (They're different since rec and nonrec macros end differently.)
+
+\long\def\parsemacbody#1@end macro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\long\def\parsermacbody#1@end rmacro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+
+% This defines the macro itself. There are six cases: recursive and
+% nonrecursive macros of zero, one, and many arguments.
+% Much magic with \expandafter here.
+% \xdef is used so that macro definitions will survive the file
+% they're defined in; @include reads the file inside a group.
+\def\defmacro{%
+ \let\hash=##% convert placeholders to macro parameter chars
+ \ifrecursive
+ \ifcase\paramno
+ % 0
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\scanmacro{\temp}}%
+ \or % 1
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\braceorline
+ \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+ \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+ \egroup\noexpand\scanmacro{\temp}}%
+ \else % many
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \fi
+ \else
+ \ifcase\paramno
+ % 0
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \or % 1
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\braceorline
+ \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+ \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \else % many
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \expandafter\noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \fi
+ \fi}
+
+\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
+
+% \braceorline decides whether the next nonwhitespace character is a
+% {. If so it reads up to the closing }, if not, it reads the whole
+% line. Whatever was read is then fed to the next control sequence
+% as an argument (by \parsebrace or \parsearg)
+\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorlinexxx{%
+ \ifx\nchar\bgroup\else
+ \expandafter\parsearg
+ \fi \next}
+
+
+% @alias.
+% We need some trickery to remove the optional spaces around the equal
+% sign. Just make them active and then expand them all to nothing.
+\def\alias{\parseargusing\obeyspaces\aliasxxx}
+\def\aliasxxx #1{\aliasyyy#1\relax}
+\def\aliasyyy #1=#2\relax{%
+ {%
+ \expandafter\let\obeyedspace=\empty
+ \addtomacrolist{#1}%
+ \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
+ }%
+ \next
+}
-\def\dosetq #1#2{{\let\folio=0%
-\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}%
-\next}}
-% \internalsetq {foo}{page} expands into CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
+\message{cross references,}
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
+\newwrite\auxfile
-% Things to be expanded by \internalsetq
+\newif\ifhavexrefs % True if xref values are known.
+\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-\def\Ypagenumber{\folio}
+% @inforef is relatively simple.
+\def\inforef #1{\inforefzzz #1,,,,**}
+\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+ node \samp{\ignorespaces#1{}}}
+
+% @node's only job in TeX is to define \lastnode, which is used in
+% cross-references. The @node line might or might not have commas, and
+% might or might not have spaces before the first comma, like:
+% @node foo , bar , ...
+% We don't want such trailing spaces in the node name.
+%
+\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
+%
+% also remove a trailing comma, in case of something like this:
+% @node Help-Cross, , , Cross-refs
+\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
+\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
-\def\Ynothing{}
+\let\nwnode=\node
+\let\lastnode=\empty
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 chapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 section\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-section\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-section\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Define @refx to reference a specific cross-reference string.
-
-\def\refx#1{%
-{%
-\expandafter\ifx\csname X#1\endcsname\relax
-% If not defined, say something at least.
-\expandafter\gdef\csname X#1\endcsname {$<$undefined$>$}%
-\message {WARNING: Cross-reference "#1" used but not yet defined}%
-\message {}%
-\fi %
-\csname X#1\endcsname %It's defined, so just use it.
-}}
+% Write a cross-reference definition for the current node. #1 is the
+% type (Ynumbered, Yappendix, Ynothing).
+%
+\def\donoderef#1{%
+ \ifx\lastnode\empty\else
+ \setref{\lastnode}{#1}%
+ \global\let\lastnode=\empty
+ \fi
+}
-% Read the last existing aux file, if any. No error if none exists.
+% @anchor{NAME} -- define xref target at arbitrary point.
+%
+\newcount\savesfregister
+%
+\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
+
+% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+% anchor), which consists of three parts:
+% 1) NAME-title - the current sectioning name taken from \thissection,
+% or the anchor name.
+% 2) NAME-snt - section number and type, passed as the SNT arg, or
+% empty for anchors.
+% 3) NAME-pg - the page number.
+%
+% This is called from \donoderef, \anchor, and \dofloat. In the case of
+% floats, there is an additional part, which is not written here:
+% 4) NAME-lof - the text as it should appear in a @listoffloats.
+%
+\def\setref#1#2{%
+ \pdfmkdest{#1}%
+ \iflinks
+ {%
+ \atdummies % preserve commands, but don't expand them
+ \edef\writexrdef##1##2{%
+ \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
+ ##1}{##2}}% these are parameters of \writexrdef
+ }%
+ \toks0 = \expandafter{\thissection}%
+ \immediate \writexrdef{title}{\the\toks0 }%
+ \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+ \writexrdef{pg}{\folio}% will be written later, during \shipout
+ }%
+ \fi
+}
-% This is the macro invoked by entries in the aux file.
-\def\xrdef #1#2{
-{\catcode`\'=\other\expandafter \gdef \csname X#1\endcsname {#2}}}
+% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
+% the node name, #2 the name of the Info cross-reference, #3 the printed
+% node name, #4 the name of the Info file, #5 the name of the printed
+% manual. All but the node name can be omitted.
+%
+\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
+\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
+\def\ref#1{\xrefX[#1,,,,,,,]}
+\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
+ \unsepspaces
+ \def\printedmanual{\ignorespaces #5}%
+ \def\printedrefname{\ignorespaces #3}%
+ \setbox1=\hbox{\printedmanual\unskip}%
+ \setbox0=\hbox{\printedrefname\unskip}%
+ \ifdim \wd0 = 0pt
+ % No printed node name was explicitly given.
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
+ % Use the node name inside the square brackets.
+ \def\printedrefname{\ignorespaces #1}%
+ \else
+ % Use the actual chapter/section title appear inside
+ % the square brackets. Use the real section title if we have it.
+ \ifdim \wd1 > 0pt
+ % It is in another manual, so we don't have it.
+ \def\printedrefname{\ignorespaces #1}%
+ \else
+ \ifhavexrefs
+ % We know the real title if we have the xref values.
+ \def\printedrefname{\refx{#1-title}{}}%
+ \else
+ % Otherwise just copy the Info node name.
+ \def\printedrefname{\ignorespaces #1}%
+ \fi%
+ \fi
+ \fi
+ \fi
+ %
+ % Make link in pdf output.
+ \ifpdf
+ \leavevmode
+ \getfilename{#4}%
+ {\turnoffactive
+ % See comments at \activebackslashdouble.
+ {\activebackslashdouble \xdef\pdfxrefdest{#1}%
+ \backslashparens\pdfxrefdest}%
+ %
+ \ifnum\filenamelength>0
+ \startlink attr{/Border [0 0 0]}%
+ goto file{\the\filename.pdf} name{\pdfxrefdest}%
+ \else
+ \startlink attr{/Border [0 0 0]}%
+ goto name{\pdfmkpgn{\pdfxrefdest}}%
+ \fi
+ }%
+ \linkcolor
+ \fi
+ %
+ % Float references are printed completely differently: "Figure 1.2"
+ % instead of "[somenode], p.3". We distinguish them by the
+ % LABEL-title being set to a magic string.
+ {%
+ % Have to otherify everything special to allow the \csname to
+ % include an _ in the xref name, etc.
+ \indexnofonts
+ \turnoffactive
+ \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+ \csname XR#1-title\endcsname
+ }%
+ \iffloat\Xthisreftitle
+ % If the user specified the print name (third arg) to the ref,
+ % print it instead of our usual "Figure 1.2".
+ \ifdim\wd0 = 0pt
+ \refx{#1-snt}{}%
+ \else
+ \printedrefname
+ \fi
+ %
+ % if the user also gave the printed manual name (fifth arg), append
+ % "in MANUALNAME".
+ \ifdim \wd1 > 0pt
+ \space \putwordin{} \cite{\printedmanual}%
+ \fi
+ \else
+ % node/anchor (non-float) references.
+ %
+ % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
+ % insert empty discretionaries after hyphens, which means that it will
+ % not find a line break at a hyphen in a node names. Since some manuals
+ % are best written with fairly long node names, containing hyphens, this
+ % is a loss. Therefore, we give the text of the node name again, so it
+ % is as if TeX is seeing it for the first time.
+ \ifdim \wd1 > 0pt
+ \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+ \else
+ % _ (for example) has to be the character _ for the purposes of the
+ % control sequence corresponding to the node, but it has to expand
+ % into the usual \leavevmode...\vrule stuff for purposes of
+ % printing. So we \turnoffactive for the \refx-snt, back on for the
+ % printing, back off for the \refx-pg.
+ {\turnoffactive
+ % Only output a following space if the -snt ref is nonempty; for
+ % @unnumbered and @anchor, it won't be.
+ \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+ \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+ }%
+ % output the `[mynode]' via a macro so it can be overridden.
+ \xrefprintnodename\printedrefname
+ %
+ % But we always want a comma and a space:
+ ,\space
+ %
+ % output the `page 3'.
+ \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% This macro is called from \xrefX for the `[nodename]' part of xref
+% output. It's a separate macro only so it can be changed more easily,
+% since square brackets don't work well in some documents. Particularly
+% one that Bob is working on :).
+%
+\def\xrefprintnodename#1{[#1]}
-{
-\catcode `\^^@=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\^^C=\other
-\catcode `\^^D=\other
-\catcode `\^^E=\other
-\catcode `\^^F=\other
-\catcode `\^^G=\other
-\catcode `\^^H=\other
-\catcode `\ =\other
-\catcode `\^^L=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\=\other
-\catcode `\^^[=\other
-\catcode `\^^\=\other
-\catcode `\^^]=\other
-\catcode `\^^^=\other
-\catcode `\^^_=\other
-\catcode `\@=\other
-\catcode `\^=\other
-\catcode `\~=\other
-\catcode `\[=\other
-\catcode `\]=\other
-\catcode`\"=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode `\$=\other
-\catcode `\#=\other
-\catcode `\&=\other
+% Things referred to by \setref.
+%
+\def\Ynothing{}
+\def\Yomitfromtoc{}
+\def\Ynumbered{%
+ \ifnum\secno=0
+ \putwordChapter@tie \the\chapno
+ \else \ifnum\subsecno=0
+ \putwordSection@tie \the\chapno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
+\def\Yappendix{%
+ \ifnum\secno=0
+ \putwordAppendix@tie @char\the\appendixno{}%
+ \else \ifnum\subsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie
+ @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
-% the aux file uses ' as the escape.
-% Turn off \ as an escape so we do not lose on
-% entries which were dumped with control sequences in their names.
-% For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
-% Reference to such entries still does not work the way one would wish,
-% but at least they do not bomb out when the aux file is read in.
+% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
+% If its value is nonempty, SUFFIX is output afterward.
+%
+\def\refx#1#2{%
+ {%
+ \indexnofonts
+ \otherbackslash
+ \expandafter\global\expandafter\let\expandafter\thisrefX
+ \csname XR#1\endcsname
+ }%
+ \ifx\thisrefX\relax
+ % If not defined, say something at least.
+ \angleleft un\-de\-fined\angleright
+ \iflinks
+ \ifhavexrefs
+ \message{\linenumber Undefined cross reference `#1'.}%
+ \else
+ \ifwarnedxrefs\else
+ \global\warnedxrefstrue
+ \message{Cross reference values unknown; you must run TeX again.}%
+ \fi
+ \fi
+ \fi
+ \else
+ % It's defined, so just use it.
+ \thisrefX
+ \fi
+ #2% Output the suffix in any case.
+}
-\catcode `\{=1 \catcode `\}=2
-\catcode `\%=\other
-\catcode `\'=0
-\catcode `\\=\other
+% This is the macro invoked by entries in the aux file. Usually it's
+% just a \def (we prepend XR to the control sequence name to avoid
+% collisions). But if this is a float type, we have more work to do.
+%
+\def\xrdef#1#2{%
+ \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+ %
+ % Was that xref control sequence that we just defined for a float?
+ \expandafter\iffloat\csname XR#1\endcsname
+ % it was a float, and we have the (safe) float type in \iffloattype.
+ \expandafter\let\expandafter\floatlist
+ \csname floatlist\iffloattype\endcsname
+ %
+ % Is this the first time we've seen this float type?
+ \expandafter\ifx\floatlist\relax
+ \toks0 = {\do}% yes, so just \do
+ \else
+ % had it before, so preserve previous elements in list.
+ \toks0 = \expandafter{\floatlist\do}%
+ \fi
+ %
+ % Remember this xref in the control sequence \floatlistFLOATTYPE,
+ % for later use in \listoffloats.
+ \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+ \fi
+}
-'openin 1 'jobname.aux
-'ifeof 1 'else 'closein 1 'input 'jobname.aux
-'fi
+% Read the last existing aux file, if any. No error if none exists.
+%
+\def\tryauxfile{%
+ \openin 1 \jobname.aux
+ \ifeof 1 \else
+ \readdatafile{aux}%
+ \global\havexrefstrue
+ \fi
+ \closein 1
}
-% Open the new aux file. Tex will close it automatically at exit.
+\def\setupdatafile{%
+ \catcode`\^^@=\other
+ \catcode`\^^A=\other
+ \catcode`\^^B=\other
+ \catcode`\^^C=\other
+ \catcode`\^^D=\other
+ \catcode`\^^E=\other
+ \catcode`\^^F=\other
+ \catcode`\^^G=\other
+ \catcode`\^^H=\other
+ \catcode`\^^K=\other
+ \catcode`\^^L=\other
+ \catcode`\^^N=\other
+ \catcode`\^^P=\other
+ \catcode`\^^Q=\other
+ \catcode`\^^R=\other
+ \catcode`\^^S=\other
+ \catcode`\^^T=\other
+ \catcode`\^^U=\other
+ \catcode`\^^V=\other
+ \catcode`\^^W=\other
+ \catcode`\^^X=\other
+ \catcode`\^^Z=\other
+ \catcode`\^^[=\other
+ \catcode`\^^\=\other
+ \catcode`\^^]=\other
+ \catcode`\^^^=\other
+ \catcode`\^^_=\other
+ % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
+ % in xref tags, i.e., node names. But since ^^e4 notation isn't
+ % supported in the main text, it doesn't seem desirable. Furthermore,
+ % that is not enough: for node names that actually contain a ^
+ % character, we would end up writing a line like this: 'xrdef {'hat
+ % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
+ % argument, and \hat is not an expandable control sequence. It could
+ % all be worked out, but why? Either we support ^^ or we don't.
+ %
+ % The other change necessary for this was to define \auxhat:
+ % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
+ % and then to call \auxhat in \setq.
+ %
+ \catcode`\^=\other
+ %
+ % Special characters. Should be turned off anyway, but...
+ \catcode`\~=\other
+ \catcode`\[=\other
+ \catcode`\]=\other
+ \catcode`\"=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\$=\other
+ \catcode`\#=\other
+ \catcode`\&=\other
+ \catcode`\%=\other
+ \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+ %
+ % This is to support \ in node names and titles, since the \
+ % characters end up in a \csname. It's easier than
+ % leaving it active and making its active definition an actual \
+ % character. What I don't understand is why it works in the *value*
+ % of the xrdef. Seems like it should be a catcode12 \, and that
+ % should not typeset properly. But it works, so I'm moving on for
+ % now. --karl, 15jan04.
+ \catcode`\\=\other
+ %
+ % Make the characters 128-255 be printing characters.
+ {%
+ \count1=128
+ \def\loop{%
+ \catcode\count1=\other
+ \advance\count1 by 1
+ \ifnum \count1<256 \loop \fi
+ }%
+ }%
+ %
+ % @ is our escape character in .aux files, and we need braces.
+ \catcode`\{=1
+ \catcode`\}=2
+ \catcode`\@=0
+}
-\openout \auxfile=\jobname.aux
+\def\readdatafile#1{%
+\begingroup
+ \setupdatafile
+ \input\jobname.#1
+\endgroup}
-% Footnotes.
+\message{insertions,}
+% including footnotes.
\newcount \footnoteno
+% The trailing space in the following definition for supereject is
+% vital for proper filling; pages come out unaligned when you do a
+% pagealignmacro call if that space before the closing brace is
+% removed. (Generally, numeric constants should always be followed by a
+% space to prevent strange expansion errors.)
\def\supereject{\par\penalty -20000\footnoteno =0 }
-\let\ptexfootnote=\footnote
+% @footnotestyle is meaningful for info output only.
+\let\footnotestyle=\comment
{\catcode `\@=11
-\gdef\footnote{\global\advance \footnoteno by \@ne
-\edef\thisfootno{$^{\the\footnoteno}$}%
-\let\@sf\empty
-\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
-\thisfootno\@sf\parsearg\footnotezzz}
-
-\gdef\footnotezzz #1{\insert\footins{
-\interlinepenalty\interfootnotelinepenalty
-\splittopskip\ht\strutbox % top baseline for broken footnotes
-\splitmaxdepth\dp\strutbox \floatingpenalty\@MM
-\leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
-\footstrut\hang\textindent{\thisfootno}#1\strut}}
+%
+% Auto-number footnotes. Otherwise like plain.
+\gdef\footnote{%
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
+ \global\advance\footnoteno by \@ne
+ \edef\thisfootno{$^{\the\footnoteno}$}%
+ %
+ % In case the footnote comes at the end of a sentence, preserve the
+ % extra spacing after we do the footnote number.
+ \let\@sf\empty
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
+ %
+ % Remove inadvertent blank space before typesetting the footnote number.
+ \unskip
+ \thisfootno\@sf
+ \dofootnote
+}%
+% Don't bother with the trickery in plain.tex to not require the
+% footnote text as a parameter. Our footnotes don't need to be so general.
+%
+% Oh yes, they do; otherwise, @ifset (and anything else that uses
+% \parseargline) fails inside footnotes because the tokens are fixed when
+% the footnote is read. --karl, 16nov96.
+%
+\gdef\dofootnote{%
+ \insert\footins\bgroup
+ % We want to typeset this text as a normal paragraph, even if the
+ % footnote reference occurs in (for example) a display environment.
+ % So reset some parameters.
+ \hsize=\pagewidth
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox
+ \floatingpenalty\@MM
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \spaceskip\z@skip
+ \xspaceskip\z@skip
+ \parindent\defaultparindent
+ %
+ \smallfonts \rm
+ %
+ % Because we use hanging indentation in footnotes, a @noindent appears
+ % to exdent this text, so make it be a no-op. makeinfo does not use
+ % hanging indentation so @noindent can still be needed within footnote
+ % text after an @example or the like (not that this is good style).
+ \let\noindent = \relax
+ %
+ % Hang the footnote text off the number. Use \everypar in case the
+ % footnote extends for more than one paragraph.
+ \everypar = {\hang}%
+ \textindent{\thisfootno}%
+ %
+ % Don't crash into the line above the footnote text. Since this
+ % expands into a box, it must come within the paragraph, lest it
+ % provide a place where TeX can split the footnote.
+ \footstrut
+ \futurelet\next\fo@t
+}
}%end \catcode `\@=11
-% End of control word definitions.
+% In case a @footnote appears in a vbox, save the footnote text and create
+% the real \insert just after the vbox finished. Otherwise, the insertion
+% would be lost.
+% Similarily, if a @footnote appears inside an alignment, save the footnote
+% text to a box and make the \insert when a row of the table is finished.
+% And the same can be done for other insert classes. --kasal, 16nov03.
-\message{and turning on texinfo input format.}
+% Replace the \insert primitive by a cheating macro.
+% Deeper inside, just make sure that the saved insertions are not spilled
+% out prematurely.
+%
+\def\startsavinginserts{%
+ \ifx \insert\ptexinsert
+ \let\insert\saveinsert
+ \else
+ \let\checkinserts\relax
+ \fi
+}
+
+% This \insert replacement works for both \insert\footins{foo} and
+% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
+%
+\def\saveinsert#1{%
+ \edef\next{\noexpand\savetobox \makeSAVEname#1}%
+ \afterassignment\next
+ % swallow the left brace
+ \let\temp =
+}
+\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
+\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
+
+\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
+
+\def\placesaveins#1{%
+ \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+ {\box#1}%
+}
+
+% eat @SAVE -- beware, all of them have catcode \other:
+{
+ \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-)
+ \gdef\gobblesave @SAVE{}
+}
+
+% initialization:
+\def\newsaveins #1{%
+ \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
+ \next
+}
+\def\newsaveinsX #1{%
+ \csname newbox\endcsname #1%
+ \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
+ \checksaveins #1}%
+}
+
+% initialize:
+\let\checkinserts\empty
+\newsaveins\footins
+\newsaveins\margin
-\newindex{cp}
-\newcodeindex{fn}
-\newcodeindex{vr}
-\newcodeindex{tp}
-\newcodeindex{ky}
-\newcodeindex{pg}
-% Set some numeric style parameters, for 8.5 x 11 format.
+% @image. We use the macros from epsf.tex to support this.
+% If epsf.tex is not installed and @image is used, we complain.
+%
+% Check for and read epsf.tex up front. If we read it only at @image
+% time, we might be inside a group, and then its definitions would get
+% undone and the next image would fail.
+\openin 1 = epsf.tex
+\ifeof 1 \else
+ % Do not bother showing banner with epsf.tex v2.7k (available in
+ % doc/epsf.tex and on ctan).
+ \def\epsfannounce{\toks0 = }%
+ \input epsf.tex
+\fi
+\closein 1
+%
+% We will only complain once about lack of epsf.tex.
+\newif\ifwarnednoepsf
+\newhelp\noepsfhelp{epsf.tex must be installed for images to
+ work. It is also included in the Texinfo distribution, or you can get
+ it from ftp://tug.org/tex/epsf.tex.}
+%
+\def\image#1{%
+ \ifx\epsfbox\undefined
+ \ifwarnednoepsf \else
+ \errhelp = \noepsfhelp
+ \errmessage{epsf.tex not found, images will be ignored}%
+ \global\warnednoepsftrue
+ \fi
+ \else
+ \imagexxx #1,,,,,\finish
+ \fi
+}
+%
+% Arguments to @image:
+% #1 is (mandatory) image filename; we tack on .eps extension.
+% #2 is (optional) width, #3 is (optional) height.
+% #4 is (ignored optional) html alt text.
+% #5 is (ignored optional) extension.
+% #6 is just the usual extra ignored arg for parsing this stuff.
+\newif\ifimagevmode
+\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
+ \catcode`\^^M = 5 % in case we're inside an example
+ \normalturnoffactive % allow _ et al. in names
+ % If the image is by itself, center it.
+ \ifvmode
+ \imagevmodetrue
+ \nobreak\bigskip
+ % Usually we'll have text after the image which will insert
+ % \parskip glue, so insert it here too to equalize the space
+ % above and below.
+ \nobreak\vskip\parskip
+ \nobreak
+ \line\bgroup
+ \fi
+ %
+ % Output the image.
+ \ifpdf
+ \dopdfimage{#1}{#2}{#3}%
+ \else
+ % \epsfbox itself resets \epsf?size at each figure.
+ \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+ \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+ \epsfbox{#1.eps}%
+ \fi
+ %
+ \ifimagevmode \egroup \bigbreak \fi % space after the image
+\endgroup}
+
+
+% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
+% etc. We don't actually implement floating yet, we always include the
+% float "here". But it seemed the best name for the future.
+%
+\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
-\hsize = 6.5in
-\parindent 15pt
-\parskip 18pt plus 1pt
-\baselineskip 15pt
-\advance\topskip by 1.2cm
+% There may be a space before second and/or third parameter; delete it.
+\def\eatcommaspace#1, {#1,}
+
+% #1 is the optional FLOATTYPE, the text label for this float, typically
+% "Figure", "Table", "Example", etc. Can't contain commas. If omitted,
+% this float will not be numbered and cannot be referred to.
+%
+% #2 is the optional xref label. Also must be present for the float to
+% be referable.
+%
+% #3 is the optional positioning argument; for now, it is ignored. It
+% will somehow specify the positions allowed to float to (here, top, bottom).
+%
+% We keep a separate counter for each FLOATTYPE, which we reset at each
+% chapter-level command.
+\let\resetallfloatnos=\empty
+%
+\def\dofloat#1,#2,#3,#4\finish{%
+ \let\thiscaption=\empty
+ \let\thisshortcaption=\empty
+ %
+ % don't lose footnotes inside @float.
+ %
+ % BEWARE: when the floats start float, we have to issue warning whenever an
+ % insert appears inside a float which could possibly float. --kasal, 26may04
+ %
+ \startsavinginserts
+ %
+ % We can't be used inside a paragraph.
+ \par
+ %
+ \vtop\bgroup
+ \def\floattype{#1}%
+ \def\floatlabel{#2}%
+ \def\floatloc{#3}% we do nothing with this yet.
+ %
+ \ifx\floattype\empty
+ \let\safefloattype=\empty
+ \else
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ \fi
+ %
+ % If label is given but no type, we handle that as the empty type.
+ \ifx\floatlabel\empty \else
+ % We want each FLOATTYPE to be numbered separately (Figure 1,
+ % Table 1, Figure 2, ...). (And if no label, no number.)
+ %
+ \expandafter\getfloatno\csname\safefloattype floatno\endcsname
+ \global\advance\floatno by 1
+ %
+ {%
+ % This magic value for \thissection is output by \setref as the
+ % XREFLABEL-title value. \xrefX uses it to distinguish float
+ % labels (which have a completely different output format) from
+ % node and anchor labels. And \xrdef uses it to construct the
+ % lists of floats.
+ %
+ \edef\thissection{\floatmagic=\safefloattype}%
+ \setref{\floatlabel}{Yfloat}%
+ }%
+ \fi
+ %
+ % start with \parskip glue, I guess.
+ \vskip\parskip
+ %
+ % Don't suppress indentation if a float happens to start a section.
+ \restorefirstparagraphindent
+}
+
+% we have these possibilities:
+% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
+% @float Foo,lbl & no caption: Foo 1.1
+% @float Foo & @caption{Cap}: Foo: Cap
+% @float Foo & no caption: Foo
+% @float ,lbl & Caption{Cap}: 1.1: Cap
+% @float ,lbl & no caption: 1.1
+% @float & @caption{Cap}: Cap
+% @float & no caption:
+%
+\def\Efloat{%
+ \let\floatident = \empty
+ %
+ % In all cases, if we have a float type, it comes first.
+ \ifx\floattype\empty \else \def\floatident{\floattype}\fi
+ %
+ % If we have an xref label, the number comes next.
+ \ifx\floatlabel\empty \else
+ \ifx\floattype\empty \else % if also had float type, need tie first.
+ \appendtomacro\floatident{\tie}%
+ \fi
+ % the number.
+ \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
+ \fi
+ %
+ % Start the printed caption with what we've constructed in
+ % \floatident, but keep it separate; we need \floatident again.
+ \let\captionline = \floatident
+ %
+ \ifx\thiscaption\empty \else
+ \ifx\floatident\empty \else
+ \appendtomacro\captionline{: }% had ident, so need a colon between
+ \fi
+ %
+ % caption text.
+ \appendtomacro\captionline{\scanexp\thiscaption}%
+ \fi
+ %
+ % If we have anything to print, print it, with space before.
+ % Eventually this needs to become an \insert.
+ \ifx\captionline\empty \else
+ \vskip.5\parskip
+ \captionline
+ %
+ % Space below caption.
+ \vskip\parskip
+ \fi
+ %
+ % If have an xref label, write the list of floats info. Do this
+ % after the caption, to avoid chance of it being a breakpoint.
+ \ifx\floatlabel\empty \else
+ % Write the text that goes in the lof to the aux file as
+ % \floatlabel-lof. Besides \floatident, we include the short
+ % caption if specified, else the full caption if specified, else nothing.
+ {%
+ \atdummies
+ %
+ % since we read the caption text in the macro world, where ^^M
+ % is turned into a normal character, we have to scan it back, so
+ % we don't write the literal three characters "^^M" into the aux file.
+ \scanexp{%
+ \xdef\noexpand\gtemp{%
+ \ifx\thisshortcaption\empty
+ \thiscaption
+ \else
+ \thisshortcaption
+ \fi
+ }%
+ }%
+ \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
+ \ifx\gtemp\empty \else : \gtemp \fi}}%
+ }%
+ \fi
+ \egroup % end of \vtop
+ %
+ % place the captured inserts
+ %
+ % BEWARE: when the floats start floating, we have to issue warning
+ % whenever an insert appears inside a float which could possibly
+ % float. --kasal, 26may04
+ %
+ \checkinserts
+}
+
+% Append the tokens #2 to the definition of macro #1, not expanding either.
+%
+\def\appendtomacro#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+
+% @caption, @shortcaption
+%
+\def\caption{\docaption\thiscaption}
+\def\shortcaption{\docaption\thisshortcaption}
+\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
+\def\defcaption#1#2{\egroup \def#1{#2}}
+
+% The parameter is the control sequence identifying the counter we are
+% going to use. Create it if it doesn't exist and assign it to \floatno.
+\def\getfloatno#1{%
+ \ifx#1\relax
+ % Haven't seen this figure type before.
+ \csname newcount\endcsname #1%
+ %
+ % Remember to reset this floatno at the next chap.
+ \expandafter\gdef\expandafter\resetallfloatnos
+ \expandafter{\resetallfloatnos #1=0 }%
+ \fi
+ \let\floatno#1%
+}
+
+% \setref calls this to get the XREFLABEL-snt value. We want an @xref
+% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we
+% first read the @float command.
+%
+\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
+
+% Magic string used for the XREFLABEL-title value, so \xrefX can
+% distinguish floats from other xref types.
+\def\floatmagic{!!float!!}
+
+% #1 is the control sequence we are passed; we expand into a conditional
+% which is true if #1 represents a float ref. That is, the magic
+% \thissection value which we \setref above.
+%
+\def\iffloat#1{\expandafter\doiffloat#1==\finish}
+%
+% #1 is (maybe) the \floatmagic string. If so, #2 will be the
+% (safe) float type for this float. We set \iffloattype to #2.
+%
+\def\doiffloat#1=#2=#3\finish{%
+ \def\temp{#1}%
+ \def\iffloattype{#2}%
+ \ifx\temp\floatmagic
+}
+
+% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
+%
+\parseargdef\listoffloats{%
+ \def\floattype{#1}% floattype
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ %
+ % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
+ \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
+ \ifhavexrefs
+ % if the user said @listoffloats foo but never @float foo.
+ \message{\linenumber No `\safefloattype' floats to list.}%
+ \fi
+ \else
+ \begingroup
+ \leftskip=\tocindent % indent these entries like a toc
+ \let\do=\listoffloatsdo
+ \csname floatlist\safefloattype\endcsname
+ \endgroup
+ \fi
+}
+
+% This is called on each entry in a list of floats. We're passed the
+% xref label, in the form LABEL-title, which is how we save it in the
+% aux file. We strip off the -title and look up \XRLABEL-lof, which
+% has the text we're supposed to typeset here.
+%
+% Figures without xref labels will not be included in the list (since
+% they won't appear in the aux file).
+%
+\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
+\def\listoffloatsdoentry#1-title\finish{{%
+ % Can't fully expand XR#1-lof because it can contain anything. Just
+ % pass the control sequence. On the other hand, XR#1-pg is just the
+ % page number, and we want to fully expand that so we can get a link
+ % in pdf output.
+ \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+ %
+ % use the same \entry macro we use to generate the TOC and index.
+ \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+ \writeentry
+}}
+
+\message{localization,}
+% and i18n.
+
+% @documentlanguage is usually given very early, just after
+% @setfilename. If done too late, it may not override everything
+% properly. Single argument is the language abbreviation.
+% It would be nice if we could set up a hyphenation file here.
+%
+\parseargdef\documentlanguage{%
+ \tex % read txi-??.tex file in plain TeX.
+ % Read the file if it exists.
+ \openin 1 txi-#1.tex
+ \ifeof 1
+ \errhelp = \nolanghelp
+ \errmessage{Cannot read language file txi-#1.tex}%
+ \else
+ \input txi-#1.tex
+ \fi
+ \closein 1
+ \endgroup
+}
+\newhelp\nolanghelp{The given language definition file cannot be found or
+is empty. Maybe you need to install it? In the current directory
+should work if nowhere else does.}
+
+
+% @documentencoding should change something in TeX eventually, most
+% likely, but for now just recognize it.
+\let\documentencoding = \comment
+
+
+% Page size parameters.
+%
+\newdimen\defaultparindent \defaultparindent = 15pt
+
+\chapheadingskip = 15pt plus 4pt minus 2pt
+\secheadingskip = 12pt plus 3pt minus 2pt
+\subsecheadingskip = 9pt plus 2pt minus 2pt
% Prevent underfull vbox error messages.
-\vbadness=10000
-
-% Use @smallbook to reset parameters for 7x9.5 format
-\def\smallbook{
-\global\lispnarrowing = 0.3in
-\global\baselineskip 12pt
-\global\parskip 3pt plus 1pt
-\global\hsize = 5in
-\global\doublecolumnhsize=2.4in \global\doublecolumnvsize=15.0in
-\global\vsize=7.5in
-\global\tolerance=700
-\global\hfuzz=1pt
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-\global\font\ninett=cmtt9
-
-\global\let\smalllisp=\smalllispx
-\global\let\smallexample=\smalllispx
-\global\def\Esmallexample{\Esmalllisp}
-}
-
-%% For a final copy, take out the rectangles
-%% that mark overfull boxes (in case you have decided
-%% that the text looks ok even though it passes the margin).
-\def\finalout{\overfullrule=0pt}
+\vbadness = 10000
+
+% Don't be so finicky about underfull hboxes, either.
+\hbadness = 2000
+
+% Following George Bush, just get rid of widows and orphans.
+\widowpenalty=10000
+\clubpenalty=10000
+
+% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
+% using an old version of TeX, don't do anything. We want the amount of
+% stretch added to depend on the line length, hence the dependence on
+% \hsize. We call this whenever the paper size is set.
+%
+\def\setemergencystretch{%
+ \ifx\emergencystretch\thisisundefined
+ % Allow us to assign to \emergencystretch anyway.
+ \def\emergencystretch{\dimen0}%
+ \else
+ \emergencystretch = .15\hsize
+ \fi
+}
+
+% Parameters in order: 1) textheight; 2) textwidth;
+% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
+% 7) physical page height; 8) physical page width.
+%
+% We also call \setleading{\textleading}, so the caller should define
+% \textleading. The caller should also set \parskip.
+%
+\def\internalpagesizes#1#2#3#4#5#6#7#8{%
+ \voffset = #3\relax
+ \topskip = #6\relax
+ \splittopskip = \topskip
+ %
+ \vsize = #1\relax
+ \advance\vsize by \topskip
+ \outervsize = \vsize
+ \advance\outervsize by 2\topandbottommargin
+ \pageheight = \vsize
+ %
+ \hsize = #2\relax
+ \outerhsize = \hsize
+ \advance\outerhsize by 0.5in
+ \pagewidth = \hsize
+ %
+ \normaloffset = #4\relax
+ \bindingoffset = #5\relax
+ %
+ \ifpdf
+ \pdfpageheight #7\relax
+ \pdfpagewidth #8\relax
+ \fi
+ %
+ \setleading{\textleading}
+ %
+ \parindent = \defaultparindent
+ \setemergencystretch
+}
+
+% @letterpaper (the default).
+\def\letterpaper{{\globaldefs = 1
+ \parskip = 3pt plus 2pt minus 1pt
+ \textleading = 13.2pt
+ %
+ % If page is nothing but text, make it come out even.
+ \internalpagesizes{46\baselineskip}{6in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{36pt}%
+ {11in}{8.5in}%
+}}
+
+% Use @smallbook to reset parameters for 7x9.25 trim size.
+\def\smallbook{{\globaldefs = 1
+ \parskip = 2pt plus 1pt
+ \textleading = 12pt
+ %
+ \internalpagesizes{7.5in}{5in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{16pt}%
+ {9.25in}{7in}%
+ %
+ \lispnarrowing = 0.3in
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = .5cm
+}}
+
+% Use @smallerbook to reset parameters for 6x9 trim size.
+% (Just testing, parameters still in flux.)
+\def\smallerbook{{\globaldefs = 1
+ \parskip = 1.5pt plus 1pt
+ \textleading = 12pt
+ %
+ \internalpagesizes{7.4in}{4.8in}%
+ {-.2in}{-.4in}%
+ {0pt}{14pt}%
+ {9in}{6in}%
+ %
+ \lispnarrowing = 0.25in
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = .4cm
+}}
+
+% Use @afourpaper to print on European A4 paper.
+\def\afourpaper{{\globaldefs = 1
+ \parskip = 3pt plus 2pt minus 1pt
+ \textleading = 13.2pt
+ %
+ % Double-side printing via postscript on Laserjet 4050
+ % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+ % To change the settings for a different printer or situation, adjust
+ % \normaloffset until the front-side and back-side texts align. Then
+ % do the same for \bindingoffset. You can set these for testing in
+ % your texinfo source file like this:
+ % @tex
+ % \global\normaloffset = -6mm
+ % \global\bindingoffset = 10mm
+ % @end tex
+ \internalpagesizes{51\baselineskip}{160mm}
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{44pt}%
+ {297mm}{210mm}%
+ %
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 5mm
+}}
+
+% Use @afivepaper to print on European A5 paper.
+% From romildo@urano.iceb.ufop.br, 2 July 2000.
+% He also recommends making @example and @lisp be small.
+\def\afivepaper{{\globaldefs = 1
+ \parskip = 2pt plus 1pt minus 0.1pt
+ \textleading = 12.5pt
+ %
+ \internalpagesizes{160mm}{120mm}%
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{8pt}%
+ {210mm}{148mm}%
+ %
+ \lispnarrowing = 0.2in
+ \tolerance = 800
+ \hfuzz = 1.2pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 2mm
+ \tableindent = 12mm
+}}
+
+% A specific text layout, 24x15cm overall, intended for A4 paper.
+\def\afourlatex{{\globaldefs = 1
+ \afourpaper
+ \internalpagesizes{237mm}{150mm}%
+ {\voffset}{4.6mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
+ %
+ % Must explicitly reset to 0 because we call \afourpaper.
+ \globaldefs = 0
+}}
+
+% Use @afourwide to print on A4 paper in landscape format.
+\def\afourwide{{\globaldefs = 1
+ \afourpaper
+ \internalpagesizes{241mm}{165mm}%
+ {\voffset}{-2.95mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
+ \globaldefs = 0
+}}
+
+% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
+% Perhaps we should allow setting the margins, \topskip, \parskip,
+% and/or leading, also. Or perhaps we should compute them somehow.
+%
+\parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
+\def\pagesizesyyy#1,#2,#3\finish{{%
+ \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
+ \globaldefs = 1
+ %
+ \parskip = 3pt plus 2pt minus 1pt
+ \setleading{\textleading}%
+ %
+ \dimen0 = #1
+ \advance\dimen0 by \voffset
+ %
+ \dimen2 = \hsize
+ \advance\dimen2 by \normaloffset
+ %
+ \internalpagesizes{#1}{\hsize}%
+ {\voffset}{\normaloffset}%
+ {\bindingoffset}{44pt}%
+ {\dimen0}{\dimen2}%
+}}
+
+% Set default to letter.
+%
+\letterpaper
+
+
+\message{and turning on texinfo input format.}
+
+% Define macros to output various characters with catcode for normal text.
+\catcode`\"=\other
+\catcode`\~=\other
+\catcode`\^=\other
+\catcode`\_=\other
+\catcode`\|=\other
+\catcode`\<=\other
+\catcode`\>=\other
+\catcode`\+=\other
+\catcode`\$=\other
+\def\normaldoublequote{"}
+\def\normaltilde{~}
+\def\normalcaret{^}
+\def\normalunderscore{_}
+\def\normalverticalbar{|}
+\def\normalless{<}
+\def\normalgreater{>}
+\def\normalplus{+}
+\def\normaldollar{$}%$ font-lock fix
+
+% This macro is used to make a character print one way in \tt
+% (where it can probably be output as-is), and another way in other fonts,
+% where something hairier probably needs to be done.
+%
+% #1 is what to print if we are indeed using \tt; #2 is what to print
+% otherwise. Since all the Computer Modern typewriter fonts have zero
+% interword stretch (and shrink), and it is reasonable to expect all
+% typewriter fonts to have this, we can check that font parameter.
+%
+\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
+
+% Same as above, but check for italic font. Actually this also catches
+% non-italic slanted fonts since it is impossible to distinguish them from
+% italic fonts. But since this is only used by $ and it uses \sl anyway
+% this is not a problem.
+\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary)
-% Define certain chars to be always in tt font.
+% (and those which the user can use as if they were ordinary).
+% Most of these we simply print from the \tt font, but for some, we can
+% use math or other variants that look better in normal text.
\catcode`\"=\active
-\def\activedoublequote{{\tt \char '042}}
+\def\activedoublequote{{\tt\char34}}
\let"=\activedoublequote
\catcode`\~=\active
-\def~{{\tt \char '176}}
+\def~{{\tt\char126}}
\chardef\hat=`\^
\catcode`\^=\active
\def^{{\tt \hat}}
+
\catcode`\_=\active
-\def_{{\tt \char '137}}
+\def_{\ifusingtt\normalunderscore\_}
+\let\realunder=_
+% Subroutine for the previous macro.
+\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
+
\catcode`\|=\active
-\def|{{\tt \char '174}}
+\def|{{\tt\char124}}
\chardef \less=`\<
\catcode`\<=\active
\def<{{\tt \less}}
\chardef \gtr=`\>
\catcode`\>=\active
\def>{{\tt \gtr}}
+\catcode`\+=\active
+\def+{{\tt \char 43}}
+\catcode`\$=\active
+\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+
+% If a .fmt file is being used, characters that might appear in a file
+% name cannot be active until we have parsed the command line.
+% So turn them off again, and have \everyjob (or @setfilename) turn them on.
+% \otherifyactive is called near the end of this file.
+\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
+
+% Used sometimes to turn off (effectively) the active characters even after
+% parsing them.
+\def\turnoffactive{%
+ \normalturnoffactive
+ \otherbackslash
+}
\catcode`\@=0
-% \rawbackslashxx output one backslash character in current font
-{\catcode`\\=\other
-@gdef@rawbackslashxx{\}}
+% \backslashcurfont outputs one backslash character in current font,
+% as in \char`\\.
+\global\chardef\backslashcurfont=`\\
+\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
+% \realbackslash is an actual character `\' with catcode other, and
+% \doublebackslash is two of them (for the pdf outlines).
+{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
+% In texinfo, backslash is an active character; it prints the backslash
+% in fixed width font.
+\catcode`\\=\active
+@def@normalbackslash{{@tt@backslashcurfont}}
+% On startup, @fixbackslash assigns:
+% @let \ = @normalbackslash
+
+% \rawbackslash defines an active \ to do \backslashcurfont.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
+@gdef@rawbackslash{@let\=@backslashcurfont}
+@gdef@otherbackslash{@let\=@realbackslash}
+
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'.
+%
+@def@normalturnoffactive{%
+ @let\=@normalbackslash
+ @let"=@normaldoublequote
+ @let~=@normaltilde
+ @let^=@normalcaret
+ @let_=@normalunderscore
+ @let|=@normalverticalbar
+ @let<=@normalless
+ @let>=@normalgreater
+ @let+=@normalplus
+ @let$=@normaldollar %$ font-lock fix
+ @unsepspaces
+}
+
+% Make _ and + \other characters, temporarily.
+% This is canceled by @fixbackslash.
+@otherifyactive
+
+% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
+% That is what \eatinput is for; after that, the `\' should revert to printing
+% a backslash.
+%
+@gdef@eatinput input texinfo{@fixbackslash}
+@global@let\ = @eatinput
+
+% On the other hand, perhaps the file did not have a `\input texinfo'. Then
+% the first `\' in the file would cause an error. This macro tries to fix
+% that, assuming it is called before the first `\' could plausibly occur.
+% Also turn back on active characters that might appear in the input
+% file name, in case not using a pre-dumped format.
+%
+@gdef@fixbackslash{%
+ @ifx\@eatinput @let\ = @normalbackslash @fi
+ @catcode`+=@active
+ @catcode`@_=@active
+}
% Say @foo, not \foo, in error messages.
-\escapechar=`\@
+@escapechar = `@@
-%% These look ok in all fonts, so just make them not special. The @rm below
-%% makes sure that the current font starts out as the newly loaded cmr10
-\catcode`\$=\other \catcode`\%=\other \catcode`\&=\other \catcode`\#=\other
+% These look ok in all fonts, so just make them not special.
+@catcode`@& = @other
+@catcode`@# = @other
+@catcode`@% = @other
-\catcode 17=0 @c Define control-q
-\catcode`\\=\active
-@let\=@normalbackslash
-@textfonts
-@rm
+@c Local variables:
+@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c page-delimiter: "^\\\\message"
+@c time-stamp-start: "def\\\\texinfoversion{"
+@c time-stamp-format: "%:y-%02m-%02d.%02H"
+@c time-stamp-end: "}"
+@c End:
+
+@c vim:sw=2:
+
+@ignore
+ arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
+@end ignore
diff --git a/lib/ext2fs/Makefile.in b/lib/ext2fs/Makefile.in
index 8840a321..c4a83298 100644
--- a/lib/ext2fs/Makefile.in
+++ b/lib/ext2fs/Makefile.in
@@ -79,6 +79,7 @@ OBJS= $(DEBUGFS_LIB_OBJS) $(RESIZE_LIB_OBJS) $(E2IMAGE_LIB_OBJS) \
res_gdt.o \
rw_bitmaps.o \
swapfs.o \
+ symlink.o \
tdb.o \
undo_io.o \
unix_io.o \
@@ -153,6 +154,7 @@ SRCS= ext2_err.c \
$(srcdir)/res_gdt.c \
$(srcdir)/rw_bitmaps.c \
$(srcdir)/swapfs.c \
+ $(srcdir)/symlink.c \
$(srcdir)/tdb.c \
$(srcdir)/test_io.c \
$(srcdir)/tst_badblocks.c \
@@ -180,7 +182,7 @@ ELF_SO_VERSION = 2
ELF_IMAGE = libext2fs
ELF_MYDIR = ext2fs
ELF_INSTALL_DIR = $(root_libdir)
-ELF_OTHER_LIBS = -L../.. -lcom_err
+ELF_OTHER_LIBS = -lcom_err
BSDLIB_VERSION = 2.1
BSDLIB_IMAGE = libext2fs
@@ -198,6 +200,7 @@ all:: ext2fs.pc
.c.o:
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
@CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
@@ -219,90 +222,100 @@ ext2fs.pc: $(srcdir)/ext2fs.pc.in $(top_builddir)/config.status
$(E) " CONFIG.STATUS $@"
$(Q) cd $(top_builddir); CONFIG_FILES=lib/ext2fs/ext2fs.pc ./config.status
-tst_badblocks: tst_badblocks.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_badblocks: tst_badblocks.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
- $(Q) $(CC) -o tst_badblocks tst_badblocks.o $(STATIC_LIBEXT2FS) \
- $(LIBCOM_ERR)
+ $(Q) $(CC) -o tst_badblocks tst_badblocks.o $(ALL_LDFLAGS) \
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_icount: $(srcdir)/icount.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_icount: $(srcdir)/icount.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_icount $(srcdir)/icount.c -DDEBUG $(ALL_CFLAGS) \
- $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_iscan: tst_iscan.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_iscan: tst_iscan.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
- $(Q) $(CC) -o tst_iscan tst_iscan.o $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(Q) $(CC) -o tst_iscan tst_iscan.o $(ALL_LDFLAGS) $(STATIC_LIBEXT2FS) \
+ $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_getsize: tst_getsize.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_getsize: tst_getsize.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_getsize tst_getsize.o $(STATIC_LIBEXT2FS) \
- $(LIBCOM_ERR)
+ $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS) \
+ $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_ismounted $(srcdir)/ismounted.c \
$(STATIC_LIBEXT2FS) -DDEBUG $(ALL_CFLAGS) \
- $(LIBCOM_ERR)
+ $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_byteswap: tst_byteswap.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_byteswap: tst_byteswap.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_byteswap tst_byteswap.o $(STATIC_LIBEXT2FS) \
- $(LIBCOM_ERR)
+ $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_bitops: tst_bitops.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_bitops: tst_bitops.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_bitops tst_bitops.o $(ALL_CFLAGS) \
- $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_getsectsize: tst_getsectsize.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_getsectsize: tst_getsectsize.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_sectgetsize tst_getsectsize.o \
- $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
tst_types.o: $(srcdir)/tst_types.c ext2_types.h
tst_types: tst_types.o ext2_types.h
$(E) " LD $@"
- $(Q) $(CC) -o tst_types tst_types.o
+ $(Q) $(CC) -o tst_types tst_types.o $(ALL_LDFLAGS) $(SYSLIBS)
tst_super_size.o: $(srcdir)/tst_super_size.c $(srcdir)/ext2_fs.h
tst_super_size: tst_super_size.o
$(E) " LD $@"
- $(Q) $(CC) -o tst_super_size tst_super_size.o
+ $(Q) $(CC) -o tst_super_size tst_super_size.o $(ALL_LDFLAGS) $(SYSLIBS)
tst_fs_struct.o: $(srcdir)/tst_fs_struct.c $(srcdir)/ext2fs.h
tst_fs_struct: tst_fs_struct.o
$(E) " LD $@"
- $(Q) $(CC) -o tst_fs_struct tst_fs_struct.o
+ $(Q) $(CC) -o tst_fs_struct tst_fs_struct.o $(SYSLIBS)
tst_inode_size.o: $(srcdir)/tst_inode_size.c $(srcdir)/ext2_fs.h
tst_inode_size: tst_inode_size.o
$(E) " LD $@"
- $(Q) $(CC) -o tst_inode_size tst_inode_size.o
+ $(Q) $(CC) -o tst_inode_size tst_inode_size.o $(ALL_LDFLAGS) $(SYSLIBS)
ext2_tdbtool: tdbtool.o
$(E) " LD $@"
- $(Q) $(CC) -o ext2_tdbtool tdbtool.o tdb.o
+ $(Q) $(CC) -o ext2_tdbtool tdbtool.o tdb.o $(ALL_LDFLAGS) $(SYSLIBS)
extent_dbg.c: $(srcdir)/extent_dbg.ct
$(E) " MK_CMDS $<"
$(Q) $(MK_CMDS) $(srcdir)/extent_dbg.ct
debug_cmds.c debug_cmds.h: $(top_srcdir)/debugfs/debug_cmds.ct
- $(E) " MK_CMDS $<@"
+ $(E) " MK_CMDS $<"
$(Q) $(MK_CMDS) $(top_srcdir)/debugfs/debug_cmds.ct
+extent_cmds.c extent_cmds.h: $(top_srcdir)/debugfs/extent_cmds.ct
+ $(E) " MK_CMDS $<"
+ $(Q) $(MK_CMDS) $(top_srcdir)/debugfs/extent_cmds.ct
+
DEBUG_OBJS= debug_cmds.o debugfs.o util.o ncheck.o icheck.o ls.o \
lsdel.o dump.o set_fields.o logdump.o htree.o unused.o \
- e2freefrag.o filefrag.o
+ e2freefrag.o filefrag.o extent_inode.o extent_cmds.o zap.o
debugfs.o: $(top_srcdir)/debugfs/debugfs.c
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+extent_inode.o: $(top_srcdir)/debugfs/extent_inode.c
+ $(E) " CC $<"
+ $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+
util.o: $(top_srcdir)/debugfs/util.c
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
@@ -343,6 +356,10 @@ unused.o: $(top_srcdir)/debugfs/unused.c
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+zap.o: $(top_srcdir)/debugfs/zap.c
+ $(E) " CC $<"
+ $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+
e2freefrag.o: $(top_srcdir)/misc/e2freefrag.c
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -DDEBUGFS -I$(top_srcdir)/debugfs -c $< -o $@
@@ -355,36 +372,47 @@ tst_bitmaps_cmd.c: tst_bitmaps_cmd.ct
$(E) " MK_CMDS $@"
$(Q) DIR=$(srcdir) $(MK_CMDS) $(srcdir)/tst_bitmaps_cmd.ct
-tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(STATIC_LIBEXT2FS) $(DEPLIBSS) \
- $(DEPLIBCOM_ERR)
+tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(srcdir)/blkmap64_rb.c \
+ $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBSS) $(DEPSTATIC_LIBCOM_ERR)
+ $(E) " LD $@"
+ $(Q) $(CC) -o $@ tst_bitmaps.o tst_bitmaps_cmd.o \
+ -DDEBUG_RB $(srcdir)/blkmap64_rb.c $(ALL_CFLAGS) \
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) $(STATIC_LIBCOM_ERR) \
+ $(SYSLIBS)
+
+tst_extents: $(srcdir)/extent.c $(DEBUG_OBJS) $(DEPSTATIC_LIBSS) \
+ $(STATIC_LIBE2P) $(DEPLIBUUID) $(DEPLIBBLKID) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
- $(Q) $(CC) -o $@ tst_bitmaps.o tst_bitmaps_cmd.o $(ALL_CFLAGS) \
- $(STATIC_LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR)
+ $(Q) $(CC) -o tst_extents $(srcdir)/extent.c \
+ $(ALL_CFLAGS) -DDEBUG $(DEBUG_OBJS) $(STATIC_LIBSS) \
+ $(STATIC_LIBE2P) $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) \
+ $(STATIC_LIBCOM_ERR) $(SYSLIBS) -I $(top_srcdir)/debugfs
-tst_extents: $(srcdir)/extent.c extent_dbg.c $(DEBUG_OBJS) $(DEPLIBSS) \
- $(LIBE2P) $(DEPLIBUUID) $(DEPLIBBLKID) $(DEPLIBCOM_ERR)
+tst_inline: $(srcdir)/inline.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
- $(Q) $(CC) -o tst_extents $(srcdir)/extent.c extent_dbg.c \
- $(ALL_CFLAGS) -DDEBUG $(DEBUG_OBJS) $(LIBSS) $(LIBE2P) \
- $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) $(LIBCOM_ERR) \
- -I $(top_srcdir)/debugfs
+ $(Q) $(CC) -o tst_inline $(srcdir)/inline.c $(ALL_CFLAGS) -DDEBUG \
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(SYSLIBS)
-tst_csum: csum.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR) \
+tst_csum: csum.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) $(STATIC_LIBE2P) \
$(top_srcdir)/lib/e2p/e2p.h
$(E) " LD $@"
$(Q) $(CC) -o tst_csum $(srcdir)/csum.c -DDEBUG \
- $(ALL_CFLAGS) $(STATIC_LIBEXT2FS) $(LIBCOM_ERR) $(LIBE2P)
+ $(ALL_CFLAGS) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \
+ $(STATIC_LIBE2P) $(SYSLIBS)
-tst_crc32c: $(srcdir)/crc32c.c
+tst_crc32c: $(srcdir)/crc32c.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(Q) $(CC) $(BUILD_LDFLAGS) $(ALL_CFLAGS) -o tst_crc32c $(srcdir)/crc32c.c \
- -DUNITTEST
+ -DUNITTEST $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \
+ $(SYSLIBS)
mkjournal: mkjournal.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
$(E) " LD $@"
- $(Q) $(CC) -o mkjournal $(srcdir)/mkjournal.c -DDEBUG $(STATIC_LIBEXT2FS) $(LIBCOM_ERR) $(ALL_CFLAGS)
+ $(Q) $(CC) -o mkjournal $(srcdir)/mkjournal.c -DDEBUG \
+ $(STATIC_LIBEXT2FS) $(LIBCOM_ERR) $(ALL_CFLAGS) $(SYSLIBS)
check:: tst_bitops tst_badblocks tst_iscan tst_types tst_icount \
- tst_super_size tst_types tst_inode_size tst_csum tst_crc32c tst_bitmaps
+ tst_super_size tst_types tst_inode_size tst_csum tst_crc32c tst_bitmaps \
+ tst_inline
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_bitops
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_badblocks
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_iscan
@@ -393,6 +421,7 @@ check:: tst_bitops tst_badblocks tst_iscan tst_types tst_icount \
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_super_size
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_inode_size
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_csum
+ LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_inline
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_crc32c
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) \
./tst_bitmaps -f $(srcdir)/tst_bitmaps_cmds > tst_bitmaps_out
@@ -403,11 +432,14 @@ check:: tst_bitops tst_badblocks tst_iscan tst_types tst_icount \
LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) \
./tst_bitmaps -t 3 -f $(srcdir)/tst_bitmaps_cmds > tst_bitmaps_out
diff $(srcdir)/tst_bitmaps_exp tst_bitmaps_out
+ LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) \
+ ./tst_bitmaps -l -f $(srcdir)/tst_bitmaps_cmds > tst_bitmaps_out
+ diff $(srcdir)/tst_bitmaps_exp tst_bitmaps_out
installdirs::
$(E) " MKINSTALLDIRS $(libdir) $(includedir)/ext2fs"
$(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
- $(DESTDIR)$(includedir)/ext2fs $(DESTDIR)$(libdir)/pkgconfig
+ $(DESTDIR)$(includedir)/ext2fs $(DESTDIR)$(pkgconfigdir)
install:: all $(HFILES) $(HFILES_IN) installdirs ext2fs.pc
$(E) " INSTALL_DATA $(libdir)/libext2fs.a"
@@ -422,12 +454,12 @@ install:: all $(HFILES) $(HFILES_IN) installdirs ext2fs.pc
echo " INSTALL_DATA $(includedir)/ext2fs/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(includedir)/ext2fs/$$i; \
done
- $(E) " INSTALL_DATA $(libdir)/pkgconfig/ext2fs.pc"
- $(Q) $(INSTALL_DATA) ext2fs.pc $(DESTDIR)$(libdir)/pkgconfig/ext2fs.pc
+ $(E) " INSTALL_DATA $(pkgconfigdir)/ext2fs.pc"
+ $(Q) $(INSTALL_DATA) ext2fs.pc $(DESTDIR)$(pkgconfigdir)/ext2fs.pc
uninstall::
$(RM) -f $(DESTDIR)$(libdir)/libext2fs.a \
- $(DESTDIR)$(libdir)/pkgconfig/ext2fs.pc
+ $(DESTDIR)$(pkgconfigdir)/ext2fs.pc
$(RM) -rf $(DESTDIR)$(includedir)/ext2fs
clean::
@@ -435,8 +467,9 @@ clean::
tst_badblocks tst_iscan ext2_err.et ext2_err.c ext2_err.h \
tst_byteswap tst_ismounted tst_getsize tst_sectgetsize \
tst_bitops tst_types tst_icount tst_super_size tst_csum \
- tst_bitmaps tst_bitmaps_out tst_bitmaps_cmd.c \
- ext2_tdbtool mkjournal debug_cmds.c \
+ tst_bitmaps tst_bitmaps_out tst_extents tst_inline \
+ tst_inline_data tst_inode_size tst_bitmaps_cmd.c \
+ ext2_tdbtool mkjournal debug_cmds.c extent_cmds.c \
../libext2fs.a ../libext2fs_p.a ../libext2fs_chk.a \
crc32c_table.h gen_crc32ctable tst_crc32c
@@ -453,7 +486,7 @@ $(OBJS): subdirs
gen_crc32ctable: $(srcdir)/gen_crc32ctable.c
$(E) " CC $@"
- $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -o gen_crc32ctable \
+ $(Q) $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o gen_crc32ctable \
$(srcdir)/gen_crc32ctable.c
crc32c_table.h: gen_crc32ctable
@@ -544,10 +577,11 @@ block.o: $(srcdir)/block.c $(top_builddir)/lib/config.h \
$(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
bmap.o: $(srcdir)/bmap.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/ext2_fs.h \
- $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
- $(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fsP.h \
+ $(srcdir)/ext2fs.h $(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/ext2_ext_attr.h \
+ $(srcdir)/bitops.h
check_desc.o: $(srcdir)/check_desc.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/ext2_fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
@@ -642,7 +676,7 @@ fileio.o: $(srcdir)/fileio.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
$(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
+ $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h $(srcdir)/ext2fsP.h
finddev.o: $(srcdir)/finddev.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/ext2_fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
@@ -862,6 +896,12 @@ swapfs.o: $(srcdir)/swapfs.c $(top_builddir)/lib/config.h \
$(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
+symlink.o: $(srcdir)/symlink.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/ext2_fs.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
+ $(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
+ $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
tdb.o: $(srcdir)/tdb.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/tdb.h
test_io.o: $(srcdir)/test_io.c $(top_builddir)/lib/config.h \
diff --git a/lib/ext2fs/alloc.c b/lib/ext2fs/alloc.c
index 775dfcc4..0acbc4e6 100644
--- a/lib/ext2fs/alloc.c
+++ b/lib/ext2fs/alloc.c
@@ -27,50 +27,17 @@
#include "ext2fs.h"
/*
- * Check for uninit block bitmaps and deal with them appropriately
+ * Clear the uninit block bitmap flag if necessary
*/
-static void check_block_uninit(ext2_filsys fs, ext2fs_block_bitmap map,
- dgrp_t group)
+static void clear_block_uninit(ext2_filsys fs, dgrp_t group)
{
- blk_t i;
- blk64_t blk, super_blk, old_desc_blk, new_desc_blk;
- int old_desc_blocks;
-
if (!(EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) ||
!(ext2fs_bg_flags_test(fs, group, EXT2_BG_BLOCK_UNINIT)))
return;
- blk = (group * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block;
-
- ext2fs_super_and_bgd_loc2(fs, group, &super_blk,
- &old_desc_blk, &new_desc_blk, 0);
-
- 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 + fs->super->s_reserved_gdt_blocks;
-
- for (i=0; i < fs->super->s_blocks_per_group; i++, blk++)
- ext2fs_fast_unmark_block_bitmap2(map, blk);
-
- blk = (group * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block;
- for (i=0; i < fs->super->s_blocks_per_group; i++, blk++) {
- if ((blk == super_blk) ||
- (old_desc_blk && old_desc_blocks &&
- (blk >= old_desc_blk) &&
- (blk < old_desc_blk + old_desc_blocks)) ||
- (new_desc_blk && (blk == new_desc_blk)) ||
- (blk == ext2fs_block_bitmap_loc(fs, group)) ||
- (blk == ext2fs_inode_bitmap_loc(fs, group)) ||
- (blk >= ext2fs_inode_table_loc(fs, group) &&
- (blk < ext2fs_inode_table_loc(fs, group)
- + fs->inode_blocks_per_group)))
- ext2fs_fast_mark_block_bitmap2(map, blk);
- }
+ /* uninit block bitmaps are now initialized in read_bitmaps() */
+
ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
ext2fs_group_desc_csum_set(fs, group);
ext2fs_mark_super_dirty(fs);
@@ -95,10 +62,11 @@ static void check_inode_uninit(ext2_filsys fs, ext2fs_inode_bitmap map,
ext2fs_fast_unmark_inode_bitmap2(map, ino);
ext2fs_bg_flags_clear(fs, group, EXT2_BG_INODE_UNINIT);
+ /* Mimics what the kernel does */
+ ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
ext2fs_group_desc_csum_set(fs, group);
ext2fs_mark_ib_dirty(fs);
ext2fs_mark_super_dirty(fs);
- check_block_uninit(fs, fs->block_map, group);
}
/*
@@ -169,8 +137,8 @@ errcode_t ext2fs_new_inode(ext2_filsys fs, ext2_ino_t dir,
errcode_t ext2fs_new_block2(ext2_filsys fs, blk64_t goal,
ext2fs_block_bitmap map, blk64_t *ret)
{
- blk64_t i;
- int c_ratio;
+ errcode_t retval;
+ blk64_t b = 0;
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
@@ -180,29 +148,21 @@ errcode_t ext2fs_new_block2(ext2_filsys fs, blk64_t goal,
return EXT2_ET_NO_BLOCK_BITMAP;
if (!goal || (goal >= ext2fs_blocks_count(fs->super)))
goal = fs->super->s_first_data_block;
- i = goal;
- c_ratio = 1 << ext2fs_get_bitmap_granularity(map);
- if (c_ratio > 1)
- goal &= ~EXT2FS_CLUSTER_MASK(fs);
- check_block_uninit(fs, map,
- (i - fs->super->s_first_data_block) /
- EXT2_BLOCKS_PER_GROUP(fs->super));
- do {
- if (((i - fs->super->s_first_data_block) %
- EXT2_BLOCKS_PER_GROUP(fs->super)) == 0)
- check_block_uninit(fs, map,
- (i - fs->super->s_first_data_block) /
- EXT2_BLOCKS_PER_GROUP(fs->super));
-
- if (!ext2fs_fast_test_block_bitmap2(map, i)) {
- *ret = i;
- return 0;
- }
- i = (i + c_ratio) & ~(c_ratio - 1);
- if (i >= ext2fs_blocks_count(fs->super))
- i = fs->super->s_first_data_block;
- } while (i != goal);
- return EXT2_ET_BLOCK_ALLOC_FAIL;
+ goal &= ~EXT2FS_CLUSTER_MASK(fs);
+
+ retval = ext2fs_find_first_zero_block_bitmap2(map,
+ goal, ext2fs_blocks_count(fs->super) - 1, &b);
+ if ((retval == ENOENT) && (goal != fs->super->s_first_data_block))
+ retval = ext2fs_find_first_zero_block_bitmap2(map,
+ fs->super->s_first_data_block, goal - 1, &b);
+ if (retval == ENOENT)
+ return EXT2_ET_BLOCK_ALLOC_FAIL;
+ if (retval)
+ return retval;
+
+ clear_block_uninit(fs, ext2fs_group_of_blk2(fs, b));
+ *ret = b;
+ return 0;
}
errcode_t ext2fs_new_block(ext2_filsys fs, blk_t goal,
diff --git a/lib/ext2fs/alloc_sb.c b/lib/ext2fs/alloc_sb.c
index 0d1c0000..8788c009 100644
--- a/lib/ext2fs/alloc_sb.c
+++ b/lib/ext2fs/alloc_sb.c
@@ -47,7 +47,7 @@ int ext2fs_reserve_super_and_bgd(ext2_filsys fs,
{
blk64_t super_blk, old_desc_blk, new_desc_blk;
blk_t used_blks;
- int j, old_desc_blocks, num_blocks;
+ int old_desc_blocks, num_blocks;
ext2fs_super_and_bgd_loc2(fs, group, &super_blk,
&old_desc_blk, &new_desc_blk, &used_blks);
@@ -65,12 +65,11 @@ int ext2fs_reserve_super_and_bgd(ext2_filsys fs,
ext2fs_mark_block_bitmap2(bmap, 0);
if (old_desc_blk) {
- if (fs->super->s_reserved_gdt_blocks && fs->block_map == bmap)
- ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
- for (j=0; j < old_desc_blocks; j++)
- if (old_desc_blk + j < ext2fs_blocks_count(fs->super))
- ext2fs_mark_block_bitmap2(bmap,
- old_desc_blk + j);
+ num_blocks = old_desc_blocks;
+ if (old_desc_blk + num_blocks >= ext2fs_blocks_count(fs->super))
+ num_blocks = ext2fs_blocks_count(fs->super) -
+ old_desc_blk;
+ ext2fs_mark_block_bitmap_range2(bmap, old_desc_blk, num_blocks);
}
if (new_desc_blk)
ext2fs_mark_block_bitmap2(bmap, new_desc_blk);
diff --git a/lib/ext2fs/alloc_stats.c b/lib/ext2fs/alloc_stats.c
index adec3636..1f58e001 100644
--- a/lib/ext2fs/alloc_stats.c
+++ b/lib/ext2fs/alloc_stats.c
@@ -106,3 +106,44 @@ void ext2fs_set_block_alloc_stats_callback(ext2_filsys fs,
fs->block_alloc_stats = func;
}
+
+void ext2fs_block_alloc_stats_range(ext2_filsys fs, blk64_t blk,
+ blk_t num, int inuse)
+{
+#ifndef OMIT_COM_ERR
+ if (blk + num > ext2fs_blocks_count(fs->super)) {
+ com_err("ext2fs_block_alloc_stats_range", 0,
+ "Illegal block range: %llu (%u) ",
+ (unsigned long long) blk, num);
+ return;
+ }
+#endif
+ if (inuse == 0)
+ return;
+ if (inuse > 0) {
+ ext2fs_mark_block_bitmap_range2(fs->block_map, blk, num);
+ inuse = 1;
+ } else {
+ ext2fs_unmark_block_bitmap_range2(fs->block_map, blk, num);
+ inuse = -1;
+ }
+ while (num) {
+ int group = ext2fs_group_of_blk2(fs, blk);
+ blk64_t last_blk = ext2fs_group_last_block2(fs, group);
+ blk_t n = num;
+
+ if (blk + num > last_blk)
+ n = last_blk - blk + 1;
+
+ ext2fs_bg_free_blocks_count_set(fs, group,
+ ext2fs_bg_free_blocks_count(fs, group) -
+ inuse*n/EXT2FS_CLUSTER_RATIO(fs));
+ ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
+ ext2fs_group_desc_csum_set(fs, group);
+ ext2fs_free_blocks_count_add(fs->super, -inuse * n);
+ blk += n;
+ num -= n;
+ }
+ ext2fs_mark_super_dirty(fs);
+ ext2fs_mark_bb_dirty(fs);
+}
diff --git a/lib/ext2fs/alloc_tables.c b/lib/ext2fs/alloc_tables.c
index 9f3d4e04..bc99943c 100644
--- a/lib/ext2fs/alloc_tables.c
+++ b/lib/ext2fs/alloc_tables.c
@@ -54,8 +54,8 @@ static blk64_t flexbg_offset(ext2_filsys fs, dgrp_t group, blk64_t start_blk,
* Don't do a long search if the previous block
* search is still valid.
*/
- if (start_blk && ext2fs_test_block_bitmap_range2(bmap, start_blk,
- elem_size))
+ if (start_blk && start_blk < ext2fs_blocks_count(fs->super) &&
+ ext2fs_test_block_bitmap_range2(bmap, start_blk, elem_size))
return start_blk;
start_blk = ext2fs_group_first_block2(fs, flexbg_size * flexbg);
@@ -83,9 +83,8 @@ static blk64_t flexbg_offset(ext2_filsys fs, dgrp_t group, blk64_t start_blk,
errcode_t ext2fs_allocate_group_table(ext2_filsys fs, dgrp_t group,
ext2fs_block_bitmap bmap)
{
- unsigned int j;
errcode_t retval;
- blk64_t group_blk, start_blk, last_blk, new_blk, blk;
+ blk64_t group_blk, start_blk, last_blk, new_blk;
dgrp_t last_grp = 0;
int rem_grps = 0, flexbg_size = 0;
@@ -205,19 +204,12 @@ errcode_t ext2fs_allocate_group_table(ext2_filsys fs, dgrp_t group,
bmap, &new_blk);
if (retval)
return retval;
- for (j=0, blk = new_blk;
- j < fs->inode_blocks_per_group;
- j++, blk++) {
- ext2fs_mark_block_bitmap2(bmap, blk);
- if (flexbg_size) {
- dgrp_t gr = ext2fs_group_of_blk2(fs, blk);
- ext2fs_bg_free_blocks_count_set(fs, gr, ext2fs_bg_free_blocks_count(fs, gr) - 1);
- ext2fs_free_blocks_count_add(fs->super, -1);
- ext2fs_bg_flags_clear(fs, gr,
- EXT2_BG_BLOCK_UNINIT);
- ext2fs_group_desc_csum_set(fs, gr);
- }
- }
+ if (flexbg_size)
+ ext2fs_block_alloc_stats_range(fs, new_blk,
+ fs->inode_blocks_per_group, +1);
+ else
+ ext2fs_mark_block_bitmap_range2(fs->block_map,
+ new_blk, fs->inode_blocks_per_group);
ext2fs_inode_table_loc_set(fs, group, new_blk);
}
ext2fs_group_desc_csum_set(fs, group);
diff --git a/lib/ext2fs/bitops.c b/lib/ext2fs/bitops.c
index 9322a353..8e4c05c4 100644
--- a/lib/ext2fs/bitops.c
+++ b/lib/ext2fs/bitops.c
@@ -116,3 +116,43 @@ int ext2fs_test_bit64(__u64 nr, const void * addr)
return (mask & *ADDR);
}
+static unsigned int popcount8(unsigned int w)
+{
+ unsigned int res = w - ((w >> 1) & 0x55);
+ res = (res & 0x33) + ((res >> 2) & 0x33);
+ return (res + (res >> 4)) & 0x0F;
+}
+
+static unsigned int popcount32(unsigned int w)
+{
+ unsigned int res = w - ((w >> 1) & 0x55555555);
+ res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
+ res = (res + (res >> 4)) & 0x0F0F0F0F;
+ res = res + (res >> 8);
+ return (res + (res >> 16)) & 0x000000FF;
+}
+
+unsigned int ext2fs_bitcount(const void *addr, unsigned int nbytes)
+{
+ const unsigned char *cp = addr;
+ const __u32 *p;
+ unsigned int res = 0;
+
+ while (((((unsigned long) cp) & 3) != 0) && (nbytes > 0)) {
+ res += popcount8(*cp++);
+ nbytes--;
+ }
+ p = (const __u32 *) cp;
+
+ while (nbytes > 4) {
+ res += popcount32(*p++);
+ nbytes -= 4;
+ }
+ cp = (const unsigned char *) p;
+
+ while (nbytes > 0) {
+ res += popcount8(*cp++);
+ nbytes--;
+ }
+ return res;
+}
diff --git a/lib/ext2fs/bitops.h b/lib/ext2fs/bitops.h
index 93827907..4fb7dc6e 100644
--- a/lib/ext2fs/bitops.h
+++ b/lib/ext2fs/bitops.h
@@ -10,20 +10,6 @@
* %End-Header%
*/
-extern int ext2fs_set_bit(unsigned int nr,void * addr);
-extern int ext2fs_clear_bit(unsigned int nr, void * addr);
-extern int ext2fs_test_bit(unsigned int nr, const void * addr);
-extern void ext2fs_fast_set_bit(unsigned int nr,void * addr);
-extern void ext2fs_fast_clear_bit(unsigned int nr, void * addr);
-extern int ext2fs_set_bit64(__u64 nr,void * addr);
-extern int ext2fs_clear_bit64(__u64 nr, void * addr);
-extern int ext2fs_test_bit64(__u64 nr, const void * addr);
-extern void ext2fs_fast_set_bit64(__u64 nr,void * addr);
-extern void ext2fs_fast_clear_bit64(__u64 nr, void * addr);
-extern __u16 ext2fs_swab16(__u16 val);
-extern __u32 ext2fs_swab32(__u32 val);
-extern __u64 ext2fs_swab64(__u64 val);
-
#ifdef WORDS_BIGENDIAN
#define ext2fs_cpu_to_le64(x) ext2fs_swab64((x))
#define ext2fs_le64_to_cpu(x) ext2fs_swab64((x))
@@ -67,6 +53,15 @@ extern void ext2fs_warn_bitmap(errcode_t errcode, unsigned long arg,
extern void ext2fs_warn_bitmap2(ext2fs_generic_bitmap bitmap,
int code, unsigned long arg);
+#ifdef NO_INLINE_FUNCS
+extern void ext2fs_fast_set_bit(unsigned int nr,void * addr);
+extern void ext2fs_fast_clear_bit(unsigned int nr, void * addr);
+extern void ext2fs_fast_set_bit64(__u64 nr,void * addr);
+extern void ext2fs_fast_clear_bit64(__u64 nr, void * addr);
+extern __u16 ext2fs_swab16(__u16 val);
+extern __u32 ext2fs_swab32(__u32 val);
+extern __u64 ext2fs_swab64(__u64 val);
+
extern int ext2fs_mark_block_bitmap(ext2fs_block_bitmap bitmap, blk_t block);
extern int ext2fs_unmark_block_bitmap(ext2fs_block_bitmap bitmap,
blk_t block);
@@ -95,6 +90,15 @@ extern ext2_ino_t ext2fs_get_inode_bitmap_start(ext2fs_inode_bitmap bitmap);
extern blk_t ext2fs_get_block_bitmap_end(ext2fs_block_bitmap bitmap);
extern ext2_ino_t ext2fs_get_inode_bitmap_end(ext2fs_inode_bitmap bitmap);
+extern void ext2fs_fast_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern void ext2fs_fast_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern int ext2fs_fast_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+#endif
+
+/* These functions routines moved to gen_bitmap.c */
extern void ext2fs_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
blk_t block, int num);
extern void ext2fs_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
@@ -103,15 +107,6 @@ extern int ext2fs_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
blk_t block, int num);
extern int ext2fs_test_inode_bitmap_range(ext2fs_inode_bitmap bitmap,
ino_t inode, int num);
-extern void ext2fs_fast_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
- blk_t block, int num);
-extern void ext2fs_fast_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
- blk_t block, int num);
-extern int ext2fs_fast_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
- blk_t block, int num);
-extern void ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map);
-
-/* These routines moved to gen_bitmap.c (actually, some of the above, too) */
extern int ext2fs_mark_generic_bitmap(ext2fs_generic_bitmap bitmap,
__u32 bitno);
extern int ext2fs_unmark_generic_bitmap(ext2fs_generic_bitmap bitmap,
@@ -120,11 +115,13 @@ extern int ext2fs_test_generic_bitmap(ext2fs_generic_bitmap bitmap,
blk_t bitno);
extern int ext2fs_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
blk_t block, int num);
+extern void ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map);
extern __u32 ext2fs_get_generic_bitmap_start(ext2fs_generic_bitmap bitmap);
extern __u32 ext2fs_get_generic_bitmap_end(ext2fs_generic_bitmap bitmap);
/* 64-bit versions */
+#ifdef NO_INLINE_FUNCS
extern int ext2fs_mark_block_bitmap2(ext2fs_block_bitmap bitmap,
blk64_t block);
extern int ext2fs_unmark_block_bitmap2(ext2fs_block_bitmap bitmap,
@@ -153,10 +150,18 @@ extern void ext2fs_fast_unmark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
extern int ext2fs_fast_test_inode_bitmap2(ext2fs_inode_bitmap bitmap,
ext2_ino_t inode);
extern errcode_t ext2fs_find_first_zero_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t start,
+ blk64_t end,
+ blk64_t *out);
+extern errcode_t ext2fs_find_first_zero_inode_bitmap2(ext2fs_inode_bitmap bitmap,
ext2_ino_t start,
ext2_ino_t end,
ext2_ino_t *out);
-extern errcode_t ext2fs_find_first_zero_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+extern errcode_t ext2fs_find_first_set_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t start,
+ blk64_t end,
+ blk64_t *out);
+extern errcode_t ext2fs_find_first_set_inode_bitmap2(ext2fs_inode_bitmap bitmap,
ext2_ino_t start,
ext2_ino_t end,
ext2_ino_t *out);
@@ -174,6 +179,8 @@ extern void ext2fs_fast_mark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
extern void ext2fs_fast_unmark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
blk64_t block,
unsigned int num);
+#endif
+
/* These routines moved to gen_bitmap64.c */
extern void ext2fs_clear_generic_bmap(ext2fs_generic_bitmap bitmap);
extern errcode_t ext2fs_compare_generic_bmap(errcode_t neq,
@@ -199,6 +206,9 @@ extern void ext2fs_unmark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
extern errcode_t ext2fs_find_first_zero_generic_bmap(ext2fs_generic_bitmap bitmap,
__u64 start, __u64 end,
__u64 *out);
+extern errcode_t ext2fs_find_first_set_generic_bmap(ext2fs_generic_bitmap bitmap,
+ __u64 start, __u64 end,
+ __u64 *out);
/*
* The inline routines themselves...
@@ -209,7 +219,7 @@ extern errcode_t ext2fs_find_first_zero_generic_bmap(ext2fs_generic_bitmap bitma
*/
#ifdef NO_INLINE_FUNCS
#if (defined(__GNUC__) && (defined(__i386__) || defined(__i486__) || \
- defined(__i586__) || defined(__mc68000__)))
+ defined(__i586__)))
/* This prevents bitops.c from trying to include the C */
/* function version of these functions */
#define _EXT2_HAVE_ASM_BITOPS_
@@ -218,14 +228,22 @@ extern errcode_t ext2fs_find_first_zero_generic_bmap(ext2fs_generic_bitmap bitma
#if (defined(INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS))
#ifdef INCLUDE_INLINE_FUNCS
-#define _INLINE_ extern
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ extern inline
#else
+#define _INLINE_ inline
+#endif
+#else /* !INCLUDE_INLINE FUNCS */
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ inline
+#else /* not C99 */
#ifdef __GNUC__
#define _INLINE_ extern __inline__
#else /* For Watcom C */
#define _INLINE_ extern inline
-#endif
-#endif
+#endif /* __GNUC__ */
+#endif /* __STDC_VERSION__ >= 199901L */
+#endif /* INCLUDE_INLINE_FUNCS */
/*
* Fast bit set/clear functions that doesn't need to return the
@@ -237,7 +255,7 @@ _INLINE_ void ext2fs_fast_set_bit(unsigned int nr,void * addr)
unsigned char *ADDR = (unsigned char *) addr;
ADDR += nr >> 3;
- *ADDR |= (1 << (nr & 0x07));
+ *ADDR |= (unsigned char) (1 << (nr & 0x07));
}
_INLINE_ void ext2fs_fast_clear_bit(unsigned int nr, void * addr)
@@ -245,7 +263,7 @@ _INLINE_ void ext2fs_fast_clear_bit(unsigned int nr, void * addr)
unsigned char *ADDR = (unsigned char *) addr;
ADDR += nr >> 3;
- *ADDR &= ~(1 << (nr & 0x07));
+ *ADDR &= (unsigned char) ~(1 << (nr & 0x07));
}
@@ -254,7 +272,7 @@ _INLINE_ void ext2fs_fast_set_bit64(__u64 nr, void * addr)
unsigned char *ADDR = (unsigned char *) addr;
ADDR += nr >> 3;
- *ADDR |= (1 << (nr & 0x07));
+ *ADDR |= (unsigned char) (1 << (nr & 0x07));
}
_INLINE_ void ext2fs_fast_clear_bit64(__u64 nr, void * addr)
@@ -262,7 +280,7 @@ _INLINE_ void ext2fs_fast_clear_bit64(__u64 nr, void * addr)
unsigned char *ADDR = (unsigned char *) addr;
ADDR += nr >> 3;
- *ADDR &= ~(1 << (nr & 0x07));
+ *ADDR &= (unsigned char) ~(1 << (nr & 0x07));
}
@@ -346,49 +364,12 @@ _INLINE_ __u16 ext2fs_swab16(__u16 val)
#endif /* i386 */
-#if ((defined __GNUC__) && !defined(_EXT2_USE_C_VERSIONS_) && \
- (defined(__mc68000__)))
-
-#define _EXT2_HAVE_ASM_BITOPS_
-
-_INLINE_ int ext2fs_set_bit(unsigned int nr,void * addr)
-{
- char retval;
-
- __asm__ __volatile__ ("bfset %2@{%1:#1}; sne %0"
- : "=d" (retval) : "d" (nr^7), "a" (addr));
-
- return retval;
-}
-
-_INLINE_ int ext2fs_clear_bit(unsigned int nr, void * addr)
-{
- char retval;
-
- __asm__ __volatile__ ("bfclr %2@{%1:#1}; sne %0"
- : "=d" (retval) : "d" (nr^7), "a" (addr));
-
- return retval;
-}
-
-_INLINE_ int ext2fs_test_bit(unsigned int nr, const void * addr)
-{
- char retval;
-
- __asm__ __volatile__ ("bftst %2@{%1:#1}; sne %0"
- : "=d" (retval) : "d" (nr^7), "a" (addr));
-
- return retval;
-}
-
-#endif /* __mc68000__ */
-
#if !defined(_EXT2_HAVE_ASM_SWAB_)
_INLINE_ __u16 ext2fs_swab16(__u16 val)
{
- return (val >> 8) | (val << 8);
+ return (val >> 8) | (__u16) (val << 8);
}
_INLINE_ __u32 ext2fs_swab32(__u32 val)
@@ -401,7 +382,7 @@ _INLINE_ __u32 ext2fs_swab32(__u32 val)
_INLINE_ __u64 ext2fs_swab64(__u64 val)
{
- return (ext2fs_swab32(val >> 32) |
+ return (ext2fs_swab32((__u32) (val >> 32)) |
(((__u64)ext2fs_swab32(val & 0xFFFFFFFFUL)) << 32));
}
@@ -605,9 +586,9 @@ _INLINE_ int ext2fs_fast_test_inode_bitmap2(ext2fs_inode_bitmap bitmap,
}
_INLINE_ errcode_t ext2fs_find_first_zero_block_bitmap2(ext2fs_block_bitmap bitmap,
- ext2_ino_t start,
- ext2_ino_t end,
- ext2_ino_t *out)
+ blk64_t start,
+ blk64_t end,
+ blk64_t *out)
{
__u64 o;
errcode_t rv;
@@ -630,10 +611,40 @@ _INLINE_ errcode_t ext2fs_find_first_zero_inode_bitmap2(ext2fs_inode_bitmap bitm
rv = ext2fs_find_first_zero_generic_bmap((ext2fs_generic_bitmap) bitmap,
start, end, &o);
if (!rv)
+ *out = (ext2_ino_t) o;
+ return rv;
+}
+
+_INLINE_ errcode_t ext2fs_find_first_set_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t start,
+ blk64_t end,
+ blk64_t *out)
+{
+ __u64 o;
+ errcode_t rv;
+
+ rv = ext2fs_find_first_set_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ start, end, &o);
+ if (!rv)
*out = o;
return rv;
}
+_INLINE_ errcode_t ext2fs_find_first_set_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t start,
+ ext2_ino_t end,
+ ext2_ino_t *out)
+{
+ __u64 o;
+ errcode_t rv;
+
+ rv = ext2fs_find_first_set_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ start, end, &o);
+ if (!rv)
+ *out = (ext2_ino_t) o;
+ return rv;
+}
+
_INLINE_ blk64_t ext2fs_get_block_bitmap_start2(ext2fs_block_bitmap bitmap)
{
return ext2fs_get_generic_bmap_start((ext2fs_generic_bitmap) bitmap);
@@ -641,7 +652,7 @@ _INLINE_ blk64_t ext2fs_get_block_bitmap_start2(ext2fs_block_bitmap bitmap)
_INLINE_ ext2_ino_t ext2fs_get_inode_bitmap_start2(ext2fs_inode_bitmap bitmap)
{
- return ext2fs_get_generic_bmap_start((ext2fs_generic_bitmap) bitmap);
+ return (ext2_ino_t) ext2fs_get_generic_bmap_start((ext2fs_generic_bitmap) bitmap);
}
_INLINE_ blk64_t ext2fs_get_block_bitmap_end2(ext2fs_block_bitmap bitmap)
@@ -651,7 +662,7 @@ _INLINE_ blk64_t ext2fs_get_block_bitmap_end2(ext2fs_block_bitmap bitmap)
_INLINE_ ext2_ino_t ext2fs_get_inode_bitmap_end2(ext2fs_inode_bitmap bitmap)
{
- return ext2fs_get_generic_bmap_end((ext2fs_generic_bitmap) bitmap);
+ return (ext2_ino_t) ext2fs_get_generic_bmap_end((ext2fs_generic_bitmap) bitmap);
}
_INLINE_ int ext2fs_fast_test_block_bitmap_range2(ext2fs_block_bitmap bitmap,
@@ -678,3 +689,13 @@ _INLINE_ void ext2fs_fast_unmark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
#undef _INLINE_
#endif
+#ifndef _EXT2_HAVE_ASM_BITOPS_
+extern int ext2fs_set_bit(unsigned int nr,void * addr);
+extern int ext2fs_clear_bit(unsigned int nr, void * addr);
+extern int ext2fs_test_bit(unsigned int nr, const void * addr);
+#endif
+
+extern int ext2fs_set_bit64(__u64 nr,void * addr);
+extern int ext2fs_clear_bit64(__u64 nr, void * addr);
+extern int ext2fs_test_bit64(__u64 nr, const void * addr);
+extern unsigned int ext2fs_bitcount(const void *addr, unsigned int nbytes);
diff --git a/lib/ext2fs/blkmap64_ba.c b/lib/ext2fs/blkmap64_ba.c
index 8eddde9a..894293a1 100644
--- a/lib/ext2fs/blkmap64_ba.c
+++ b/lib/ext2fs/blkmap64_ba.c
@@ -328,12 +328,6 @@ static errcode_t ba_find_first_zero(ext2fs_generic_bitmap bitmap,
const unsigned char *pos;
unsigned long max_loop_count, i;
- if (start < bitmap->start || end > bitmap->end || start > end)
- return EINVAL;
-
- if (bitmap->cluster_bits)
- return EINVAL;
-
/* scan bits until we hit a byte boundary */
while ((bitpos & 0x7) != 0 && count > 0) {
if (!ext2fs_test_bit64(bitpos, bp->bitarray)) {
@@ -397,6 +391,80 @@ static errcode_t ba_find_first_zero(ext2fs_generic_bitmap bitmap,
return ENOENT;
}
+/* Find the first one bit between start and end, inclusive. */
+static errcode_t ba_find_first_set(ext2fs_generic_bitmap bitmap,
+ __u64 start, __u64 end, __u64 *out)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private)bitmap->private;
+ unsigned long bitpos = start - bitmap->start;
+ unsigned long count = end - start + 1;
+ int byte_found = 0; /* whether a != 0xff byte has been found */
+ const unsigned char *pos;
+ unsigned long max_loop_count, i;
+
+ /* scan bits until we hit a byte boundary */
+ while ((bitpos & 0x7) != 0 && count > 0) {
+ if (ext2fs_test_bit64(bitpos, bp->bitarray)) {
+ *out = bitpos + bitmap->start;
+ return 0;
+ }
+ bitpos++;
+ count--;
+ }
+
+ if (!count)
+ return ENOENT;
+
+ pos = ((unsigned char *)bp->bitarray) + (bitpos >> 3);
+ /* scan bytes until 8-byte (64-bit) aligned */
+ while (count >= 8 && (((unsigned long)pos) & 0x07)) {
+ if (*pos != 0) {
+ byte_found = 1;
+ break;
+ }
+ pos++;
+ count -= 8;
+ bitpos += 8;
+ }
+
+ if (!byte_found) {
+ max_loop_count = count >> 6; /* 8-byte blocks */
+ i = max_loop_count;
+ while (i) {
+ if (*((const __u64 *)pos) != 0)
+ break;
+ pos += 8;
+ i--;
+ }
+ count -= 64 * (max_loop_count - i);
+ bitpos += 64 * (max_loop_count - i);
+
+ max_loop_count = count >> 3;
+ i = max_loop_count;
+ while (i) {
+ if (*pos != 0) {
+ byte_found = 1;
+ break;
+ }
+ pos++;
+ i--;
+ }
+ count -= 8 * (max_loop_count - i);
+ bitpos += 8 * (max_loop_count - i);
+ }
+
+ /* Here either count < 8 or byte_found == 1. */
+ while (count-- > 0) {
+ if (ext2fs_test_bit64(bitpos, bp->bitarray)) {
+ *out = bitpos + bitmap->start;
+ return 0;
+ }
+ bitpos++;
+ }
+
+ return ENOENT;
+}
+
struct ext2_bitmap_ops ext2fs_blkmap64_bitarray = {
.type = EXT2FS_BMAP64_BITARRAY,
.new_bmap = ba_new_bmap,
@@ -413,5 +481,6 @@ struct ext2_bitmap_ops ext2fs_blkmap64_bitarray = {
.get_bmap_range = ba_get_bmap_range,
.clear_bmap = ba_clear_bmap,
.print_stats = ba_print_stats,
- .find_first_zero = ba_find_first_zero
+ .find_first_zero = ba_find_first_zero,
+ .find_first_set = ba_find_first_set
};
diff --git a/lib/ext2fs/blkmap64_rb.c b/lib/ext2fs/blkmap64_rb.c
index aba7cfd3..4dcb03f9 100644
--- a/lib/ext2fs/blkmap64_rb.c
+++ b/lib/ext2fs/blkmap64_rb.c
@@ -33,19 +33,31 @@
struct bmap_rb_extent {
struct rb_node node;
__u64 start;
- __u32 count;
+ __u64 count;
};
struct ext2fs_rb_private {
struct rb_root root;
- struct bmap_rb_extent **wcursor;
- struct bmap_rb_extent **rcursor;
+ struct bmap_rb_extent *wcursor;
+ struct bmap_rb_extent *rcursor;
+ struct bmap_rb_extent *rcursor_next;
#ifdef BMAP_STATS_OPS
__u64 mark_hit;
__u64 test_hit;
#endif
};
+inline static struct bmap_rb_extent *node_to_extent(struct rb_node *node)
+{
+ /*
+ * This depends on the fact the struct rb_node is at the
+ * beginning of the bmap_rb_extent structure. We use this
+ * instead of the ext2fs_rb_entry macro because it causes gcc
+ * -Wall to generate a huge amount of noise.
+ */
+ return (struct bmap_rb_extent *) node;
+}
+
static int rb_insert_extent(__u64 start, __u64 count,
struct ext2fs_rb_private *);
static void rb_get_new_extent(struct bmap_rb_extent **, __u64, __u64);
@@ -62,30 +74,30 @@ static void print_tree(struct rb_root *root)
node = ext2fs_rb_first(root);
for (node = ext2fs_rb_first(root); node != NULL;
node = ext2fs_rb_next(node)) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
printf("\t\t\t--> (%llu -> %llu)\n",
ext->start, ext->start + ext->count);
}
printf("\t\t\t=================================\n");
}
-static int check_tree(struct rb_root *root, const char *msg)
+static void check_tree(struct rb_root *root, const char *msg)
{
struct rb_node *new_node, *node, *next;
struct bmap_rb_extent *ext, *old = NULL;
for (node = ext2fs_rb_first(root); node;
node = ext2fs_rb_next(node)) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
- if (ext->count <= 0) {
- printf("Tree Error: count is crazy\n");
- printf("extent: %llu -> %llu (%u)\n", ext->start,
+ ext = node_to_extent(node);
+ if (ext->count == 0) {
+ printf("Tree Error: count is zero\n");
+ printf("extent: %llu -> %llu (%llu)\n", ext->start,
ext->start + ext->count, ext->count);
goto err_out;
}
- if (ext->start < 0) {
- printf("Tree Error: start is crazy\n");
- printf("extent: %llu -> %llu (%u)\n", ext->start,
+ if (ext->start + ext->count < ext->start) {
+ printf("Tree Error: start or count is crazy\n");
+ printf("extent: %llu -> %llu (%llu)\n", ext->start,
ext->start + ext->count, ext->count);
goto err_out;
}
@@ -93,20 +105,20 @@ static int check_tree(struct rb_root *root, const char *msg)
if (old) {
if (old->start > ext->start) {
printf("Tree Error: start is crazy\n");
- printf("extent: %llu -> %llu (%u)\n",
+ printf("extent: %llu -> %llu (%llu)\n",
old->start, old->start + old->count,
old->count);
- printf("extent next: %llu -> %llu (%u)\n",
+ printf("extent next: %llu -> %llu (%llu)\n",
ext->start, ext->start + ext->count,
ext->count);
goto err_out;
}
if ((old->start + old->count) >= ext->start) {
printf("Tree Error: extent is crazy\n");
- printf("extent: %llu -> %llu (%u)\n",
+ printf("extent: %llu -> %llu (%llu)\n",
old->start, old->start + old->count,
old->count);
- printf("extent next: %llu -> %llu (%u)\n",
+ printf("extent next: %llu -> %llu (%llu)\n",
ext->start, ext->start + ext->count,
ext->count);
goto err_out;
@@ -114,7 +126,7 @@ static int check_tree(struct rb_root *root, const char *msg)
}
old = ext;
}
- return 0;
+ return;
err_out:
printf("%s\n", msg);
@@ -122,8 +134,8 @@ err_out:
exit(1);
}
#else
-#define check_tree(root, msg) 0
-#define print_tree(root, msg) 0
+#define check_tree(root, msg) do {} while (0)
+#define print_tree(root) do {} while (0)
#endif
static void rb_get_new_extent(struct bmap_rb_extent **ext, __u64 start,
@@ -148,10 +160,12 @@ inline
static void rb_free_extent(struct ext2fs_rb_private *bp,
struct bmap_rb_extent *ext)
{
- if (*bp->wcursor == ext)
- *bp->wcursor = NULL;
- if (*bp->rcursor == ext)
- *bp->rcursor = NULL;
+ if (bp->wcursor == ext)
+ bp->wcursor = NULL;
+ if (bp->rcursor == ext)
+ bp->rcursor = NULL;
+ if (bp->rcursor_next == ext)
+ bp->rcursor_next = NULL;
ext2fs_free_mem(&ext);
}
@@ -165,14 +179,9 @@ static errcode_t rb_alloc_private_data (ext2fs_generic_bitmap bitmap)
return retval;
bp->root = RB_ROOT;
- retval = ext2fs_get_mem(sizeof(struct bmap_rb_extent *), &bp->rcursor);
- if (retval)
- return retval;
- retval = ext2fs_get_mem(sizeof(struct bmap_rb_extent *), &bp->wcursor);
- if (retval)
- return retval;
- *bp->rcursor = NULL;
- *bp->wcursor = NULL;
+ bp->rcursor = NULL;
+ bp->rcursor_next = NULL;
+ bp->wcursor = NULL;
#ifdef BMAP_STATS_OPS
bp->test_hit = 0;
@@ -202,7 +211,7 @@ static void rb_free_tree(struct rb_root *root)
for (node = ext2fs_rb_first(root); node; node = next) {
next = ext2fs_rb_next(node);
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
ext2fs_rb_erase(node, root);
ext2fs_free_mem(&ext);
}
@@ -215,8 +224,6 @@ static void rb_free_bmap(ext2fs_generic_bitmap bitmap)
bp = (struct ext2fs_rb_private *) bitmap->private;
rb_free_tree(&bp->root);
- ext2fs_free_mem(&bp->rcursor);
- ext2fs_free_mem(&bp->wcursor);
ext2fs_free_mem(&bp);
bp = 0;
}
@@ -235,12 +242,12 @@ static errcode_t rb_copy_bmap(ext2fs_generic_bitmap src,
src_bp = (struct ext2fs_rb_private *) src->private;
dest_bp = (struct ext2fs_rb_private *) dest->private;
- *src_bp->rcursor = NULL;
- *dest_bp->rcursor = NULL;
+ src_bp->rcursor = NULL;
+ dest_bp->rcursor = NULL;
src_node = ext2fs_rb_first(&src_bp->root);
while (src_node) {
- src_ext = ext2fs_rb_entry(src_node, struct bmap_rb_extent, node);
+ src_ext = node_to_extent(src_node);
retval = ext2fs_get_mem(sizeof (struct bmap_rb_extent),
&dest_ext);
if (retval)
@@ -273,7 +280,7 @@ static void rb_truncate(__u64 new_max, struct rb_root *root)
node = ext2fs_rb_last(root);
while (node) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
if ((ext->start + ext->count - 1) <= new_max)
break;
@@ -299,8 +306,8 @@ static errcode_t rb_resize_bmap(ext2fs_generic_bitmap bmap,
}
bp = (struct ext2fs_rb_private *) bmap->private;
- *bp->rcursor = NULL;
- *bp->wcursor = NULL;
+ bp->rcursor = NULL;
+ bp->wcursor = NULL;
/* truncate tree to new_real_end size */
rb_truncate(new_real_end, &bp->root);
@@ -314,13 +321,12 @@ static errcode_t rb_resize_bmap(ext2fs_generic_bitmap bmap,
inline static int
rb_test_bit(struct ext2fs_rb_private *bp, __u64 bit)
{
- struct bmap_rb_extent *rcursor;
- struct rb_node *parent = NULL;
+ struct bmap_rb_extent *rcursor, *next_ext = NULL;
+ struct rb_node *parent = NULL, *next;
struct rb_node **n = &bp->root.rb_node;
struct bmap_rb_extent *ext;
- int i=0;
- rcursor = *bp->rcursor;
+ rcursor = bp->rcursor;
if (!rcursor)
goto search_tree;
@@ -331,7 +337,26 @@ rb_test_bit(struct ext2fs_rb_private *bp, __u64 bit)
return 1;
}
- rcursor = *bp->wcursor;
+ next_ext = bp->rcursor_next;
+ if (!next_ext) {
+ next = ext2fs_rb_next(&rcursor->node);
+ if (next)
+ next_ext = node_to_extent(next);
+ bp->rcursor_next = next_ext;
+ }
+ if (next_ext) {
+ if ((bit >= rcursor->start + rcursor->count) &&
+ (bit < next_ext->start)) {
+#ifdef BMAP_STATS_OPS
+ bp->test_hit++;
+#endif
+ return 0;
+ }
+ }
+ bp->rcursor = NULL;
+ bp->rcursor_next = NULL;
+
+ rcursor = bp->wcursor;
if (!rcursor)
goto search_tree;
@@ -342,13 +367,14 @@ search_tree:
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (bit < ext->start)
n = &(*n)->rb_left;
else if (bit >= (ext->start + ext->count))
n = &(*n)->rb_right;
else {
- *bp->rcursor = ext;
+ bp->rcursor = ext;
+ bp->rcursor_next = NULL;
return 1;
}
}
@@ -365,7 +391,8 @@ static int rb_insert_extent(__u64 start, __u64 count,
struct bmap_rb_extent *ext;
int retval = 0;
- ext = *bp->wcursor;
+ bp->rcursor_next = NULL;
+ ext = bp->wcursor;
if (ext) {
if (start >= ext->start &&
start <= (ext->start + ext->count)) {
@@ -378,7 +405,7 @@ static int rb_insert_extent(__u64 start, __u64 count,
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
@@ -408,11 +435,11 @@ got_extent:
new_node = &new_ext->node;
ext2fs_rb_link_node(new_node, parent, n);
ext2fs_rb_insert_color(new_node, root);
- *bp->wcursor = new_ext;
+ bp->wcursor = new_ext;
node = ext2fs_rb_prev(new_node);
if (node) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
if ((ext->start + ext->count) == start) {
start = ext->start;
count += ext->count;
@@ -425,7 +452,7 @@ skip_insert:
/* See if we can merge extent to the right */
for (node = ext2fs_rb_next(new_node); node != NULL; node = next) {
next = ext2fs_rb_next(node);
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
if ((ext->start + ext->count) <= start)
continue;
@@ -470,7 +497,7 @@ static int rb_remove_extent(__u64 start, __u64 count,
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
continue;
@@ -513,7 +540,7 @@ static int rb_remove_extent(__u64 start, __u64 count,
/* See if we should delete or truncate extent on the right */
for (; parent != NULL; parent = node) {
node = ext2fs_rb_next(parent);
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if ((ext->start + ext->count) <= start)
continue;
@@ -542,13 +569,14 @@ static int rb_remove_extent(__u64 start, __u64 count,
static int rb_mark_bmap(ext2fs_generic_bitmap bitmap, __u64 arg)
{
struct ext2fs_rb_private *bp;
- int i;
-
+ int retval;
bp = (struct ext2fs_rb_private *) bitmap->private;
arg -= bitmap->start;
- return rb_insert_extent(arg, 1, bp);
+ retval = rb_insert_extent(arg, 1, bp);
+ check_tree(&bp->root, __func__);
+ return retval;
}
static int rb_unmark_bmap(ext2fs_generic_bitmap bitmap, __u64 arg)
@@ -580,19 +608,18 @@ static void rb_mark_bmap_extent(ext2fs_generic_bitmap bitmap, __u64 arg,
unsigned int num)
{
struct ext2fs_rb_private *bp;
- struct bmap_rb_extent *new_ext;
bp = (struct ext2fs_rb_private *) bitmap->private;
arg -= bitmap->start;
rb_insert_extent(arg, num, bp);
+ check_tree(&bp->root, __func__);
}
static void rb_unmark_bmap_extent(ext2fs_generic_bitmap bitmap, __u64 arg,
unsigned int num)
{
struct ext2fs_rb_private *bp;
- int ret;
bp = (struct ext2fs_rb_private *) bitmap->private;
arg -= bitmap->start;
@@ -624,7 +651,7 @@ static int rb_test_clear_bmap_extent(ext2fs_generic_bitmap bitmap,
*/
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
} else if (start >= (ext->start + ext->count)) {
@@ -641,7 +668,7 @@ static int rb_test_clear_bmap_extent(ext2fs_generic_bitmap bitmap,
node = parent;
while (node) {
next = ext2fs_rb_next(node);
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
node = next;
if ((ext->start + ext->count) <= start)
@@ -661,15 +688,43 @@ static errcode_t rb_set_bmap_range(ext2fs_generic_bitmap bitmap,
__u64 start, size_t num, void *in)
{
struct ext2fs_rb_private *bp;
+ unsigned char *cp = in;
size_t i;
- int ret;
+ int first_set = -1;
bp = (struct ext2fs_rb_private *) bitmap->private;
for (i = 0; i < num; i++) {
- ret = ext2fs_test_bit(i, in);
- if (ret)
- rb_insert_extent(start + i - bitmap->start, 1, bp);
+ if ((i & 7) == 0) {
+ unsigned char c = cp[i/8];
+ if (c == 0xFF) {
+ if (first_set == -1)
+ first_set = i;
+ i += 7;
+ continue;
+ }
+ if ((c == 0x00) && (first_set == -1)) {
+ i += 7;
+ continue;
+ }
+ }
+ if (ext2fs_test_bit(i, in)) {
+ if (first_set == -1)
+ first_set = i;
+ continue;
+ }
+ if (first_set == -1)
+ continue;
+
+ rb_insert_extent(start + first_set - bitmap->start,
+ i - first_set, bp);
+ check_tree(&bp->root, __func__);
+ first_set = -1;
+ }
+ if (first_set != -1) {
+ rb_insert_extent(start + first_set - bitmap->start,
+ num - first_set, bp);
+ check_tree(&bp->root, __func__);
}
return 0;
@@ -682,6 +737,7 @@ static errcode_t rb_get_bmap_range(ext2fs_generic_bitmap bitmap,
struct rb_node *parent = NULL, *next, **n;
struct ext2fs_rb_private *bp;
struct bmap_rb_extent *ext;
+ int count;
__u64 pos;
bp = (struct ext2fs_rb_private *) bitmap->private;
@@ -693,7 +749,7 @@ static errcode_t rb_get_bmap_range(ext2fs_generic_bitmap bitmap,
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
} else if (start >= (ext->start + ext->count)) {
@@ -702,44 +758,139 @@ static errcode_t rb_get_bmap_range(ext2fs_generic_bitmap bitmap,
break;
}
- pos = start;
+ memset(out, 0, (num + 7) >> 3);
+
for (; parent != NULL; parent = next) {
next = ext2fs_rb_next(parent);
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
- while (((pos - start) < num) &&
- (pos < ext->start)) {
- ext2fs_fast_clear_bit64((pos - start), out);
- pos++;
+ pos = ext->start;
+ count = ext->count;
+ if (pos >= start + num)
+ break;
+ if (pos < start) {
+ count -= start - pos;
+ if (count < 0)
+ continue;
+ pos = start;
}
-
- if ((pos - start) >= num)
- return 0;
-
- while (((pos - start) < num) &&
- (pos < (ext->start + ext->count))) {
+ if (pos + count > start + num)
+ count = start + num - pos;
+
+ while (count > 0) {
+ if ((count >= 8) &&
+ ((pos - start) % 8) == 0) {
+ int nbytes = count >> 3;
+ int offset = (pos - start) >> 3;
+
+ memset(((char *) out) + offset, 0xFF, nbytes);
+ pos += nbytes << 3;
+ count -= nbytes << 3;
+ continue;
+ }
ext2fs_fast_set_bit64((pos - start), out);
pos++;
+ count--;
}
}
+ return 0;
+}
+
+static void rb_clear_bmap(ext2fs_generic_bitmap bitmap)
+{
+ struct ext2fs_rb_private *bp;
+
+ bp = (struct ext2fs_rb_private *) bitmap->private;
- while ((pos - start) < num) {
- ext2fs_fast_clear_bit64((pos - start), out);
- pos++;
+ rb_free_tree(&bp->root);
+ bp->rcursor = NULL;
+ bp->rcursor_next = NULL;
+ bp->wcursor = NULL;
+ check_tree(&bp->root, __func__);
+}
+
+static errcode_t rb_find_first_zero(ext2fs_generic_bitmap bitmap,
+ __u64 start, __u64 end, __u64 *out)
+{
+ struct rb_node *parent = NULL, **n;
+ struct ext2fs_rb_private *bp;
+ struct bmap_rb_extent *ext;
+
+ bp = (struct ext2fs_rb_private *) bitmap->private;
+ n = &bp->root.rb_node;
+ start -= bitmap->start;
+ end -= bitmap->start;
+
+ if (start > end)
+ return EINVAL;
+
+ if (EXT2FS_RB_EMPTY_ROOT(&bp->root))
+ return ENOENT;
+
+ while (*n) {
+ parent = *n;
+ ext = node_to_extent(parent);
+ if (start < ext->start) {
+ n = &(*n)->rb_left;
+ } else if (start >= (ext->start + ext->count)) {
+ n = &(*n)->rb_right;
+ } else if (ext->start + ext->count <= end) {
+ *out = ext->start + ext->count + bitmap->start;
+ return 0;
+ } else
+ return ENOENT;
}
+ *out = start + bitmap->start;
return 0;
}
-static void rb_clear_bmap(ext2fs_generic_bitmap bitmap)
+static errcode_t rb_find_first_set(ext2fs_generic_bitmap bitmap,
+ __u64 start, __u64 end, __u64 *out)
{
+ struct rb_node *parent = NULL, **n;
+ struct rb_node *node;
struct ext2fs_rb_private *bp;
+ struct bmap_rb_extent *ext;
bp = (struct ext2fs_rb_private *) bitmap->private;
+ n = &bp->root.rb_node;
+ start -= bitmap->start;
+ end -= bitmap->start;
- rb_free_tree(&bp->root);
- *bp->rcursor = NULL;
- *bp->wcursor = NULL;
+ if (start > end)
+ return EINVAL;
+
+ if (EXT2FS_RB_EMPTY_ROOT(&bp->root))
+ return ENOENT;
+
+ while (*n) {
+ parent = *n;
+ ext = node_to_extent(parent);
+ if (start < ext->start) {
+ n = &(*n)->rb_left;
+ } else if (start >= (ext->start + ext->count)) {
+ n = &(*n)->rb_right;
+ } else {
+ /* The start bit is set */
+ *out = start + bitmap->start;
+ return 0;
+ }
+ }
+
+ node = parent;
+ ext = node_to_extent(node);
+ if (ext->start < start) {
+ node = ext2fs_rb_next(node);
+ if (node == NULL)
+ return ENOENT;
+ ext = node_to_extent(node);
+ }
+ if (ext->start <= end) {
+ *out = ext->start + bitmap->start;
+ return 0;
+ }
+ return ENOENT;
}
#ifdef BMAP_STATS
@@ -752,15 +903,17 @@ static void rb_print_stats(ext2fs_generic_bitmap bitmap)
__u64 max_size = 0;
__u64 min_size = ULONG_MAX;
__u64 size = 0, avg_size = 0;
+ double eff;
+#ifdef BMAP_STATS_OPS
__u64 mark_all, test_all;
- double eff, m_hit = 0.0, t_hit = 0.0;
+ double m_hit = 0.0, t_hit = 0.0;
+#endif
bp = (struct ext2fs_rb_private *) bitmap->private;
- node = ext2fs_rb_first(&bp->root);
for (node = ext2fs_rb_first(&bp->root); node != NULL;
node = ext2fs_rb_next(node)) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
count++;
if (ext->count > max_size)
max_size = ext->count;
@@ -821,4 +974,6 @@ struct ext2_bitmap_ops ext2fs_blkmap64_rbtree = {
.get_bmap_range = rb_get_bmap_range,
.clear_bmap = rb_clear_bmap,
.print_stats = rb_print_stats,
+ .find_first_zero = rb_find_first_zero,
+ .find_first_set = rb_find_first_set,
};
diff --git a/lib/ext2fs/blknum.c b/lib/ext2fs/blknum.c
index 33da7d6f..8ced1eec 100644
--- a/lib/ext2fs/blknum.c
+++ b/lib/ext2fs/blknum.c
@@ -187,11 +187,8 @@ struct ext2_group_desc *ext2fs_group_desc(ext2_filsys fs,
struct opaque_ext2_group_desc *gdp,
dgrp_t group)
{
- if (fs->super->s_desc_size >= EXT2_MIN_DESC_SIZE_64BIT)
- return (struct ext2_group_desc *)
- ((struct ext4_group_desc *) gdp + group);
- else
- return (struct ext2_group_desc *) gdp + group;
+ return (struct ext2_group_desc *)((char *)gdp +
+ group * EXT2_DESC_SIZE(fs->super));
}
/* Do the same but as an ext4 group desc for internal use here */
diff --git a/lib/ext2fs/block.c b/lib/ext2fs/block.c
index 85a1803d..b8c68798 100644
--- a/lib/ext2fs/block.c
+++ b/lib/ext2fs/block.c
@@ -389,7 +389,7 @@ errcode_t ext2fs_block_iterate3(ext2_filsys fs,
if (inode.i_flags & EXT4_EXTENTS_FL) {
ext2_extent_handle_t handle;
- struct ext2fs_extent extent;
+ struct ext2fs_extent extent, next;
e2_blkcnt_t blockcnt = 0;
blk64_t blk, new_blk;
int op = EXT2_EXTENT_ROOT;
@@ -401,7 +401,11 @@ errcode_t ext2fs_block_iterate3(ext2_filsys fs,
goto abort_exit;
while (1) {
- ctx.errcode = ext2fs_extent_get(handle, op, &extent);
+ if (op == EXT2_EXTENT_CURRENT)
+ ctx.errcode = 0;
+ else
+ ctx.errcode = ext2fs_extent_get(handle, op,
+ &extent);
if (ctx.errcode) {
if (ctx.errcode != EXT2_ET_EXTENT_NO_NEXT)
break;
@@ -456,14 +460,21 @@ errcode_t ext2fs_block_iterate3(ext2_filsys fs,
uninit = 0;
if (extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT)
uninit = EXT2_EXTENT_SET_BMAP_UNINIT;
+
+ /*
+ * Get the next extent before we start messing
+ * with the current extent
+ */
+ retval = ext2fs_extent_get(handle, op, &next);
+
#if 0
printf("lblk %llu pblk %llu len %d blockcnt %llu\n",
extent.e_lblk, extent.e_pblk,
extent.e_len, blockcnt);
#endif
- if (extent.e_lblk + extent.e_len <= blockcnt)
+ if (extent.e_lblk + extent.e_len <= (blk64_t) blockcnt)
continue;
- if (extent.e_lblk > blockcnt)
+ if (extent.e_lblk > (blk64_t) blockcnt)
blockcnt = extent.e_lblk;
j = blockcnt - extent.e_lblk;
blk += j;
@@ -487,6 +498,10 @@ errcode_t ext2fs_block_iterate3(ext2_filsys fs,
if (ret & BLOCK_ABORT)
goto extent_done;
}
+ if (retval == 0) {
+ extent = next;
+ op = EXT2_EXTENT_CURRENT;
+ }
}
extent_done:
diff --git a/lib/ext2fs/bmap.c b/lib/ext2fs/bmap.c
index 16d51e0b..db2fd726 100644
--- a/lib/ext2fs/bmap.c
+++ b/lib/ext2fs/bmap.c
@@ -18,7 +18,7 @@
#include <errno.h>
#include "ext2_fs.h"
-#include "ext2fs.h"
+#include "ext2fsP.h"
#if defined(__GNUC__) && !defined(NO_INLINE_FUNCS)
#define _BMAP_INLINE_ __inline__
@@ -95,7 +95,7 @@ static _BMAP_INLINE_ errcode_t block_dind_bmap(ext2_filsys fs, int flags,
int *blocks_alloc,
blk_t nr, blk_t *ret_blk)
{
- blk_t b;
+ blk_t b = 0;
errcode_t retval;
blk_t addr_per_block;
@@ -115,7 +115,7 @@ static _BMAP_INLINE_ errcode_t block_tind_bmap(ext2_filsys fs, int flags,
int *blocks_alloc,
blk_t nr, blk_t *ret_blk)
{
- blk_t b;
+ blk_t b = 0;
errcode_t retval;
blk_t addr_per_block;
@@ -140,7 +140,7 @@ static errcode_t extent_bmap(ext2_filsys fs, ext2_ino_t ino,
static errcode_t implied_cluster_alloc(ext2_filsys fs, ext2_ino_t ino,
struct ext2_inode *inode,
ext2_extent_handle_t handle,
- blk64_t block, blk64_t *phys_blk)
+ blk64_t lblk, blk64_t *phys_blk)
{
blk64_t base_block, pblock = 0;
int i;
@@ -149,10 +149,19 @@ static errcode_t implied_cluster_alloc(ext2_filsys fs, ext2_ino_t ino,
EXT4_FEATURE_RO_COMPAT_BIGALLOC))
return 0;
- base_block = block & ~EXT2FS_CLUSTER_MASK(fs);
+ base_block = lblk & ~EXT2FS_CLUSTER_MASK(fs);
+ /*
+ * Except for the logical block (lblk) that was passed in, search all
+ * blocks in this logical cluster for a mapping to a physical cluster.
+ * If any such map exists, calculate the physical block that maps to
+ * the logical block and return that.
+ *
+ * The old code wouldn't even look if (block % cluster_ratio) == 0;
+ * this is incorrect if we're allocating blocks in reverse order.
+ */
for (i = 0; i < EXT2FS_CLUSTER_RATIO(fs); i++) {
- if (block == base_block)
- return 0;
+ if (base_block + i == lblk)
+ continue;
extent_bmap(fs, ino, inode, handle, 0, 0,
base_block + i, 0, 0, &pblock);
if (pblock)
@@ -160,10 +169,39 @@ static errcode_t implied_cluster_alloc(ext2_filsys fs, ext2_ino_t ino,
}
if (pblock == 0)
return 0;
- *phys_blk = pblock - i + (block - base_block);
+ *phys_blk = pblock - i + (lblk - base_block);
return 0;
}
+/* Try to map a logical block to an already-allocated physical cluster. */
+errcode_t ext2fs_map_cluster_block(ext2_filsys fs, ext2_ino_t ino,
+ struct ext2_inode *inode, blk64_t lblk,
+ blk64_t *pblk)
+{
+ ext2_extent_handle_t handle;
+ errcode_t retval;
+
+ /* Need bigalloc and extents to be enabled */
+ *pblk = 0;
+ if (!EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_BIGALLOC) ||
+ !(inode->i_flags & EXT4_EXTENTS_FL))
+ return 0;
+
+ retval = ext2fs_extent_open2(fs, ino, inode, &handle);
+ if (retval)
+ goto out;
+
+ retval = implied_cluster_alloc(fs, ino, inode, handle, lblk, pblk);
+ if (retval)
+ goto out2;
+
+out2:
+ ext2fs_extent_free(handle);
+out:
+ return retval;
+}
+
static errcode_t extent_bmap(ext2_filsys fs, ext2_ino_t ino,
struct ext2_inode *inode,
ext2_extent_handle_t handle,
@@ -217,8 +255,10 @@ got_block:
set_extent:
retval = ext2fs_extent_set_bmap(handle, block,
blk64, 0);
- if (retval)
+ if (retval) {
+ ext2fs_block_alloc_stats2(fs, blk64, -1);
return retval;
+ }
/* Update inode after setting extent */
retval = ext2fs_read_inode(fs, ino, inode);
if (retval)
@@ -229,6 +269,27 @@ got_block:
return 0;
}
+int ext2fs_file_block_offset_too_big(ext2_filsys fs,
+ struct ext2_inode *inode,
+ blk64_t offset)
+{
+ blk64_t addr_per_block, max_map_block;
+
+ /* Kernel seems to cut us off at 4294967294 blocks */
+ if (offset >= (1ULL << 32) - 1)
+ return 1;
+
+ if (inode->i_flags & EXT4_EXTENTS_FL)
+ return 0;
+
+ addr_per_block = fs->blocksize >> 2;
+ max_map_block = addr_per_block;
+ max_map_block += addr_per_block * addr_per_block;
+ max_map_block += addr_per_block * addr_per_block * addr_per_block;
+ max_map_block += 12;
+
+ return offset >= max_map_block;
+}
errcode_t ext2fs_bmap2(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode,
char *block_buf, int bmap_flags, blk64_t block,
@@ -257,6 +318,9 @@ errcode_t ext2fs_bmap2(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode,
}
addr_per_block = (blk_t) fs->blocksize >> 2;
+ if (ext2fs_file_block_offset_too_big(fs, inode, block))
+ return EXT2_ET_FILE_TOO_BIG;
+
if (!block_buf) {
retval = ext2fs_get_array(2, fs->blocksize, &buf);
if (retval)
diff --git a/lib/ext2fs/bmap64.h b/lib/ext2fs/bmap64.h
index f44d379c..9deba46c 100644
--- a/lib/ext2fs/bmap64.h
+++ b/lib/ext2fs/bmap64.h
@@ -94,6 +94,10 @@ struct ext2_bitmap_ops {
* May be NULL, in which case a generic function is used. */
errcode_t (*find_first_zero)(ext2fs_generic_bitmap bitmap,
__u64 start, __u64 end, __u64 *out);
+ /* Find the first set bit between start and end, inclusive.
+ * May be NULL, in which case a generic function is used. */
+ errcode_t (*find_first_set)(ext2fs_generic_bitmap bitmap,
+ __u64 start, __u64 end, __u64 *out);
};
extern struct ext2_bitmap_ops ext2fs_blkmap64_bitarray;
diff --git a/lib/ext2fs/brel.h b/lib/ext2fs/brel.h
index a0dd5b9c..9fdddd40 100644
--- a/lib/ext2fs/brel.h
+++ b/lib/ext2fs/brel.h
@@ -10,11 +10,11 @@
*/
struct ext2_block_relocate_entry {
- blk_t new;
+ blk64_t new;
__s16 offset;
__u16 flags;
union {
- blk_t block_ref;
+ blk64_t block_ref;
ext2_ino_t inode_ref;
} owner;
};
@@ -28,19 +28,19 @@ typedef struct ext2_block_relocation_table *ext2_brel;
struct ext2_block_relocation_table {
__u32 magic;
char *name;
- blk_t current;
+ blk64_t current;
void *priv_data;
/*
* Add a block relocation entry.
*/
- errcode_t (*put)(ext2_brel brel, blk_t old,
+ errcode_t (*put)(ext2_brel brel, blk64_t old,
struct ext2_block_relocate_entry *ent);
/*
* Get a block relocation entry.
*/
- errcode_t (*get)(ext2_brel brel, blk_t old,
+ errcode_t (*get)(ext2_brel brel, blk64_t old,
struct ext2_block_relocate_entry *ent);
/*
@@ -52,19 +52,19 @@ struct ext2_block_relocation_table {
* The iterator function for the inode relocation entries.
* Returns an inode number of 0 when out of entries.
*/
- errcode_t (*next)(ext2_brel brel, blk_t *old,
+ errcode_t (*next)(ext2_brel brel, blk64_t *old,
struct ext2_block_relocate_entry *ent);
/*
* Move the inode relocation table from one block number to
* another.
*/
- errcode_t (*move)(ext2_brel brel, blk_t old, blk_t new);
+ errcode_t (*move)(ext2_brel brel, blk64_t old, blk_t new);
/*
* Remove a block relocation entry.
*/
- errcode_t (*delete)(ext2_brel brel, blk_t old);
+ errcode_t (*delete)(ext2_brel brel, blk64_t old);
/*
@@ -73,7 +73,7 @@ struct ext2_block_relocation_table {
errcode_t (*free)(ext2_brel brel);
};
-errcode_t ext2fs_brel_memarray_create(char *name, blk_t max_block,
+errcode_t ext2fs_brel_memarray_create(char *name, blk64_t max_block,
ext2_brel *brel);
#define ext2fs_brel_put(brel, old, ent) ((brel)->put((brel), old, ent))
diff --git a/lib/ext2fs/brel_ma.c b/lib/ext2fs/brel_ma.c
index e8a8280e..a12afaeb 100644
--- a/lib/ext2fs/brel_ma.c
+++ b/lib/ext2fs/brel_ma.c
@@ -27,24 +27,24 @@
#include "ext2fs.h"
#include "brel.h"
-static errcode_t bma_put(ext2_brel brel, blk_t old,
+static errcode_t bma_put(ext2_brel brel, blk64_t old,
struct ext2_block_relocate_entry *ent);
-static errcode_t bma_get(ext2_brel brel, blk_t old,
+static errcode_t bma_get(ext2_brel brel, blk64_t old,
struct ext2_block_relocate_entry *ent);
static errcode_t bma_start_iter(ext2_brel brel);
-static errcode_t bma_next(ext2_brel brel, blk_t *old,
+static errcode_t bma_next(ext2_brel brel, blk64_t *old,
struct ext2_block_relocate_entry *ent);
-static errcode_t bma_move(ext2_brel brel, blk_t old, blk_t new);
-static errcode_t bma_delete(ext2_brel brel, blk_t old);
+static errcode_t bma_move(ext2_brel brel, blk64_t old, blk64_t new);
+static errcode_t bma_delete(ext2_brel brel, blk64_t old);
static errcode_t bma_free(ext2_brel brel);
struct brel_ma {
__u32 magic;
- blk_t max_block;
+ blk64_t max_block;
struct ext2_block_relocate_entry *entries;
};
-errcode_t ext2fs_brel_memarray_create(char *name, blk_t max_block,
+errcode_t ext2fs_brel_memarray_create(char *name, blk64_t max_block,
ext2_brel *new_brel)
{
ext2_brel brel = 0;
@@ -102,7 +102,7 @@ errout:
return retval;
}
-static errcode_t bma_put(ext2_brel brel, blk_t old,
+static errcode_t bma_put(ext2_brel brel, blk64_t old,
struct ext2_block_relocate_entry *ent)
{
struct brel_ma *ma;
@@ -114,7 +114,7 @@ static errcode_t bma_put(ext2_brel brel, blk_t old,
return 0;
}
-static errcode_t bma_get(ext2_brel brel, blk_t old,
+static errcode_t bma_get(ext2_brel brel, blk64_t old,
struct ext2_block_relocate_entry *ent)
{
struct brel_ma *ma;
@@ -134,7 +134,7 @@ static errcode_t bma_start_iter(ext2_brel brel)
return 0;
}
-static errcode_t bma_next(ext2_brel brel, blk_t *old,
+static errcode_t bma_next(ext2_brel brel, blk64_t *old,
struct ext2_block_relocate_entry *ent)
{
struct brel_ma *ma;
@@ -151,7 +151,7 @@ static errcode_t bma_next(ext2_brel brel, blk_t *old,
return 0;
}
-static errcode_t bma_move(ext2_brel brel, blk_t old, blk_t new)
+static errcode_t bma_move(ext2_brel brel, blk64_t old, blk64_t new)
{
struct brel_ma *ma;
@@ -165,7 +165,7 @@ static errcode_t bma_move(ext2_brel brel, blk_t old, blk_t new)
return 0;
}
-static errcode_t bma_delete(ext2_brel brel, blk_t old)
+static errcode_t bma_delete(ext2_brel brel, blk64_t old)
{
struct brel_ma *ma;
diff --git a/lib/ext2fs/check_desc.c b/lib/ext2fs/check_desc.c
index a6fcc454..1a768f92 100644
--- a/lib/ext2fs/check_desc.c
+++ b/lib/ext2fs/check_desc.c
@@ -42,6 +42,9 @@ errcode_t ext2fs_check_desc(ext2_filsys fs)
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+ if (EXT2_DESC_SIZE(fs->super) & (EXT2_DESC_SIZE(fs->super) - 1))
+ return EXT2_ET_BAD_DESC_SIZE;
+
retval = ext2fs_allocate_subcluster_bitmap(fs, "check_desc map", &bmap);
if (retval)
return retval;
diff --git a/lib/ext2fs/closefs.c b/lib/ext2fs/closefs.c
index 973c2a23..4e91778a 100644
--- a/lib/ext2fs/closefs.c
+++ b/lib/ext2fs/closefs.c
@@ -20,12 +20,12 @@
#include "ext2_fs.h"
#include "ext2fsP.h"
-static int test_root(int a, int b)
+static int test_root(unsigned int a, unsigned int b)
{
- if (a == 0)
- return 1;
while (1) {
- if (a == 1)
+ if (a < b)
+ return 0;
+ if (a == b)
return 1;
if (a % b)
return 0;
@@ -33,14 +33,23 @@ static int test_root(int a, int b)
}
}
-int ext2fs_bg_has_super(ext2_filsys fs, int group_block)
+int ext2fs_bg_has_super(ext2_filsys fs, dgrp_t group)
{
- if (!(fs->super->s_feature_ro_compat &
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER))
+ if (group == 0)
return 1;
-
- if (test_root(group_block, 3) || (test_root(group_block, 5)) ||
- test_root(group_block, 7))
+ if (fs->super->s_feature_compat & EXT4_FEATURE_COMPAT_SPARSE_SUPER2) {
+ if (group == fs->super->s_backup_bgs[0] ||
+ group == fs->super->s_backup_bgs[1])
+ return 1;
+ return 0;
+ }
+ if ((group <= 1) || !(fs->super->s_feature_ro_compat &
+ EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER))
+ return 1;
+ if (!(group & 1))
+ return 0;
+ if (test_root(group, 3) || (test_root(group, 5)) ||
+ test_root(group, 7))
return 1;
return 0;
@@ -243,7 +252,7 @@ void ext2fs_update_dynamic_rev(ext2_filsys fs)
}
static errcode_t write_backup_super(ext2_filsys fs, dgrp_t group,
- blk_t group_block,
+ blk64_t group_block,
struct ext2_super_block *super_shadow)
{
dgrp_t sgrp = group;
@@ -301,7 +310,7 @@ errcode_t ext2fs_flush2(ext2_filsys fs, int flags)
fs->desc_blocks);
/* swap the group descriptors */
- for (j=0; j < fs->group_desc_count; j++) {
+ for (j = 0; j < fs->group_desc_count; j++) {
gdp = ext2fs_group_desc(fs, group_shadow, j);
ext2fs_swap_group_desc2(fs, gdp);
}
diff --git a/lib/ext2fs/crc32c.c b/lib/ext2fs/crc32c.c
index 6be43369..2512528a 100644
--- a/lib/ext2fs/crc32c.c
+++ b/lib/ext2fs/crc32c.c
@@ -35,9 +35,9 @@
#define __force
#define min(x, y) ((x) > (y) ? (y) : (x))
#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
-#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
+#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1)
#define ALIGN(x, a) __ALIGN_KERNEL((x), (a))
-#define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a)))
+#define PTR_ALIGN(p, a) ((__typeof__(p))ALIGN((unsigned long)(p), (a)))
#include "crc32c_defs.h"
#include "ext2fs.h"
@@ -224,7 +224,7 @@ static uint32_t crc32c_le_body(uint32_t crc, uint8_t const *buf, size_t len)
crc = (__force uint32_t) __cpu_to_le32(crc);
p8 = buf;
- p32 = (uint32_t *)PTR_ALIGN(p8, 8);
+ p32 = (const uint32_t *)PTR_ALIGN(p8, 8);
init_bytes = min((uintptr_t)p32 - (uintptr_t)p8, len);
words = (len - init_bytes) >> 3;
end_bytes = (len - init_bytes) & 7;
@@ -273,7 +273,7 @@ static uint32_t crc32c_le_body(uint32_t crc, uint8_t const *buf, size_t len)
#endif
}
- p8 = (uint8_t *)(++p32);
+ p8 = (const uint8_t *)(++p32);
for (i = 0; i < end_bytes; i++) {
#ifndef WORDS_BIGENDIAN
@@ -304,7 +304,7 @@ static uint32_t crc32c_be_body(uint32_t crc, uint8_t const *buf, size_t len)
crc = (__force uint32_t) __cpu_to_be32(crc);
p8 = buf;
- p32 = (uint32_t *)PTR_ALIGN(p8, 8);
+ p32 = (const uint32_t *)PTR_ALIGN(p8, 8);
init_bytes = min((uintptr_t)p32 - (uintptr_t)p8, len);
words = (len - init_bytes) >> 3;
end_bytes = (len - init_bytes) & 7;
@@ -353,7 +353,7 @@ static uint32_t crc32c_be_body(uint32_t crc, uint8_t const *buf, size_t len)
#endif
}
- p8 = (uint8_t *)(++p32);
+ p8 = (const uint8_t *)(++p32);
for (i = 0; i < end_bytes; i++) {
#ifndef WORDS_BIGENDIAN
@@ -1117,12 +1117,12 @@ static int test_crc32c(void)
be = ext2fs_crc32c_be(t->crc, test_buf + t->start, t->length);
if (le != t->crc_le) {
printf("Test %d LE fails, %x != %x\n",
- (t - test), le, t->crc_le);
+ (int) (t - test), le, t->crc_le);
failures++;
}
if (be != t->crc_be) {
printf("Test %d BE fails, %x != %x\n",
- (t - test), be, t->crc_be);
+ (int) (t - test), be, t->crc_be);
failures++;
}
t++;
diff --git a/lib/ext2fs/csum.c b/lib/ext2fs/csum.c
index 9fa3f24f..669f8068 100644
--- a/lib/ext2fs/csum.c
+++ b/lib/ext2fs/csum.c
@@ -32,27 +32,23 @@
__u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group)
{
+ struct ext2_group_desc *desc = ext2fs_group_desc(fs, fs->group_desc,
+ group);
+ size_t size = EXT2_DESC_SIZE(fs->super);
__u16 crc = 0;
- struct ext2_group_desc *desc;
- size_t size;
-
- size = fs->super->s_desc_size;
- if (size < EXT2_MIN_DESC_SIZE)
- size = EXT2_MIN_DESC_SIZE;
- if (size > sizeof(struct ext4_group_desc)) {
- printf("%s: illegal s_desc_size(%zd)\n", __func__, size);
- size = sizeof(struct ext4_group_desc);
- }
-
- desc = ext2fs_group_desc(fs, fs->group_desc, group);
if (fs->super->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_GDT_CSUM) {
size_t offset = offsetof(struct ext2_group_desc, bg_checksum);
#ifdef WORDS_BIGENDIAN
struct ext4_group_desc swabdesc;
+ size_t save_size = size;
+ const size_t ext4_bg_size = sizeof(struct ext4_group_desc);
+ struct ext2_group_desc *save_desc = desc;
/* Have to swab back to little-endian to do the checksum */
+ if (size > ext4_bg_size)
+ size = ext4_bg_size;
memcpy(&swabdesc, desc, size);
ext2fs_swap_group_desc2(fs,
(struct ext2_group_desc *) &swabdesc);
@@ -70,6 +66,17 @@ __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group)
crc = ext2fs_crc16(crc, (char *)desc + offset,
size - offset);
}
+#ifdef WORDS_BIGENDIAN
+ /*
+ * If the size of the bg descriptor is greater than 64
+ * bytes, which is the size of the traditional ext4 bg
+ * descriptor, checksum the rest of the descriptor here
+ */
+ if (save_size > ext4_bg_size)
+ crc = ext2fs_crc16(crc,
+ (char *)save_desc + ext4_bg_size,
+ save_size - ext4_bg_size);
+#endif
}
return crc;
@@ -166,21 +173,22 @@ void print_csum(const char *msg, ext2_filsys fs, dgrp_t group)
{
__u16 crc1, crc2, crc3;
dgrp_t swabgroup;
- struct ext2_group_desc *desc = ext2fs_group_desc(fs, fs->group_desc, group);
- size_t size;
+ struct ext2_group_desc *desc = ext2fs_group_desc(fs, fs->group_desc,
+ group);
+ size_t size = EXT2_DESC_SIZE(fs->super);
struct ext2_super_block *sb = fs->super;
int offset = offsetof(struct ext2_group_desc, bg_checksum);
#ifdef WORDS_BIGENDIAN
struct ext4_group_desc swabdesc;
+ struct ext2_group_desc *save_desc = desc;
+ const size_t ext4_bg_size = sizeof(struct ext4_group_desc);
+ size_t save_size = size;
#endif
- size = fs->super->s_desc_size;
- if (size < EXT2_MIN_DESC_SIZE)
- size = EXT2_MIN_DESC_SIZE;
- if (size > sizeof(struct ext4_group_desc))
- size = sizeof(struct ext4_group_desc);
#ifdef WORDS_BIGENDIAN
/* Have to swab back to little-endian to do the checksum */
+ if (size > ext4_bg_size)
+ size = ext4_bg_size;
memcpy(&swabdesc, desc, size);
ext2fs_swap_group_desc2(fs, (struct ext2_group_desc *) &swabdesc);
desc = (struct ext2_group_desc *) &swabdesc;
@@ -197,8 +205,13 @@ void print_csum(const char *msg, ext2_filsys fs, dgrp_t group)
/* for checksum of struct ext4_group_desc do the rest...*/
if (offset < size)
crc3 = ext2fs_crc16(crc3, (char *)desc + offset, size - offset);
+#ifdef WORDS_BIGENDIAN
+ if (save_size > ext4_bg_size)
+ crc3 = ext2fs_crc16(crc3, (char *)save_desc + ext4_bg_size,
+ save_size - ext4_bg_size);
+#endif
- printf("%s: UUID %s(%04x), grp %u(%04x): %04x=%04x\n",
+ printf("%s UUID %s=%04x, grp %u=%04x: %04x=%04x\n",
msg, e2p_uuid2str(sb->s_uuid), crc1, group, crc2, crc3,
ext2fs_group_desc_csum(fs, group));
}
@@ -216,6 +229,11 @@ int main(int argc, char **argv)
memset(&param, 0, sizeof(param));
ext2fs_blocks_count_set(&param, 32768);
+#if 0
+ param.s_feature_incompat |= EXT4_FEATURE_INCOMPAT_64BIT;
+ param.s_desc_size = 128;
+ csum_known = 0x5b6e;
+#endif
retval = ext2fs_initialize("test fs", EXT2_FLAG_64BITS, &param,
test_io_manager, &fs);
diff --git a/lib/ext2fs/dblist.c b/lib/ext2fs/dblist.c
index ca1446b9..3f6ea50d 100644
--- a/lib/ext2fs/dblist.c
+++ b/lib/ext2fs/dblist.c
@@ -61,7 +61,7 @@ static errcode_t make_dblist(ext2_filsys fs, ext2_ino_t size,
struct ext2_db_entry2 *list,
ext2_dblist *ret_dblist)
{
- ext2_dblist dblist;
+ ext2_dblist dblist = NULL;
errcode_t retval;
ext2_ino_t num_dirs;
size_t len;
@@ -393,10 +393,11 @@ int ext2fs_dblist_count(ext2_dblist dblist)
errcode_t ext2fs_dblist_get_last(ext2_dblist dblist,
struct ext2_db_entry **entry)
{
- EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
static struct ext2_db_entry ret_entry;
struct ext2_db_entry2 *last;
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
if (dblist->count == 0)
return EXT2_ET_DBLIST_EMPTY;
diff --git a/lib/ext2fs/dir_iterate.c b/lib/ext2fs/dir_iterate.c
index 5125d199..589af692 100644
--- a/lib/ext2fs/dir_iterate.c
+++ b/lib/ext2fs/dir_iterate.c
@@ -151,16 +151,16 @@ static int xlate_func(ext2_ino_t dir EXT2FS_ATTR((unused)),
return (*xl->func)(dirent, offset, blocksize, buf, xl->real_private);
}
-extern errcode_t ext2fs_dir_iterate(ext2_filsys fs,
- ext2_ino_t dir,
- int flags,
- char *block_buf,
- int (*func)(struct ext2_dir_entry *dirent,
- int offset,
- int blocksize,
- char *buf,
- void *priv_data),
- void *priv_data)
+errcode_t ext2fs_dir_iterate(ext2_filsys fs,
+ ext2_ino_t dir,
+ int flags,
+ char *block_buf,
+ int (*func)(struct ext2_dir_entry *dirent,
+ int offset,
+ int blocksize,
+ char *buf,
+ void *priv_data),
+ void *priv_data)
{
struct xlate xl;
diff --git a/lib/ext2fs/dupfs.c b/lib/ext2fs/dupfs.c
index 64d31248..02721e1a 100644
--- a/lib/ext2fs/dupfs.c
+++ b/lib/ext2fs/dupfs.c
@@ -40,6 +40,9 @@ errcode_t ext2fs_dup_handle(ext2_filsys src, ext2_filsys *dest)
fs->block_map = 0;
fs->badblocks = 0;
fs->dblist = 0;
+ fs->mmp_buf = 0;
+ fs->mmp_cmp = 0;
+ fs->mmp_fd = -1;
io_channel_bumpcount(fs->io);
if (fs->icache)
@@ -87,6 +90,28 @@ errcode_t ext2fs_dup_handle(ext2_filsys src, ext2_filsys *dest)
if (retval)
goto errout;
}
+ if (src->mmp_buf) {
+ retval = ext2fs_get_mem(src->blocksize, &fs->mmp_buf);
+ if (retval)
+ goto errout;
+ memcpy(fs->mmp_buf, src->mmp_buf, src->blocksize);
+ }
+ if (src->mmp_fd >= 0) {
+ fs->mmp_fd = dup(src->mmp_fd);
+ if (fs->mmp_fd < 0) {
+ retval = EXT2_ET_MMP_OPEN_DIRECT;
+ goto errout;
+ }
+ }
+ if (src->mmp_cmp) {
+ int align = ext2fs_get_dio_alignment(src->mmp_fd);
+
+ retval = ext2fs_get_memalign(src->blocksize, align,
+ &fs->mmp_cmp);
+ if (retval)
+ goto errout;
+ memcpy(fs->mmp_cmp, src->mmp_cmp, src->blocksize);
+ }
*dest = fs;
return 0;
errout:
diff --git a/lib/ext2fs/e2image.h b/lib/ext2fs/e2image.h
index c918529e..53b20cc7 100644
--- a/lib/ext2fs/e2image.h
+++ b/lib/ext2fs/e2image.h
@@ -12,15 +12,6 @@
* %End-Header%
*/
-/* Image types */
-#define E2IMAGE_RAW 1
-#define E2IMAGE_QCOW2 2
-
-/* Image flags */
-#define E2IMAGE_INSTALL_FLAG 1
-#define E2IMAGE_SCRAMBLE_FLAG 2
-#define E2IMAGE_IS_QCOW2_FLAG 3
-
struct ext2_image_hdr {
__u32 magic_number; /* This must be EXT2_ET_MAGIC_E2IMAGE */
char magic_descriptor[16]; /* "Ext2 Image 1.0", w/ null padding */
diff --git a/lib/ext2fs/expanddir.c b/lib/ext2fs/expanddir.c
index 41c40882..153b838c 100644
--- a/lib/ext2fs/expanddir.c
+++ b/lib/ext2fs/expanddir.c
@@ -54,6 +54,7 @@ static int expand_dir_proc(ext2_filsys fs,
return BLOCK_ABORT;
}
es->newblocks++;
+ ext2fs_block_alloc_stats2(fs, new_blk, +1);
}
if (blockcnt > 0) {
retval = ext2fs_new_dir_block(fs, 0, 0, &block);
@@ -80,7 +81,6 @@ static int expand_dir_proc(ext2_filsys fs,
}
ext2fs_free_mem(&block);
*blocknr = new_blk;
- ext2fs_block_alloc_stats2(fs, new_blk, +1);
if (es->done)
return (BLOCK_CHANGED | BLOCK_ABORT);
diff --git a/lib/ext2fs/ext2_err.et.in b/lib/ext2fs/ext2_err.et.in
index ccf1894a..87812ab4 100644
--- a/lib/ext2fs/ext2_err.et.in
+++ b/lib/ext2fs/ext2_err.et.in
@@ -96,10 +96,10 @@ ec EXT2_ET_INODE_BITMAP_READ,
"Can't read an inode bitmap"
ec EXT2_ET_BLOCK_BITMAP_WRITE,
- "Can't write an block bitmap"
+ "Can't write a block bitmap"
ec EXT2_ET_BLOCK_BITMAP_READ,
- "Can't read an block bitmap"
+ "Can't read a block bitmap"
ec EXT2_ET_INODE_TABLE_WRITE,
"Can't write an inode table"
@@ -416,7 +416,7 @@ ec EXT2_ET_EXTENT_INVALID_LENGTH,
ec EXT2_ET_IO_CHANNEL_NO_SUPPORT_64,
"I/O Channel does not support 64-bit block numbers"
-ec EXT2_NO_MTAB_FILE,
+ec EXT2_ET_NO_MTAB_FILE,
"Can't check if filesystem is mounted due to missing mtab file"
ec EXT2_ET_CANT_USE_LEGACY_BITMAPS,
@@ -443,4 +443,37 @@ ec EXT2_ET_MMP_CHANGE_ABORT,
ec EXT2_ET_MMP_OPEN_DIRECT,
"MMP: open with O_DIRECT failed"
+ec EXT2_ET_BAD_DESC_SIZE,
+ "Block group descriptor size incorrect"
+
+ec EXT2_ET_INODE_CSUM_INVALID,
+ "Inode checksum does not match inode"
+
+ec EXT2_ET_INODE_BITMAP_CSUM_INVALID,
+ "Inode bitmap checksum does not match bitmap"
+
+ec EXT2_ET_EXTENT_CSUM_INVALID,
+ "Extent block checksum does not match extent block"
+
+ec EXT2_ET_DIR_NO_SPACE_FOR_CSUM,
+ "Directory block does not have space for checksum"
+
+ec EXT2_ET_DIR_CSUM_INVALID,
+ "Directory block checksum does not match directory block"
+
+ec EXT2_ET_EXT_ATTR_CSUM_INVALID,
+ "Extended attribute block checksum does not match block"
+
+ec EXT2_ET_SB_CSUM_INVALID,
+ "Superblock checksum does not match superblock"
+
+ec EXT2_ET_UNKNOWN_CSUM,
+ "Unknown checksum algorithm"
+
+ec EXT2_ET_MMP_CSUM_INVALID,
+ "MMP block checksum does not match MMP block"
+
+ec EXT2_ET_FILE_EXISTS,
+ "Ext2 file already exists"
+
end
diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
index 20decff2..d9e14d7c 100644
--- a/lib/ext2fs/ext2_fs.h
+++ b/lib/ext2fs/ext2_fs.h
@@ -159,7 +159,7 @@ struct ext2_group_desc
__u16 bg_block_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
__u16 bg_inode_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
__u16 bg_itable_unused; /* Unused inodes count */
- __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/
+ __u16 bg_checksum; /* crc16(s_uuid+group_num+group_desc)*/
};
/*
@@ -301,6 +301,7 @@ struct ext2_dx_countlimit {
#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
/* EXT4_EOFBLOCKS_FL 0x00400000 was here */
+#define FS_NOCOW_FL 0x00800000 /* Do not cow file */
#define EXT4_SNAPFILE_FL 0x01000000 /* Inode is a snapshot */
#define EXT4_SNAPFILE_DELETED_FL 0x04000000 /* Snapshot is being deleted */
#define EXT4_SNAPFILE_SHRUNK_FL 0x08000000 /* Snapshot shrink has completed */
@@ -644,7 +645,8 @@ struct ext2_super_block {
__u32 s_usr_quota_inum; /* inode number of user quota file */
__u32 s_grp_quota_inum; /* inode number of group quota file */
__u32 s_overhead_blocks; /* overhead blocks/clusters in fs */
- __u32 s_reserved[108]; /* Padding to the end of the block */
+ __u32 s_backup_bgs[2]; /* If sparse_super2 enabled */
+ __u32 s_reserved[106]; /* Padding to the end of the block */
__u32 s_checksum; /* crc32c(superblock) */
};
@@ -695,6 +697,7 @@ struct ext2_super_block {
#define EXT2_FEATURE_COMPAT_LAZY_BG 0x0040
/* #define EXT2_FEATURE_COMPAT_EXCLUDE_INODE 0x0080 not used, legacy */
#define EXT2_FEATURE_COMPAT_EXCLUDE_BITMAP 0x0100
+#define EXT4_FEATURE_COMPAT_SPARSE_SUPER2 0x0200
#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
@@ -721,6 +724,9 @@ struct ext2_super_block {
#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
#define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400
#define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000
+/* 0x2000 was EXT4_FEATURE_INCOMPAT_BG_USE_META_CSUM but this was never used */
+#define EXT4_FEATURE_INCOMPAT_LARGEDIR 0x4000 /* >2GB or 3-lvl htree */
+#define EXT4_FEATURE_INCOMPAT_INLINEDATA 0x8000 /* data in inode */
#define EXT2_FEATURE_COMPAT_SUPP 0
#define EXT2_FEATURE_INCOMPAT_SUPP (EXT2_FEATURE_INCOMPAT_FILETYPE| \
diff --git a/lib/ext2fs/ext2_io.h b/lib/ext2fs/ext2_io.h
index bcc2f876..1894fb8c 100644
--- a/lib/ext2fs/ext2_io.h
+++ b/lib/ext2fs/ext2_io.h
@@ -58,6 +58,7 @@ struct struct_io_channel {
long reserved[14];
void *private_data;
void *app_data;
+ int align;
};
struct struct_io_stats {
@@ -121,6 +122,8 @@ extern errcode_t io_channel_write_blk64(io_channel channel,
extern errcode_t io_channel_discard(io_channel channel,
unsigned long long block,
unsigned long long count);
+extern errcode_t io_channel_alloc_buf(io_channel channel,
+ int count, void *ptr);
/* unix_io.c */
extern io_manager unix_io_manager;
diff --git a/lib/ext2fs/ext2_types.h.in b/lib/ext2fs/ext2_types.h.in
index aa7ca3a9..5b98f715 100644
--- a/lib/ext2fs/ext2_types.h.in
+++ b/lib/ext2fs/ext2_types.h.in
@@ -92,11 +92,11 @@ typedef __U64_TYPEDEF __u64;
#if (@SIZEOF_INT@ == 8)
typedef unsigned int __u64;
#else
-#if (@SIZEOF_LONG@ == 8)
-typedef unsigned long __u64;
-#else
#if (@SIZEOF_LONG_LONG@ == 8)
typedef unsigned long long __u64;
+#else
+#if (@SIZEOF_LONG@ == 8)
+typedef unsigned long __u64;
#endif /* SIZEOF_LONG_LONG == 8 */
#endif /* SIZEOF_LONG == 8 */
#endif /* SIZEOF_INT == 8 */
@@ -108,15 +108,15 @@ typedef __S64_TYPEDEF __s64;
#if (@SIZEOF_INT@ == 8)
typedef int __s64;
#else
-#if (@SIZEOF_LONG@ == 8)
-typedef long __s64;
-#else
#if (@SIZEOF_LONG_LONG@ == 8)
#if defined(__GNUC__)
-typedef __signed__ long long __s64;
+typedef __signed__ long long __s64;
#else
-typedef signed long long __s64;
+typedef signed long long __s64;
#endif /* __GNUC__ */
+#else
+#if (@SIZEOF_LONG@ == 8)
+typedef long __s64;
#endif /* SIZEOF_LONG_LONG == 8 */
#endif /* SIZEOF_LONG == 8 */
#endif /* SIZEOF_INT == 8 */
diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h
index 4e7711ac..1491c622 100644
--- a/lib/ext2fs/ext2fs.h
+++ b/lib/ext2fs/ext2fs.h
@@ -29,10 +29,6 @@ extern "C" {
#define NO_INLINE_FUNCS
#endif
-#ifndef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 600 /* for posix_memalign() */
-#endif
-
/*
* Where the master copy of the superblock is located, and how big
* superblocks are supposed to be. We define SUPERBLOCK_SIZE because
@@ -57,16 +53,6 @@ extern "C" {
#include <stdlib.h>
#include <string.h>
#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#ifndef __USE_XOPEN2K
-/* If the "#define _XOPEN_SOURCE 600" didn't succeed in declaring
- * posix_memalign(), maybe due to <features.h> or <stdlib.h> included beforej
- * _XOPEN_SOURCE, declare it here to avoid compiler warnings. */
-extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
-#endif
#if EXT2_FLAT_INCLUDES
#include "e2_types.h"
@@ -78,14 +64,20 @@ extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
#include <ext2fs/ext3_extents.h>
#endif /* EXT2_FLAT_INCLUDES */
-typedef __u32 ext2_ino_t;
-typedef __u32 blk_t;
-typedef __u64 blk64_t;
-typedef __u32 dgrp_t;
-typedef __u32 ext2_off_t;
-typedef __u64 ext2_off64_t;
-typedef __s64 e2_blkcnt_t;
-typedef __u32 ext2_dirhash_t;
+#ifdef __CHECK_ENDIAN__
+#define __bitwise __attribute__((bitwise))
+#else
+#define __bitwise
+#endif
+
+typedef __u32 __bitwise ext2_ino_t;
+typedef __u32 __bitwise blk_t;
+typedef __u64 __bitwise blk64_t;
+typedef __u32 __bitwise dgrp_t;
+typedef __u32 __bitwise ext2_off_t;
+typedef __u64 __bitwise ext2_off64_t;
+typedef __s64 __bitwise e2_blkcnt_t;
+typedef __u32 __bitwise ext2_dirhash_t;
#if EXT2_FLAT_INCLUDES
#include "com_err.h"
@@ -211,6 +203,7 @@ typedef struct ext2_file *ext2_file_t;
*/
#define EXT2_MKJOURNAL_V1_SUPER 0x0000001 /* create V1 superblock (deprecated) */
#define EXT2_MKJOURNAL_LAZYINIT 0x0000002 /* don't zero journal inode before use*/
+#define EXT2_MKJOURNAL_NO_MNT_CHECK 0x0000004 /* don't check mount status */
struct opaque_ext2_group_desc;
@@ -557,7 +550,8 @@ typedef struct ext2_icount *ext2_icount_t;
EXT3_FEATURE_COMPAT_HAS_JOURNAL|\
EXT2_FEATURE_COMPAT_RESIZE_INODE|\
EXT2_FEATURE_COMPAT_DIR_INDEX|\
- EXT2_FEATURE_COMPAT_EXT_ATTR)
+ EXT2_FEATURE_COMPAT_EXT_ATTR|\
+ EXT4_FEATURE_COMPAT_SPARSE_SUPER2)
/* This #ifdef is temporary until compression is fully supported */
#ifdef ENABLE_COMPRESSION
@@ -639,6 +633,12 @@ typedef struct stat ext2fs_struct_stat;
* function prototypes
*/
+/* The LARGE_FILE feature should be set if we have stored files 2GB+ in size */
+static inline int ext2fs_needs_large_file_feature(unsigned long long file_size)
+{
+ return file_size >= 0x80000000ULL;
+}
+
/* alloc.c */
extern errcode_t ext2fs_new_inode(ext2_filsys fs, ext2_ino_t dir, int mode,
ext2fs_inode_bitmap map, ext2_ino_t *ret);
@@ -684,6 +684,8 @@ void ext2fs_inode_alloc_stats2(ext2_filsys fs, ext2_ino_t ino,
int inuse, int isdir);
void ext2fs_block_alloc_stats(ext2_filsys fs, blk_t blk, int inuse);
void ext2fs_block_alloc_stats2(ext2_filsys fs, blk64_t blk, int inuse);
+void ext2fs_block_alloc_stats_range(ext2_filsys fs, blk64_t blk,
+ blk_t num, int inuse);
/* alloc_tables.c */
extern errcode_t ext2fs_allocate_tables(ext2_filsys fs);
@@ -907,6 +909,9 @@ extern errcode_t ext2fs_bmap2(ext2_filsys fs, ext2_ino_t ino,
struct ext2_inode *inode,
char *block_buf, int bmap_flags, blk64_t block,
int *ret_flags, blk64_t *phys_blk);
+errcode_t ext2fs_map_cluster_block(ext2_filsys fs, ext2_ino_t ino,
+ struct ext2_inode *inode, blk64_t lblk,
+ blk64_t *pblk);
#if 0
/* bmove.c */
@@ -924,7 +929,7 @@ extern errcode_t ext2fs_close(ext2_filsys fs);
extern errcode_t ext2fs_close2(ext2_filsys fs, int flags);
extern errcode_t ext2fs_flush(ext2_filsys fs);
extern errcode_t ext2fs_flush2(ext2_filsys fs, int flags);
-extern int ext2fs_bg_has_super(ext2_filsys fs, int group_block);
+extern int ext2fs_bg_has_super(ext2_filsys fs, dgrp_t group_block);
extern errcode_t ext2fs_super_and_bgd_loc2(ext2_filsys fs,
dgrp_t group,
blk64_t *ret_super_blk,
@@ -1083,6 +1088,7 @@ extern errcode_t ext2fs_extent_open2(ext2_filsys fs, ext2_ino_t ino,
extern void ext2fs_extent_free(ext2_extent_handle_t handle);
extern errcode_t ext2fs_extent_get(ext2_extent_handle_t handle,
int flags, struct ext2fs_extent *extent);
+extern errcode_t ext2fs_extent_node_split(ext2_extent_handle_t handle);
extern errcode_t ext2fs_extent_replace(ext2_extent_handle_t handle, int flags,
struct ext2fs_extent *extent);
extern errcode_t ext2fs_extent_insert(ext2_extent_handle_t handle, int flags,
@@ -1095,6 +1101,9 @@ extern errcode_t ext2fs_extent_get_info(ext2_extent_handle_t handle,
struct ext2_extent_info *info);
extern errcode_t ext2fs_extent_goto(ext2_extent_handle_t handle,
blk64_t blk);
+extern errcode_t ext2fs_extent_goto2(ext2_extent_handle_t handle,
+ int leaf_level, blk64_t blk);
+extern errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle);
/* fileio.c */
extern errcode_t ext2fs_file_open2(ext2_filsys fs, ext2_ino_t ino,
@@ -1168,6 +1177,12 @@ extern errcode_t ext2fs_set_generic_bitmap_range(ext2fs_generic_bitmap bmap,
errcode_t magic,
__u32 start, __u32 num,
void *in);
+extern errcode_t ext2fs_find_first_zero_generic_bitmap(ext2fs_generic_bitmap bitmap,
+ __u32 start, __u32 end,
+ __u32 *out);
+extern errcode_t ext2fs_find_first_set_generic_bitmap(ext2fs_generic_bitmap bitmap,
+ __u32 start, __u32 end,
+ __u32 *out);
/* gen_bitmap64.c */
@@ -1209,6 +1224,7 @@ extern errcode_t ext2fs_get_device_size2(const char *file, int blocksize,
blk64_t *retblocks);
/* getsectsize.c */
+extern int ext2fs_get_dio_alignment(int fd);
errcode_t ext2fs_get_device_sectsize(const char *file, int *sectsize);
errcode_t ext2fs_get_device_phys_sectsize(const char *file, int *sectsize);
@@ -1257,6 +1273,11 @@ extern errcode_t ext2fs_icount_store(ext2_icount_t icount, ext2_ino_t ino,
extern ext2_ino_t ext2fs_get_icount_size(ext2_icount_t icount);
errcode_t ext2fs_icount_validate(ext2_icount_t icount, FILE *);
+/* inline.c */
+
+extern errcode_t ext2fs_get_memalign(unsigned long size,
+ unsigned long align, void *ptr);
+
/* inode.c */
extern errcode_t ext2fs_flush_icache(ext2_filsys fs);
extern errcode_t ext2fs_get_next_inode_full(ext2_inode_scan scan,
@@ -1308,6 +1329,10 @@ extern errcode_t ext2fs_check_mount_point(const char *device, int *mount_flags,
char *mtpt, int mtlen);
/* punch.c */
+/*
+ * NOTE: This function removes from an inode the blocks "start", "end", and
+ * every block in between.
+ */
extern errcode_t ext2fs_punch(ext2_filsys fs, ext2_ino_t ino,
struct ext2_inode *inode,
char *block_buf, blk64_t start,
@@ -1346,6 +1371,8 @@ extern errcode_t ext2fs_add_journal_device(ext2_filsys fs,
ext2_filsys journal_dev);
extern errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t num_blocks,
int flags);
+extern errcode_t ext2fs_add_journal_inode2(ext2_filsys fs, blk_t num_blocks,
+ blk64_t goal, int flags);
extern int ext2fs_default_journal_size(__u64 num_blocks);
/* openfs.c */
@@ -1356,6 +1383,11 @@ extern errcode_t ext2fs_open2(const char *name, const char *io_options,
int flags, int superblock,
unsigned int block_size, io_manager manager,
ext2_filsys *ret_fs);
+/*
+ * The dgrp_t argument to these two functions is not actually a group number
+ * but a block number offset within a group table! Convert with the formula
+ * (group_number / groups_per_block).
+ */
extern blk64_t ext2fs_descriptor_block_loc2(ext2_filsys fs,
blk64_t group_block, dgrp_t i);
extern blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block,
@@ -1374,6 +1406,10 @@ errcode_t ext2fs_link(ext2_filsys fs, ext2_ino_t dir, const char *name,
errcode_t ext2fs_unlink(ext2_filsys fs, ext2_ino_t dir, const char *name,
ext2_ino_t ino, int flags);
+/* symlink.c */
+errcode_t ext2fs_symlink(ext2_filsys fs, ext2_ino_t parent, ext2_ino_t ino,
+ const char *name, char *target);
+
/* mmp.c */
errcode_t ext2fs_mmp_read(ext2_filsys fs, blk64_t mmp_blk, void *buf);
errcode_t ext2fs_mmp_write(ext2_filsys fs, blk64_t mmp_blk, void *buf);
@@ -1421,6 +1457,11 @@ extern void ext2fs_swap_inode(ext2_filsys fs,struct ext2_inode *t,
struct ext2_inode *f, int hostorder);
extern void ext2fs_swap_mmp(struct mmp_struct *mmp);
+/* unix_io.c */
+extern int ext2fs_open_file(const char *pathname, int flags, mode_t mode);
+extern int ext2fs_stat(const char *path, ext2fs_struct_stat *buf);
+extern int ext2fs_fstat(int fd, ext2fs_struct_stat *buf);
+
/* valid_blk.c */
extern int ext2fs_inode_has_valid_blocks(struct ext2_inode *inode);
extern int ext2fs_inode_has_valid_blocks2(ext2_filsys fs,
@@ -1438,9 +1479,8 @@ extern errcode_t ext2fs_write_bb_FILE(ext2_badblocks_list bb_list,
/* inline functions */
+#ifdef NO_INLINE_FUNCS
extern errcode_t ext2fs_get_mem(unsigned long size, void *ptr);
-extern errcode_t ext2fs_get_memalign(unsigned long size,
- unsigned long align, void *ptr);
extern errcode_t ext2fs_get_memzero(unsigned long size, void *ptr);
extern errcode_t ext2fs_get_array(unsigned long count,
unsigned long size, void *ptr);
@@ -1459,17 +1499,15 @@ extern void ext2fs_mark_ib_dirty(ext2_filsys fs);
extern void ext2fs_mark_bb_dirty(ext2_filsys fs);
extern int ext2fs_test_ib_dirty(ext2_filsys fs);
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 dgrp_t ext2fs_group_of_blk(ext2_filsys fs, blk_t blk);
+extern dgrp_t 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);
extern __u64 ext2fs_div64_ceil(__u64 a, __u64 b);
-extern int ext2fs_open_file(const char *pathname, int flags, mode_t mode);
-extern int ext2fs_stat(const char *path, ext2fs_struct_stat *buf);
-extern int ext2fs_fstat(int fd, ext2fs_struct_stat *buf);
+#endif
/*
* The actual inlined functions definitions themselves...
@@ -1481,17 +1519,21 @@ extern int ext2fs_fstat(int fd, ext2fs_struct_stat *buf);
#ifdef INCLUDE_INLINE_FUNCS
#define _INLINE_ extern
#else
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ inline
+#else
#ifdef __GNUC__
#define _INLINE_ extern __inline__
#else /* For Watcom C */
#define _INLINE_ extern inline
-#endif
+#endif /* __GNUC__ */
+#endif /* __STDC_VERSION__ >= 199901L */
#endif
#ifndef EXT2_CUSTOM_MEMORY_ROUTINES
#include <string.h>
/*
- * Allocate memory
+ * Allocate memory. The 'ptr' arg must point to a pointer.
*/
_INLINE_ errcode_t ext2fs_get_mem(unsigned long size, void *ptr)
{
@@ -1538,7 +1580,7 @@ _INLINE_ errcode_t ext2fs_get_arrayzero(unsigned long count,
}
/*
- * Free memory
+ * Free memory. The 'ptr' arg must point to a pointer.
*/
_INLINE_ errcode_t ext2fs_free_mem(void *ptr)
{
@@ -1552,7 +1594,7 @@ _INLINE_ errcode_t ext2fs_free_mem(void *ptr)
}
/*
- * Resize memory
+ * Resize memory. The 'ptr' arg must point to a pointer.
*/
_INLINE_ errcode_t ext2fs_resize_mem(unsigned long EXT2FS_ATTR((unused)) old_size,
unsigned long size, void *ptr)
@@ -1653,14 +1695,14 @@ _INLINE_ int ext2fs_test_bb_dirty(ext2_filsys fs)
/*
* Return the group # of a block
*/
-_INLINE_ int ext2fs_group_of_blk(ext2_filsys fs, blk_t blk)
+_INLINE_ dgrp_t ext2fs_group_of_blk(ext2_filsys fs, blk_t blk)
{
return ext2fs_group_of_blk2(fs, blk);
}
/*
* Return the group # of an inode number
*/
-_INLINE_ int ext2fs_group_of_ino(ext2_filsys fs, ext2_ino_t ino)
+_INLINE_ dgrp_t ext2fs_group_of_ino(ext2_filsys fs, ext2_ino_t ino)
{
return (ino - 1) / fs->super->s_inodes_per_group;
}
@@ -1670,7 +1712,7 @@ _INLINE_ int ext2fs_group_of_ino(ext2_filsys fs, ext2_ino_t ino)
*/
_INLINE_ blk_t ext2fs_group_first_block(ext2_filsys fs, dgrp_t group)
{
- return ext2fs_group_first_block2(fs, group);
+ return (blk_t) ext2fs_group_first_block2(fs, group);
}
/*
@@ -1678,13 +1720,13 @@ _INLINE_ blk_t ext2fs_group_first_block(ext2_filsys fs, dgrp_t group)
*/
_INLINE_ blk_t ext2fs_group_last_block(ext2_filsys fs, dgrp_t group)
{
- return ext2fs_group_last_block2(fs, group);
+ return (blk_t) ext2fs_group_last_block2(fs, group);
}
_INLINE_ blk_t ext2fs_inode_data_blocks(ext2_filsys fs,
struct ext2_inode *inode)
{
- return ext2fs_inode_data_blocks2(fs, inode);
+ return (blk_t) ext2fs_inode_data_blocks2(fs, inode);
}
/*
@@ -1704,40 +1746,6 @@ _INLINE_ __u64 ext2fs_div64_ceil(__u64 a, __u64 b)
return ((a - 1) / b) + 1;
}
-_INLINE_ int ext2fs_open_file(const char *pathname, int flags, mode_t mode)
-{
- va_list args;
-
- if (mode)
-#if defined(HAVE_OPEN64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
- return open64(pathname, flags, mode);
- else
- return open64(pathname, flags);
-#else
- return open(pathname, flags, mode);
- else
- return open(pathname, flags);
-#endif
-}
-
-_INLINE_ int ext2fs_stat(const char *path, ext2fs_struct_stat *buf)
-{
-#if defined(HAVE_FSTAT64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
- return stat64(path, buf);
-#else
- return stat(path, buf);
-#endif
-}
-
-_INLINE_ int ext2fs_fstat(int fd, ext2fs_struct_stat *buf)
-{
-#if defined(HAVE_FSTAT64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
- return fstat64(fd, buf);
-#else
- return fstat(fd, buf);
-#endif
-}
-
#undef _INLINE_
#endif
diff --git a/lib/ext2fs/ext2fs.pc.in b/lib/ext2fs/ext2fs.pc.in
index 8db86635..efac85e3 100644
--- a/lib/ext2fs/ext2fs.pc.in
+++ b/lib/ext2fs/ext2fs.pc.in
@@ -7,5 +7,5 @@ Name: ext2fs
Description: Ext2fs library
Version: @E2FSPROGS_VERSION@
Requires.private: com_err
-Cflags: -I${includedir}/ext2fs
+Cflags: -I${includedir}/ext2fs -I${includedir}
Libs: -L${libdir} -lext2fs
diff --git a/lib/ext2fs/ext2fsP.h b/lib/ext2fs/ext2fsP.h
index 729d5c53..a88db93e 100644
--- a/lib/ext2fs/ext2fsP.h
+++ b/lib/ext2fs/ext2fsP.h
@@ -66,7 +66,7 @@ struct dir_context {
*/
struct ext2_inode_cache {
void * buffer;
- blk_t buffer_blk;
+ blk64_t buffer_blk;
int cache_last;
int cache_size;
int refcount;
@@ -141,3 +141,7 @@ extern errcode_t ext2fs_get_generic_bmap_range(ext2fs_generic_bitmap bitmap,
extern void ext2fs_warn_bitmap32(ext2fs_generic_bitmap bitmap,const char *func);
extern int ext2fs_mem_is_zero(const char *mem, size_t len);
+
+extern int ext2fs_file_block_offset_too_big(ext2_filsys fs,
+ struct ext2_inode *inode,
+ blk64_t offset);
diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c
index eb096d6a..0bf82ea4 100644
--- a/lib/ext2fs/extent.c
+++ b/lib/ext2fs/extent.c
@@ -160,7 +160,7 @@ errcode_t ext2fs_extent_header_verify(void *ptr, int size)
/*
* Begin functions to handle an inode's extent information
*/
-extern void ext2fs_extent_free(ext2_extent_handle_t handle)
+void ext2fs_extent_free(ext2_extent_handle_t handle)
{
int i;
@@ -177,13 +177,13 @@ extern void ext2fs_extent_free(ext2_extent_handle_t handle)
ext2fs_free_mem(&handle);
}
-extern errcode_t ext2fs_extent_open(ext2_filsys fs, ext2_ino_t ino,
+errcode_t ext2fs_extent_open(ext2_filsys fs, ext2_ino_t ino,
ext2_extent_handle_t *ret_handle)
{
return ext2fs_extent_open2(fs, ino, NULL, ret_handle);
}
-extern errcode_t ext2fs_extent_open2(ext2_filsys fs, ext2_ino_t ino,
+errcode_t ext2fs_extent_open2(ext2_filsys fs, ext2_ino_t ino,
struct ext2_inode *inode,
ext2_extent_handle_t *ret_handle)
{
@@ -604,8 +604,8 @@ errcode_t ext2fs_extent_free_path(ext2_extent_path_t path)
* If "blk" has no mapping (hole) then handle is left at last
* extent before blk.
*/
-static errcode_t extent_goto(ext2_extent_handle_t handle,
- int leaf_level, blk64_t blk)
+errcode_t ext2fs_extent_goto2(ext2_extent_handle_t handle,
+ int leaf_level, blk64_t blk)
{
struct ext2fs_extent extent;
errcode_t retval;
@@ -694,7 +694,7 @@ static errcode_t extent_goto(ext2_extent_handle_t handle,
errcode_t ext2fs_extent_goto(ext2_extent_handle_t handle,
blk64_t blk)
{
- return extent_goto(handle, 0, blk);
+ return ext2fs_extent_goto2(handle, 0, blk);
}
/*
@@ -706,12 +706,14 @@ errcode_t ext2fs_extent_goto(ext2_extent_handle_t handle,
* Safe to call for any position in node; if not at the first entry,
* will simply return.
*/
-static errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle)
+errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle)
{
int retval = 0;
+ int orig_height;
blk64_t start;
struct extent_path *path;
struct ext2fs_extent extent;
+ struct ext2_extent_info info;
EXT2_CHECK_MAGIC(handle, EXT2_ET_MAGIC_EXTENT_HANDLE);
@@ -732,6 +734,10 @@ static errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle)
/* modified node's start block */
start = extent.e_lblk;
+ if ((retval = ext2fs_extent_get_info(handle, &info)))
+ return retval;
+ orig_height = info.max_depth - info.curr_level;
+
/* traverse up until index not first, or startblk matches, or top */
while (handle->level > 0 &&
(path->left == path->entries - 1)) {
@@ -750,7 +756,7 @@ static errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle)
}
/* put handle back to where we started */
- retval = ext2fs_extent_goto(handle, start);
+ retval = ext2fs_extent_goto2(handle, orig_height, start);
done:
return retval;
}
@@ -813,7 +819,7 @@ errcode_t ext2fs_extent_replace(ext2_extent_handle_t handle,
*
* handle will be left pointing at original record.
*/
-static errcode_t extent_node_split(ext2_extent_handle_t handle)
+errcode_t ext2fs_extent_node_split(ext2_extent_handle_t handle)
{
errcode_t retval = 0;
blk64_t new_node_pblk;
@@ -868,12 +874,12 @@ static errcode_t extent_node_split(ext2_extent_handle_t handle)
goto done;
goal_blk = extent.e_pblk;
- retval = extent_node_split(handle);
+ retval = ext2fs_extent_node_split(handle);
if (retval)
goto done;
/* get handle back to our original split position */
- retval = extent_goto(handle, orig_height, orig_lblk);
+ retval = ext2fs_extent_goto2(handle, orig_height, orig_lblk);
if (retval)
goto done;
}
@@ -928,8 +934,7 @@ static errcode_t extent_node_split(ext2_extent_handle_t handle)
if (log_flex)
group = group & ~((1 << (log_flex)) - 1);
- goal_blk = (group * handle->fs->super->s_blocks_per_group) +
- handle->fs->super->s_first_data_block;
+ goal_blk = ext2fs_group_first_block2(handle->fs, group);
}
retval = ext2fs_alloc_block2(handle->fs, goal_blk, block_buf,
&new_node_pblk);
@@ -1022,12 +1027,13 @@ static errcode_t extent_node_split(ext2_extent_handle_t handle)
}
/* get handle back to our original position */
- retval = extent_goto(handle, orig_height, orig_lblk);
+ retval = ext2fs_extent_goto2(handle, orig_height, orig_lblk);
if (retval)
goto done;
/* new node hooked in, so update inode block count (do this here?) */
- handle->inode->i_blocks += handle->fs->blocksize / 512;
+ handle->inode->i_blocks += (handle->fs->blocksize *
+ EXT2FS_CLUSTER_RATIO(handle->fs)) / 512;
retval = ext2fs_write_inode(handle->fs, handle->ino,
handle->inode);
if (retval)
@@ -1072,7 +1078,7 @@ errcode_t ext2fs_extent_insert(ext2_extent_handle_t handle, int flags,
printf("node full (level %d) - splitting\n",
handle->level);
#endif
- retval = extent_node_split(handle);
+ retval = ext2fs_extent_node_split(handle);
if (retval)
return retval;
path = handle->path + handle->level;
@@ -1086,8 +1092,10 @@ errcode_t ext2fs_extent_insert(ext2_extent_handle_t handle, int flags,
ix++;
path->left--;
}
- } else
+ } else {
ix = EXT_FIRST_INDEX(eh);
+ path->left = -1;
+ }
path->curr = ix;
@@ -1351,6 +1359,9 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
&next_extent);
if (retval)
goto done;
+ retval = ext2fs_extent_fix_parents(handle);
+ if (retval)
+ goto done;
} else
retval = ext2fs_extent_insert(handle,
EXT2_EXTENT_INSERT_AFTER, &newextent);
@@ -1403,15 +1414,22 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
retval = ext2fs_extent_replace(handle, 0, &extent);
if (retval)
goto done;
+ retval = ext2fs_extent_fix_parents(handle);
+ if (retval)
+ goto done;
} else {
__u32 orig_length;
+ blk64_t orig_lblk;
+ struct ext2fs_extent orig_extent;
+ errcode_t r2;
#ifdef DEBUG
printf("(re/un)mapping in middle of extent\n");
#endif
/* need to split this extent; later */
-
+ orig_lblk = extent.e_lblk;
orig_length = extent.e_len;
+ orig_extent = extent;
/* shorten pre-split extent */
extent.e_len = (logical - extent.e_lblk);
@@ -1423,8 +1441,13 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
/* insert new extent after current */
retval = ext2fs_extent_insert(handle,
EXT2_EXTENT_INSERT_AFTER, &newextent);
- if (retval)
+ if (retval) {
+ r2 = ext2fs_extent_goto(handle, orig_lblk);
+ if (r2 == 0)
+ ext2fs_extent_replace(handle, 0,
+ &orig_extent);
goto done;
+ }
}
/* add post-split extent */
extent.e_pblk += extent.e_len + 1;
@@ -1432,15 +1455,25 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
extent.e_len = orig_length - extent.e_len - 1;
retval = ext2fs_extent_insert(handle,
EXT2_EXTENT_INSERT_AFTER, &extent);
- if (retval)
+ if (retval) {
+ if (physical) {
+ r2 = ext2fs_extent_goto(handle,
+ newextent.e_lblk);
+ if (r2 == 0)
+ ext2fs_extent_delete(handle, 0);
+ }
+ r2 = ext2fs_extent_goto(handle, orig_lblk);
+ if (r2 == 0)
+ ext2fs_extent_replace(handle, 0, &orig_extent);
goto done;
+ }
}
done:
/* get handle back to its position */
if (orig_height > handle->max_depth)
orig_height = handle->max_depth; /* In case we shortened the tree */
- extent_goto(handle, orig_height, orig_lblk);
+ ext2fs_extent_goto2(handle, orig_height, orig_lblk);
return retval;
}
@@ -1501,7 +1534,9 @@ errcode_t ext2fs_extent_delete(ext2_extent_handle_t handle, int flags)
return retval;
retval = ext2fs_extent_delete(handle, flags);
- handle->inode->i_blocks -= handle->fs->blocksize / 512;
+ handle->inode->i_blocks -=
+ (handle->fs->blocksize *
+ EXT2FS_CLUSTER_RATIO(handle->fs)) / 512;
retval = ext2fs_write_inode(handle->fs, handle->ino,
handle->inode);
ext2fs_block_alloc_stats2(handle->fs,
@@ -1550,460 +1585,10 @@ errcode_t ext2fs_extent_get_info(ext2_extent_handle_t handle,
}
#ifdef DEBUG
-
-#include "ss/ss.h"
-
-#include "debugfs.h"
-
/*
- * Hook in new commands into debugfs
+ * Override debugfs's prompt
*/
const char *debug_prog_name = "tst_extents";
-extern ss_request_table extent_cmds;
-ss_request_table *extra_cmds = &extent_cmds;
-
-ext2_ino_t current_ino = 0;
-ext2_extent_handle_t current_handle;
-
-int common_extent_args_process(int argc, char *argv[], int min_argc,
- int max_argc, const char *cmd,
- const char *usage, int flags)
-{
- if (common_args_process(argc, argv, min_argc, max_argc, cmd,
- usage, flags))
- return 1;
-
- if (!current_handle) {
- com_err(cmd, 0, "Extent handle not open");
- return 1;
- }
- return 0;
-}
-
-void do_inode(int argc, char *argv[])
-{
- ext2_ino_t inode;
- int i;
- struct ext3_extent_header *eh;
- errcode_t retval;
-
- if (check_fs_open(argv[0]))
- return;
-
- if (argc == 1) {
- if (current_ino)
- printf("Current inode is %d\n", current_ino);
- else
- printf("No current inode\n");
- return;
- }
-
- if (common_inode_args_process(argc, argv, &inode, 0)) {
- return;
- }
-
- current_ino = 0;
-
- retval = ext2fs_extent_open(current_fs, inode, &current_handle);
- if (retval) {
- com_err(argv[1], retval, "while opening extent handle");
- return;
- }
-
- current_ino = inode;
-
- printf("Loaded inode %d\n", current_ino);
-
- return;
-}
-
-void generic_goto_node(char *cmd_name, int op)
-{
- struct ext2fs_extent extent;
- errcode_t retval;
-
- if (check_fs_open(cmd_name))
- return;
-
- if (!current_handle) {
- com_err(cmd_name, 0, "Extent handle not open");
- return;
- }
-
- retval = ext2fs_extent_get(current_handle, op, &extent);
- if (retval) {
- com_err(cmd_name, retval, 0);
- return;
- }
- dbg_print_extent(0, &extent);
-}
-
-void do_current_node(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_CURRENT);
-}
-
-void do_root_node(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_ROOT);
-}
-
-void do_last_leaf(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_LAST_LEAF);
-}
-
-void do_first_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_FIRST_SIB);
-}
-
-void do_last_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_LAST_SIB);
-}
-
-void do_next_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_NEXT_SIB);
-}
-
-void do_prev_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_PREV_SIB);
-}
-
-void do_next_leaf(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_NEXT_LEAF);
-}
-
-void do_prev_leaf(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_PREV_LEAF);
-}
-
-void do_next(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_NEXT);
-}
-
-void do_prev(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_PREV);
-}
-
-void do_up(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_UP);
-}
-
-void do_down(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_DOWN);
-}
-
-void do_delete_node(int argc, char *argv[])
-{
- errcode_t retval;
- int err;
-
- if (common_extent_args_process(argc, argv, 1, 1, "delete_node",
- "", CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- retval = ext2fs_extent_delete(current_handle, 0);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- if (current_handle->path && current_handle->path[0].curr)
- do_current_node(argc, argv);
-}
-
-void do_replace_node(int argc, char *argv[])
-{
- const char *usage = "[--uninit] <lblk> <len> <pblk>";
- errcode_t retval;
- struct ext2fs_extent extent;
- int err;
-
- if (common_extent_args_process(argc, argv, 3, 5, "replace_node",
- usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- extent.e_flags = 0;
-
- if (!strcmp(argv[1], "--uninit")) {
- argc--;
- argv++;
- extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
- }
-
- if (argc != 4) {
- fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
- return;
- }
-
- extent.e_lblk = parse_ulong(argv[1], argv[0], "logical block", &err);
- if (err)
- return;
-
- extent.e_len = parse_ulong(argv[2], argv[0], "logical block", &err);
- if (err)
- return;
-
- extent.e_pblk = parse_ulong(argv[3], argv[0], "logical block", &err);
- if (err)
- return;
-
- retval = ext2fs_extent_replace(current_handle, 0, &extent);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- do_current_node(argc, argv);
-}
-
-void do_split_node(int argc, char *argv[])
-{
- errcode_t retval;
- struct ext2fs_extent extent;
- int err;
-
- if (common_extent_args_process(argc, argv, 1, 1, "split_node",
- "", CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
- retval = extent_node_split(current_handle);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- do_current_node(argc, argv);
-}
-
-void do_insert_node(int argc, char *argv[])
-{
- const char *usage = "[--after] [--uninit] <lblk> <len> <pblk>";
- errcode_t retval;
- struct ext2fs_extent extent;
- char *cmd;
- int err;
- int flags = 0;
-
- if (common_extent_args_process(argc, argv, 3, 6, "insert_node",
- usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- cmd = argv[0];
-
- extent.e_flags = 0;
-
- while (argc > 2) {
- if (!strcmp(argv[1], "--after")) {
- argc--;
- argv++;
- flags |= EXT2_EXTENT_INSERT_AFTER;
- continue;
- }
- if (!strcmp(argv[1], "--uninit")) {
- argc--;
- argv++;
- extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
- continue;
- }
- break;
- }
-
- if (argc != 4) {
- fprintf(stderr, "usage: %s %s\n", cmd, usage);
- return;
- }
-
- extent.e_lblk = parse_ulong(argv[1], cmd,
- "logical block", &err);
- if (err)
- return;
-
- extent.e_len = parse_ulong(argv[2], cmd,
- "length", &err);
- if (err)
- return;
-
- extent.e_pblk = parse_ulong(argv[3], cmd,
- "pysical block", &err);
- if (err)
- return;
-
- retval = ext2fs_extent_insert(current_handle, flags, &extent);
- if (retval) {
- com_err(cmd, retval, 0);
- return;
- }
- do_current_node(argc, argv);
-}
-
-void do_set_bmap(int argc, char **argv)
-{
- const char *usage = "[--uninit] <lblk> <pblk>";
- errcode_t retval;
- blk_t logical;
- blk_t physical;
- char *cmd = argv[0];
- int flags = 0;
- int err;
-
- if (common_extent_args_process(argc, argv, 3, 5, "set_bmap",
- usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- if (argc > 2 && !strcmp(argv[1], "--uninit")) {
- argc--;
- argv++;
- flags |= EXT2_EXTENT_SET_BMAP_UNINIT;
- }
-
- if (argc != 3) {
- fprintf(stderr, "Usage: %s %s\n", cmd, usage);
- return;
- }
-
- logical = parse_ulong(argv[1], cmd,
- "logical block", &err);
- if (err)
- return;
-
- physical = parse_ulong(argv[2], cmd,
- "physical block", &err);
- if (err)
- return;
-
- retval = ext2fs_extent_set_bmap(current_handle, logical,
- (blk64_t) physical, flags);
- if (retval) {
- com_err(cmd, retval, 0);
- return;
- }
- if (current_handle->path && current_handle->path[0].curr)
- do_current_node(argc, argv);
-}
-
-void do_print_all(int argc, char **argv)
-{
- const char *usage = "[--leaf-only|--reverse|--reverse-leaf]";
- struct ext2fs_extent extent;
- errcode_t retval;
- errcode_t end_err = EXT2_ET_EXTENT_NO_NEXT;
- int op = EXT2_EXTENT_NEXT;
- int first_op = EXT2_EXTENT_ROOT;
-
-
- if (common_extent_args_process(argc, argv, 1, 2, "print_all",
- usage, 0))
- return;
-
- if (argc == 2) {
- if (!strcmp(argv[1], "--leaf-only"))
- op = EXT2_EXTENT_NEXT_LEAF;
- else if (!strcmp(argv[1], "--reverse")) {
- op = EXT2_EXTENT_PREV;
- first_op = EXT2_EXTENT_LAST_LEAF;
- end_err = EXT2_ET_EXTENT_NO_PREV;
- } else if (!strcmp(argv[1], "--reverse-leaf")) {
- op = EXT2_EXTENT_PREV_LEAF;
- first_op = EXT2_EXTENT_LAST_LEAF;
- end_err = EXT2_ET_EXTENT_NO_PREV;
- } else {
- fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
- return;
- }
- }
-
- retval = ext2fs_extent_get(current_handle, first_op, &extent);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- dbg_print_extent(0, &extent);
-
- while (1) {
- retval = ext2fs_extent_get(current_handle, op, &extent);
- if (retval == end_err)
- break;
-
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- dbg_print_extent(0, &extent);
- }
-}
-
-void do_info(int argc, char **argv)
-{
- struct ext2fs_extent extent;
- struct ext2_extent_info info;
- errcode_t retval;
-
- if (common_extent_args_process(argc, argv, 1, 1, "info", "", 0))
- return;
-
- retval = ext2fs_extent_get_info(current_handle, &info);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
-
- retval = ext2fs_extent_get(current_handle,
- EXT2_EXTENT_CURRENT, &extent);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
-
- dbg_print_extent(0, &extent);
-
- printf("Current handle location: %d/%d (max: %d, bytes %d), level %d/%d\n",
- info.curr_entry, info.num_entries, info.max_entries,
- info.bytes_avail, info.curr_level, info.max_depth);
- printf("\tmax lblk: %llu, max pblk: %llu\n", info.max_lblk,
- info.max_pblk);
- printf("\tmax_len: %u, max_uninit_len: %u\n", info.max_len,
- info.max_uninit_len);
-}
-
-void do_goto_block(int argc, char **argv)
-{
- struct ext2fs_extent extent;
- errcode_t retval;
- int op = EXT2_EXTENT_NEXT_LEAF;
- blk64_t blk;
- int level = 0, err;
-
- if (common_extent_args_process(argc, argv, 2, 3, "goto_block",
- "block [level]", 0))
- return;
-
- if (strtoblk(argv[0], argv[1], &blk))
- return;
-
- if (argc == 3) {
- level = parse_ulong(argv[2], argv[0], "level", &err);
- if (err)
- return;
- }
-
- retval = extent_goto(current_handle, level, (blk64_t) blk);
-
- if (retval) {
- com_err(argv[0], retval,
- "while trying to go to block %llu, level %d",
- (unsigned long long) blk, level);
- return;
- }
-
- generic_goto_node(argv[0], EXT2_EXTENT_CURRENT);
-}
#endif
diff --git a/lib/ext2fs/fiemap.h b/lib/ext2fs/fiemap.h
index 30bf5555..895cd0ba 100644
--- a/lib/ext2fs/fiemap.h
+++ b/lib/ext2fs/fiemap.h
@@ -64,5 +64,7 @@ struct fiemap {
#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively
* support extents. Result
* merged for efficiency. */
+#define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other
+ * files. */
#endif /* _LINUX_FIEMAP_H */
diff --git a/lib/ext2fs/fileio.c b/lib/ext2fs/fileio.c
index 1f7002cd..5a39c321 100644
--- a/lib/ext2fs/fileio.c
+++ b/lib/ext2fs/fileio.c
@@ -18,6 +18,7 @@
#include "ext2_fs.h"
#include "ext2fs.h"
+#include "ext2fsP.h"
struct ext2_file {
errcode_t magic;
@@ -142,8 +143,7 @@ errcode_t ext2fs_file_flush(ext2_file_t file)
return retval;
}
- retval = io_channel_write_blk(fs->io, file->physblock,
- 1, file->buf);
+ retval = io_channel_write_blk64(fs->io, file->physblock, 1, file->buf);
if (retval)
return retval;
@@ -158,7 +158,7 @@ errcode_t ext2fs_file_flush(ext2_file_t file)
*/
static errcode_t sync_buffer_position(ext2_file_t file)
{
- blk_t b;
+ blk64_t b;
errcode_t retval;
b = file->pos / file->fs->blocksize;
@@ -194,9 +194,9 @@ static errcode_t load_buffer(ext2_file_t file, int dontfill)
return retval;
if (!dontfill) {
if (file->physblock) {
- retval = io_channel_read_blk(fs->io,
- file->physblock,
- 1, file->buf);
+ retval = io_channel_read_blk64(fs->io,
+ file->physblock,
+ 1, file->buf);
if (retval)
return retval;
} else
@@ -298,6 +298,20 @@ errcode_t ext2fs_file_write(ext2_file_t file, const void *buf,
if (retval)
goto fail;
+ /*
+ * OK, the physical block hasn't been allocated yet.
+ * Allocate it.
+ */
+ if (!file->physblock) {
+ retval = ext2fs_bmap2(fs, file->ino, &file->inode,
+ BMAP_BUFFER,
+ file->ino ? BMAP_ALLOC : 0,
+ file->blockno, 0,
+ &file->physblock);
+ if (retval)
+ goto fail;
+ }
+
file->flags |= EXT2_FILE_BUF_DIRTY;
memcpy(file->buf+start, ptr, c);
file->pos += c;
@@ -307,6 +321,15 @@ errcode_t ext2fs_file_write(ext2_file_t file, const void *buf,
}
fail:
+ /* Update inode size */
+ if (count != 0 && EXT2_I_SIZE(&file->inode) < file->pos) {
+ errcode_t rc;
+
+ rc = ext2fs_file_set_size2(file, file->pos);
+ if (retval == 0)
+ retval = rc;
+ }
+
if (written)
*written = count;
return retval;
@@ -371,6 +394,53 @@ ext2_off_t ext2fs_file_get_size(ext2_file_t file)
return size;
}
+/* Zero the parts of the last block that are past EOF. */
+static errcode_t ext2fs_file_zero_past_offset(ext2_file_t file,
+ ext2_off64_t offset)
+{
+ ext2_filsys fs = file->fs;
+ char *b = NULL;
+ ext2_off64_t off = offset % fs->blocksize;
+ blk64_t blk;
+ int ret_flags;
+ errcode_t retval;
+
+ if (off == 0)
+ return 0;
+
+ retval = sync_buffer_position(file);
+ if (retval)
+ return retval;
+
+ /* Is there an initialized block at the end? */
+ retval = ext2fs_bmap2(fs, file->ino, NULL, NULL, 0,
+ offset / fs->blocksize, &ret_flags, &blk);
+ if (retval)
+ return retval;
+ if ((blk == 0) || (ret_flags & BMAP_RET_UNINIT))
+ return 0;
+
+ /* Zero to the end of the block */
+ retval = ext2fs_get_mem(fs->blocksize, &b);
+ if (retval)
+ return retval;
+
+ /* Read/zero/write block */
+ retval = io_channel_read_blk64(fs->io, blk, 1, b);
+ if (retval)
+ goto out;
+
+ memset(b + off, 0, fs->blocksize - off);
+
+ retval = io_channel_write_blk64(fs->io, blk, 1, b);
+ if (retval)
+ goto out;
+
+out:
+ ext2fs_free_mem(&b);
+ return retval;
+}
+
/*
* This function sets the size of the file, truncating it if necessary
*
@@ -383,11 +453,26 @@ errcode_t ext2fs_file_set_size2(ext2_file_t file, ext2_off64_t size)
EXT2_CHECK_MAGIC(file, EXT2_ET_MAGIC_EXT2_FILE);
+ if (size && ext2fs_file_block_offset_too_big(file->fs, &file->inode,
+ (size - 1) / file->fs->blocksize))
+ return EXT2_ET_FILE_TOO_BIG;
truncate_block = ((size + file->fs->blocksize - 1) >>
- EXT2_BLOCK_SIZE_BITS(file->fs->super)) + 1;
+ EXT2_BLOCK_SIZE_BITS(file->fs->super));
old_size = EXT2_I_SIZE(&file->inode);
old_truncate = ((old_size + file->fs->blocksize - 1) >>
- EXT2_BLOCK_SIZE_BITS(file->fs->super)) + 1;
+ EXT2_BLOCK_SIZE_BITS(file->fs->super));
+
+ /* If we're writing a large file, set the large_file flag */
+ if (LINUX_S_ISREG(file->inode.i_mode) &&
+ ext2fs_needs_large_file_feature(EXT2_I_SIZE(&file->inode)) &&
+ (!EXT2_HAS_RO_COMPAT_FEATURE(file->fs->super,
+ EXT2_FEATURE_RO_COMPAT_LARGE_FILE) ||
+ file->fs->super->s_rev_level == EXT2_GOOD_OLD_REV)) {
+ file->fs->super->s_feature_ro_compat |=
+ EXT2_FEATURE_RO_COMPAT_LARGE_FILE;
+ ext2fs_update_dynamic_rev(file->fs);
+ ext2fs_mark_super_dirty(file->fs);
+ }
file->inode.i_size = size & 0xffffffff;
file->inode.i_size_high = (size >> 32);
@@ -397,6 +482,10 @@ errcode_t ext2fs_file_set_size2(ext2_file_t file, ext2_off64_t size)
return retval;
}
+ retval = ext2fs_file_zero_past_offset(file, size);
+ if (retval)
+ return retval;
+
if (truncate_block >= old_truncate)
return 0;
diff --git a/lib/ext2fs/flushb.c b/lib/ext2fs/flushb.c
index ac8923cb..98821fc7 100644
--- a/lib/ext2fs/flushb.c
+++ b/lib/ext2fs/flushb.c
@@ -70,7 +70,7 @@ errcode_t ext2fs_sync_device(int fd, int flushb)
#warning BLKFLSBUF not defined
#endif
#ifdef FDFLUSH
- ioctl (fd, FDFLUSH, 0); /* In case this is a floppy */
+ return ioctl(fd, FDFLUSH, 0); /* In case this is a floppy */
#elif defined(__linux__)
#warning FDFLUSH not defined
#endif
diff --git a/lib/ext2fs/freefs.c b/lib/ext2fs/freefs.c
index 28c4132f..1ad2d916 100644
--- a/lib/ext2fs/freefs.c
+++ b/lib/ext2fs/freefs.c
@@ -43,6 +43,8 @@ void ext2fs_free(ext2_filsys fs)
ext2fs_free_block_bitmap(fs->block_map);
if (fs->inode_map)
ext2fs_free_inode_bitmap(fs->inode_map);
+ if (fs->image_header)
+ ext2fs_free_mem(&fs->image_header);
if (fs->badblocks)
ext2fs_badblocks_list_free(fs->badblocks);
diff --git a/lib/ext2fs/gen_bitmap.c b/lib/ext2fs/gen_bitmap.c
index 6679bffa..6cd6fe63 100644
--- a/lib/ext2fs/gen_bitmap.c
+++ b/lib/ext2fs/gen_bitmap.c
@@ -504,6 +504,52 @@ static int ext2fs_test_clear_generic_bitmap_range(ext2fs_generic_bitmap bitmap,
return ext2fs_mem_is_zero(ADDR + start_byte, len_byte);
}
+errcode_t ext2fs_find_first_zero_generic_bitmap(ext2fs_generic_bitmap bitmap,
+ __u32 start, __u32 end,
+ __u32 *out)
+{
+ blk_t b;
+
+ if (start < bitmap->start || end > bitmap->end || start > end) {
+ ext2fs_warn_bitmap2(bitmap, EXT2FS_TEST_ERROR, start);
+ return EINVAL;
+ }
+
+ while (start <= end) {
+ b = ext2fs_test_bit(start - bitmap->start, bitmap->bitmap);
+ if (!b) {
+ *out = start;
+ return 0;
+ }
+ start++;
+ }
+
+ return ENOENT;
+}
+
+errcode_t ext2fs_find_first_set_generic_bitmap(ext2fs_generic_bitmap bitmap,
+ __u32 start, __u32 end,
+ __u32 *out)
+{
+ blk_t b;
+
+ if (start < bitmap->start || end > bitmap->end || start > end) {
+ ext2fs_warn_bitmap2(bitmap, EXT2FS_TEST_ERROR, start);
+ return EINVAL;
+ }
+
+ while (start <= end) {
+ b = ext2fs_test_bit(start - bitmap->start, bitmap->bitmap);
+ if (b) {
+ *out = start;
+ return 0;
+ }
+ start++;
+ }
+
+ return ENOENT;
+}
+
int ext2fs_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
blk_t block, int num)
{
@@ -558,3 +604,4 @@ void ext2fs_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
ext2fs_fast_clear_bit(block + i - bitmap->start,
bitmap->bitmap);
}
+
diff --git a/lib/ext2fs/gen_bitmap64.c b/lib/ext2fs/gen_bitmap64.c
index b57df546..af550972 100644
--- a/lib/ext2fs/gen_bitmap64.c
+++ b/lib/ext2fs/gen_bitmap64.c
@@ -128,6 +128,7 @@ errcode_t ext2fs_alloc_generic_bmap(ext2_filsys fs, errcode_t magic,
if (gettimeofday(&bitmap->stats.created,
(struct timezone *) NULL) == -1) {
perror("gettimeofday");
+ ext2fs_free_mem(&bitmap);
return 1;
}
bitmap->stats.type = type;
@@ -174,11 +175,13 @@ errcode_t ext2fs_alloc_generic_bmap(ext2_filsys fs, errcode_t magic,
}
#ifdef BMAP_STATS
-void ext2fs_print_bmap_statistics(ext2fs_generic_bitmap bitmap)
+static void ext2fs_print_bmap_statistics(ext2fs_generic_bitmap bitmap)
{
struct ext2_bmap_statistics *stats = &bitmap->stats;
+#ifdef BMAP_STATS_OPS
float mark_seq_perc = 0.0, test_seq_perc = 0.0;
float mark_back_perc = 0.0, test_back_perc = 0.0;
+#endif
double inuse;
struct timeval now;
@@ -298,6 +301,7 @@ errcode_t ext2fs_copy_generic_bmap(ext2fs_generic_bitmap src,
if (gettimeofday(&new_bmap->stats.created,
(struct timezone *) NULL) == -1) {
perror("gettimeofday");
+ ext2fs_free_mem(&new_bmap);
return 1;
}
new_bmap->stats.type = src->stats.type;
@@ -622,6 +626,8 @@ void ext2fs_set_generic_bmap_padding(ext2fs_generic_bitmap bmap)
int ext2fs_test_block_bitmap_range2(ext2fs_block_bitmap bmap,
blk64_t block, unsigned int num)
{
+ __u64 end = block + num;
+
if (!bmap)
return EINVAL;
@@ -644,12 +650,26 @@ int ext2fs_test_block_bitmap_range2(ext2fs_block_bitmap bmap,
INC_STAT(bmap, test_ext_count);
+ /* convert to clusters if necessary */
+ block >>= bmap->cluster_bits;
+ end += (1 << bmap->cluster_bits) - 1;
+ end >>= bmap->cluster_bits;
+ num = end - block;
+
+ if ((block < bmap->start) || (block+num-1 > bmap->end)) {
+ ext2fs_warn_bitmap(EXT2_ET_BAD_BLOCK_TEST, block,
+ bmap->description);
+ return EINVAL;
+ }
+
return bmap->bitmap_ops->test_clear_bmap_extent(bmap, block, num);
}
void ext2fs_mark_block_bitmap_range2(ext2fs_block_bitmap bmap,
blk64_t block, unsigned int num)
{
+ __u64 end = block + num;
+
if (!bmap)
return;
@@ -668,6 +688,12 @@ void ext2fs_mark_block_bitmap_range2(ext2fs_block_bitmap bmap,
INC_STAT(bmap, mark_ext_count);
+ /* convert to clusters if necessary */
+ block >>= bmap->cluster_bits;
+ end += (1 << bmap->cluster_bits) - 1;
+ end >>= bmap->cluster_bits;
+ num = end - block;
+
if ((block < bmap->start) || (block+num-1 > bmap->end)) {
ext2fs_warn_bitmap(EXT2_ET_BAD_BLOCK_MARK, block,
bmap->description);
@@ -680,6 +706,8 @@ void ext2fs_mark_block_bitmap_range2(ext2fs_block_bitmap bmap,
void ext2fs_unmark_block_bitmap_range2(ext2fs_block_bitmap bmap,
blk64_t block, unsigned int num)
{
+ __u64 end = block + num;
+
if (!bmap)
return;
@@ -698,6 +726,12 @@ void ext2fs_unmark_block_bitmap_range2(ext2fs_block_bitmap bmap,
INC_STAT(bmap, unmark_ext_count);
+ /* convert to clusters if necessary */
+ block >>= bmap->cluster_bits;
+ end += (1 << bmap->cluster_bits) - 1;
+ end >>= bmap->cluster_bits;
+ num = end - block;
+
if ((block < bmap->start) || (block+num-1 > bmap->end)) {
ext2fs_warn_bitmap(EXT2_ET_BAD_BLOCK_UNMARK, block,
bmap->description);
@@ -766,27 +800,107 @@ errcode_t ext2fs_convert_subcluster_bitmap(ext2_filsys fs,
errcode_t ext2fs_find_first_zero_generic_bmap(ext2fs_generic_bitmap bitmap,
__u64 start, __u64 end, __u64 *out)
{
- int b;
+ __u64 cstart, cend, cout;
+ errcode_t retval;
- if (bitmap->bitmap_ops->find_first_zero)
- return bitmap->bitmap_ops->find_first_zero(bitmap, start, end, out);
+ if (!bitmap)
+ return EINVAL;
+
+ if (EXT2FS_IS_32_BITMAP(bitmap)) {
+ blk_t blk = 0;
- if (!bitmap || !EXT2FS_IS_64_BITMAP(bitmap) || bitmap->cluster_bits)
+ if (((start) & ~0xffffffffULL) ||
+ ((end) & ~0xffffffffULL)) {
+ ext2fs_warn_bitmap2(bitmap, EXT2FS_TEST_ERROR, start);
+ return EINVAL;
+ }
+
+ retval = ext2fs_find_first_zero_generic_bitmap(bitmap, start,
+ end, &blk);
+ if (retval == 0)
+ *out = blk;
+ return retval;
+ }
+
+ if (!EXT2FS_IS_64_BITMAP(bitmap))
return EINVAL;
- if (start < bitmap->start || end > bitmap->end || start > end) {
+ cstart = start >> bitmap->cluster_bits;
+ cend = end >> bitmap->cluster_bits;
+
+ if (cstart < bitmap->start || cend > bitmap->end || start > end) {
warn_bitmap(bitmap, EXT2FS_TEST_ERROR, start);
return EINVAL;
}
- while (start <= end) {
- b = bitmap->bitmap_ops->test_bmap(bitmap, start);
- if (!b) {
- *out = start;
- return 0;
+ if (bitmap->bitmap_ops->find_first_zero) {
+ retval = bitmap->bitmap_ops->find_first_zero(bitmap, cstart,
+ cend, &cout);
+ if (retval)
+ return retval;
+ found:
+ cout <<= bitmap->cluster_bits;
+ *out = (cout >= start) ? cout : start;
+ return 0;
+ }
+
+ for (cout = cstart; cout <= cend; cout++)
+ if (!bitmap->bitmap_ops->test_bmap(bitmap, cout))
+ goto found;
+
+ return ENOENT;
+}
+
+errcode_t ext2fs_find_first_set_generic_bmap(ext2fs_generic_bitmap bitmap,
+ __u64 start, __u64 end, __u64 *out)
+{
+ __u64 cstart, cend, cout;
+ errcode_t retval;
+
+ if (!bitmap)
+ return EINVAL;
+
+ if (EXT2FS_IS_32_BITMAP(bitmap)) {
+ blk_t blk = 0;
+
+ if (((start) & ~0xffffffffULL) ||
+ ((end) & ~0xffffffffULL)) {
+ ext2fs_warn_bitmap2(bitmap, EXT2FS_TEST_ERROR, start);
+ return EINVAL;
}
- start++;
+
+ retval = ext2fs_find_first_set_generic_bitmap(bitmap, start,
+ end, &blk);
+ if (retval == 0)
+ *out = blk;
+ return retval;
}
+ if (!EXT2FS_IS_64_BITMAP(bitmap))
+ return EINVAL;
+
+ cstart = start >> bitmap->cluster_bits;
+ cend = end >> bitmap->cluster_bits;
+
+ if (cstart < bitmap->start || cend > bitmap->end || start > end) {
+ warn_bitmap(bitmap, EXT2FS_TEST_ERROR, start);
+ return EINVAL;
+ }
+
+ if (bitmap->bitmap_ops->find_first_set) {
+ retval = bitmap->bitmap_ops->find_first_set(bitmap, cstart,
+ cend, &cout);
+ if (retval)
+ return retval;
+ found:
+ cout <<= bitmap->cluster_bits;
+ *out = (cout >= start) ? cout : start;
+ return 0;
+ }
+
+ for (cout = cstart; cout <= cend; cout++)
+ if (bitmap->bitmap_ops->test_bmap(bitmap, cout))
+ goto found;
+
return ENOENT;
}
diff --git a/lib/ext2fs/get_pathname.c b/lib/ext2fs/get_pathname.c
index 33209949..52aea624 100644
--- a/lib/ext2fs/get_pathname.c
+++ b/lib/ext2fs/get_pathname.c
@@ -100,16 +100,16 @@ static errcode_t ext2fs_get_pathname_int(ext2_filsys fs, ext2_ino_t dir,
retval = ext2fs_dir_iterate(fs, dir, 0, buf, get_pathname_proc, &gp);
if (retval == EXT2_ET_NO_DIRECTORY) {
- char buf[32];
+ char tmp[32];
if (ino)
- snprintf(buf, sizeof(buf), "<%u>/<%u>", dir, ino);
+ snprintf(tmp, sizeof(tmp), "<%u>/<%u>", dir, ino);
else
- snprintf(buf, sizeof(buf), "<%u>", dir);
- retval = ext2fs_get_mem(strlen(buf)+1, name);
+ snprintf(tmp, sizeof(tmp), "<%u>", dir);
+ retval = ext2fs_get_mem(strlen(tmp)+1, name);
if (retval)
goto cleanup;
- strcpy(*name, buf);
+ strcpy(*name, tmp);
return 0;
} else if (retval)
goto cleanup;
diff --git a/lib/ext2fs/getsectsize.c b/lib/ext2fs/getsectsize.c
index 30faecc7..9c3f4a2e 100644
--- a/lib/ext2fs/getsectsize.c
+++ b/lib/ext2fs/getsectsize.c
@@ -62,6 +62,32 @@ errcode_t ext2fs_get_device_sectsize(const char *file, int *sectsize)
}
/*
+ * Return desired alignment for direct I/O
+ */
+int ext2fs_get_dio_alignment(int fd)
+{
+ int align = 0;
+
+#ifdef BLKSSZGET
+ if (ioctl(fd, BLKSSZGET, &align) < 0)
+ align = 0;
+#endif
+
+#ifdef _SC_PAGESIZE
+ if (align <= 0)
+ align = sysconf(_SC_PAGESIZE);
+#endif
+#ifdef HAVE_GETPAGESIZE
+ if (align <= 0)
+ align = getpagesize();
+#endif
+ if (align <= 0)
+ align = 4096;
+
+ return align;
+}
+
+/*
* Returns the physical sector size of a device
*/
errcode_t ext2fs_get_device_phys_sectsize(const char *file, int *sectsize)
diff --git a/lib/ext2fs/getsize.c b/lib/ext2fs/getsize.c
index 0a7053e3..a9a4812e 100644
--- a/lib/ext2fs/getsize.c
+++ b/lib/ext2fs/getsize.c
@@ -140,25 +140,11 @@ static int valid_offset (int fd, ext2_loff_t offset)
* Returns the number of blocks in a partition
*/
errcode_t ext2fs_get_device_size2(const char *file, int blocksize,
- blk64_t *retblocks)
+ blk64_t *retblocks)
{
int fd, rc = 0;
- int valid_blkgetsize64 = 1;
-#ifdef __linux__
- struct utsname ut;
-#endif
unsigned long long size64;
- unsigned long size;
ext2_loff_t high, low;
-#ifdef FDGETPRM
- struct floppy_struct this_floppy;
-#endif
-#ifdef HAVE_SYS_DISKLABEL_H
- int part;
- struct disklabel lab;
- struct partition *pp;
- char ch;
-#endif /* HAVE_SYS_DISKLABEL_H */
fd = ext2fs_open_file(file, O_RDONLY, 0);
if (fd < 0)
@@ -172,63 +158,83 @@ errcode_t ext2fs_get_device_size2(const char *file, int blocksize,
#endif
#ifdef BLKGETSIZE64
+ {
+ int valid_blkgetsize64 = 1;
#ifdef __linux__
- if ((uname(&ut) == 0) &&
- ((ut.release[0] == '2') && (ut.release[1] == '.') &&
- (ut.release[2] < '6') && (ut.release[3] == '.')))
- valid_blkgetsize64 = 0;
+ struct utsname ut;
+
+ if ((uname(&ut) == 0) &&
+ ((ut.release[0] == '2') && (ut.release[1] == '.') &&
+ (ut.release[2] < '6') && (ut.release[3] == '.')))
+ valid_blkgetsize64 = 0;
#endif
- if (valid_blkgetsize64 &&
- ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
- *retblocks = size64 / blocksize;
- goto out;
+ if (valid_blkgetsize64 &&
+ ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
+ *retblocks = size64 / blocksize;
+ goto out;
+ }
}
#endif /* BLKGETSIZE64 */
#ifdef BLKGETSIZE
- if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
- *retblocks = size / (blocksize / 512);
- goto out;
+ {
+ unsigned long size;
+
+ if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
+ *retblocks = size / (blocksize / 512);
+ goto out;
+ }
}
#endif
#ifdef FDGETPRM
- if (ioctl(fd, FDGETPRM, &this_floppy) >= 0) {
- *retblocks = this_floppy.size / (blocksize / 512);
- goto out;
+ {
+ struct floppy_struct this_floppy;
+
+ if (ioctl(fd, FDGETPRM, &this_floppy) >= 0) {
+ *retblocks = this_floppy.size / (blocksize / 512);
+ goto out;
+ }
}
#endif
#ifdef HAVE_SYS_DISKLABEL_H
-#if defined(DIOCGMEDIASIZE)
{
- off_t ms;
- u_int bs;
- if (ioctl(fd, DIOCGMEDIASIZE, &ms) >= 0) {
- *retblocks = ms / blocksize;
- goto out;
- }
- }
+ int part;
+ struct disklabel lab;
+ struct partition *pp;
+ char ch;
+
+#if defined(DIOCGMEDIASIZE)
+ {
+ off_t ms;
+ u_int bs;
+ if (ioctl(fd, DIOCGMEDIASIZE, &ms) >= 0) {
+ *retblocks = ms / blocksize;
+ goto out;
+ }
+ }
#elif defined(DIOCGDINFO)
- /* old disklabel interface */
- part = strlen(file) - 1;
- if (part >= 0) {
- ch = file[part];
- if (isdigit(ch))
- part = 0;
- else if (ch >= 'a' && ch <= 'h')
- part = ch - 'a';
- else
- part = -1;
- }
- if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) {
- pp = &lab.d_partitions[part];
- if (pp->p_size) {
- *retblocks = pp->p_size / (blocksize / 512);
- goto out;
+ /* old disklabel interface */
+ part = strlen(file) - 1;
+ if (part >= 0) {
+ ch = file[part];
+ if (isdigit(ch))
+ part = 0;
+ else if (ch >= 'a' && ch <= 'h')
+ part = ch - 'a';
+ else
+ part = -1;
+ }
+ if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) {
+ pp = &lab.d_partitions[part];
+ if (pp->p_size) {
+ *retblocks = pp->p_size / (blocksize / 512);
+ goto out;
+ }
}
- }
#endif /* defined(DIOCG*) */
+ }
#endif /* HAVE_SYS_DISKLABEL_H */
{
@@ -247,10 +253,9 @@ errcode_t ext2fs_get_device_size2(const char *file, int blocksize,
* find the size of the partition.
*/
low = 0;
- for (high = 1024; valid_offset (fd, high); high *= 2)
+ for (high = 1024; valid_offset(fd, high); high *= 2)
low = high;
- while (low < high - 1)
- {
+ while (low < high - 1) {
const ext2_loff_t mid = (low + high) / 2;
if (valid_offset (fd, mid))
@@ -258,7 +263,7 @@ errcode_t ext2fs_get_device_size2(const char *file, int blocksize,
else
high = mid;
}
- valid_offset (fd, 0);
+ valid_offset(fd, 0);
size64 = low + 1;
*retblocks = size64 / blocksize;
out:
diff --git a/lib/ext2fs/icount.c b/lib/ext2fs/icount.c
index 8b46eda4..a3b20f06 100644
--- a/lib/ext2fs/icount.c
+++ b/lib/ext2fs/icount.c
@@ -181,6 +181,7 @@ errcode_t ext2fs_create_icount_tdb(ext2_filsys fs, char *tdb_dir,
errcode_t retval;
char *fn, uuid[40];
ext2_ino_t num_inodes;
+ mode_t save_umask;
int fd;
retval = alloc_icount(fs, flags, &icount);
@@ -192,8 +193,14 @@ errcode_t ext2fs_create_icount_tdb(ext2_filsys fs, char *tdb_dir,
goto errout;
uuid_unparse(fs->super->s_uuid, uuid);
sprintf(fn, "%s/%s-icount-XXXXXX", tdb_dir, uuid);
+ icount->tdb_fn = fn;
+ save_umask = umask(077);
fd = mkstemp(fn);
-
+ if (fd < 0) {
+ retval = errno;
+ goto errout;
+ }
+ umask(save_umask);
/*
* This is an overestimate of the size that we will need; the
* ideal value is the number of used inodes with a count
@@ -204,18 +211,15 @@ errcode_t ext2fs_create_icount_tdb(ext2_filsys fs, char *tdb_dir,
*/
num_inodes = fs->super->s_inodes_count - fs->super->s_free_inodes_count;
- icount->tdb_fn = fn;
icount->tdb = tdb_open(fn, num_inodes, TDB_NOLOCK | TDB_NOSYNC,
O_RDWR | O_CREAT | O_TRUNC, 0600);
- if (icount->tdb) {
- close(fd);
- *ret = icount;
- return 0;
- }
-
- retval = errno;
close(fd);
-
+ if (icount->tdb == NULL) {
+ retval = errno;
+ goto errout;
+ }
+ *ret = icount;
+ return 0;
errout:
ext2fs_free_icount(icount);
return(retval);
@@ -351,9 +355,7 @@ static struct ext2_icount_el *insert_icount_el(ext2_icount_t icount,
static struct ext2_icount_el *get_icount_el(ext2_icount_t icount,
ext2_ino_t ino, int create)
{
- float range;
int low, high, mid;
- ext2_ino_t lowval, highval;
if (!icount || !icount->list)
return 0;
diff --git a/lib/ext2fs/imager.c b/lib/ext2fs/imager.c
index a0fb81e4..378a3c88 100644
--- a/lib/ext2fs/imager.c
+++ b/lib/ext2fs/imager.c
@@ -66,6 +66,7 @@ errcode_t ext2fs_image_inode_write(ext2_filsys fs, int fd, int flags)
blk64_t blk;
ssize_t actual;
errcode_t retval;
+ off_t r;
buf = malloc(fs->blocksize * BUF_BLOCKS);
if (!buf)
@@ -97,7 +98,11 @@ errcode_t ext2fs_image_inode_write(ext2_filsys fs, int fd, int flags)
blk++;
left--;
cp += fs->blocksize;
- lseek(fd, fs->blocksize, SEEK_CUR);
+ r = lseek(fd, fs->blocksize, SEEK_CUR);
+ if (r < 0) {
+ retval = errno;
+ goto errout;
+ }
continue;
}
/* Find non-zero blocks */
@@ -279,7 +284,7 @@ errout:
errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
{
ext2fs_generic_bitmap bmap;
- errcode_t err, retval;
+ errcode_t retval;
ssize_t actual;
__u32 itr, cnt, size;
int c, total_size;
@@ -292,7 +297,6 @@ errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
return retval;
}
bmap = fs->inode_map;
- err = EXT2_ET_MAGIC_INODE_BITMAP;
itr = 1;
cnt = EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count;
size = (EXT2_INODES_PER_GROUP(fs->super) / 8);
@@ -303,7 +307,6 @@ errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
return retval;
}
bmap = fs->block_map;
- err = EXT2_ET_MAGIC_BLOCK_BITMAP;
itr = fs->super->s_first_data_block;
cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;
@@ -356,7 +359,7 @@ errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags)
{
ext2fs_generic_bitmap bmap;
- errcode_t err, retval;
+ errcode_t retval;
__u32 itr, cnt;
char buf[1024];
unsigned int size;
@@ -369,7 +372,6 @@ errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags)
return retval;
}
bmap = fs->inode_map;
- err = EXT2_ET_MAGIC_INODE_BITMAP;
itr = 1;
cnt = EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count;
size = (EXT2_INODES_PER_GROUP(fs->super) / 8);
@@ -380,7 +382,6 @@ errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags)
return retval;
}
bmap = fs->block_map;
- err = EXT2_ET_MAGIC_BLOCK_BITMAP;
itr = fs->super->s_first_data_block;
cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;
diff --git a/lib/ext2fs/initialize.c b/lib/ext2fs/initialize.c
index b06371cf..36c94a9a 100644
--- a/lib/ext2fs/initialize.c
+++ b/lib/ext2fs/initialize.c
@@ -98,8 +98,10 @@ errcode_t ext2fs_initialize(const char *name, int flags,
int csum_flag;
int bigalloc_flag;
int io_flags;
+ unsigned reserved_inos;
char *buf = 0;
char c;
+ double reserved_ratio;
if (!param || !ext2fs_blocks_count(param))
return EXT2_ET_INVALID_ARGUMENT;
@@ -171,6 +173,8 @@ errcode_t ext2fs_initialize(const char *name, int flags,
set_field(s_raid_stripe_width, 0); /* default stripe width: 0 */
set_field(s_log_groups_per_flex, 0);
set_field(s_flags, 0);
+ assign_field(s_backup_bgs[0]);
+ assign_field(s_backup_bgs[1]);
if (super->s_feature_incompat & ~EXT2_LIB_FEATURE_INCOMPAT_SUPP) {
retval = EXT2_ET_UNSUPP_FEATURE;
goto cleanup;
@@ -205,6 +209,8 @@ errcode_t ext2fs_initialize(const char *name, int flags,
super->s_log_block_size;
if (bigalloc_flag) {
+ unsigned long long bpg;
+
if (param->s_blocks_per_group &&
param->s_clusters_per_group &&
((param->s_clusters_per_group * EXT2FS_CLUSTER_RATIO(fs)) !=
@@ -218,12 +224,19 @@ errcode_t ext2fs_initialize(const char *name, int flags,
super->s_clusters_per_group =
param->s_blocks_per_group /
EXT2FS_CLUSTER_RATIO(fs);
- else
+ else if (super->s_log_cluster_size + 15 < 32)
super->s_clusters_per_group = fs->blocksize * 8;
+ else
+ super->s_clusters_per_group = (fs->blocksize - 1) * 8;
if (super->s_clusters_per_group > EXT2_MAX_CLUSTERS_PER_GROUP(super))
super->s_clusters_per_group = EXT2_MAX_CLUSTERS_PER_GROUP(super);
- super->s_blocks_per_group = EXT2FS_C2B(fs,
- super->s_clusters_per_group);
+ bpg = EXT2FS_C2B(fs,
+ (unsigned long long) super->s_clusters_per_group);
+ if (bpg >= (((unsigned long long) 1) << 32)) {
+ retval = EXT2_ET_INVALID_ARGUMENT;
+ goto cleanup;
+ }
+ super->s_blocks_per_group = bpg;
} else {
set_field(s_blocks_per_group, fs->blocksize * 8);
if (super->s_blocks_per_group > EXT2_MAX_BLOCKS_PER_GROUP(super))
@@ -239,6 +252,8 @@ errcode_t ext2fs_initialize(const char *name, int flags,
goto cleanup;
}
+ set_field(s_mmp_update_interval, 0);
+
/*
* If we're creating an external journal device, we don't need
* to bother with the rest.
@@ -259,8 +274,9 @@ retry:
goto cleanup;
}
- if (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
- super->s_desc_size = EXT2_MIN_DESC_SIZE_64BIT;
+ set_field(s_desc_size,
+ super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT ?
+ EXT2_MIN_DESC_SIZE_64BIT : 0);
fs->desc_blocks = ext2fs_div_ceil(fs->group_desc_count,
EXT2_DESC_PER_BLOCK(super));
@@ -390,6 +406,14 @@ ipg_retry:
if (rem && (rem < overhead+50)) {
ext2fs_blocks_count_set(super, ext2fs_blocks_count(super) -
rem);
+ /*
+ * If blocks count is changed, we need to recalculate
+ * reserved blocks count not to exceed 50%.
+ */
+ reserved_ratio = 100.0 * ext2fs_r_blocks_count(param) /
+ ext2fs_blocks_count(param);
+ ext2fs_r_blocks_count_set(super, reserved_ratio *
+ ext2fs_blocks_count(super) / 100.0);
goto retry;
}
@@ -400,6 +424,21 @@ ipg_retry:
* count.
*/
+ /* Set up the locations of the backup superblocks */
+ if (super->s_feature_compat & EXT4_FEATURE_COMPAT_SPARSE_SUPER2) {
+ if (super->s_backup_bgs[0] >= fs->group_desc_count)
+ super->s_backup_bgs[0] = fs->group_desc_count - 1;
+ if (super->s_backup_bgs[1] >= fs->group_desc_count)
+ super->s_backup_bgs[1] = fs->group_desc_count - 1;
+ if (super->s_backup_bgs[0] == super->s_backup_bgs[1])
+ super->s_backup_bgs[1] = 0;
+ if (super->s_backup_bgs[0] > super->s_backup_bgs[1]) {
+ __u32 t = super->s_backup_bgs[0];
+ super->s_backup_bgs[0] = super->s_backup_bgs[1];
+ super->s_backup_bgs[1] = t;
+ }
+ }
+
retval = ext2fs_get_mem(strlen(fs->device_name) + 80, &buf);
if (retval)
goto cleanup;
@@ -439,6 +478,7 @@ ipg_retry:
free_blocks = 0;
csum_flag = EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM);
+ reserved_inos = super->s_first_ino;
for (i = 0; i < fs->group_desc_count; i++) {
/*
* Don't set the BLOCK_UNINIT group for the last group
@@ -450,8 +490,15 @@ ipg_retry:
EXT2_BG_BLOCK_UNINIT);
ext2fs_bg_flags_set(fs, i, EXT2_BG_INODE_UNINIT);
numblocks = super->s_inodes_per_group;
- if (i == 0)
- numblocks -= super->s_first_ino;
+ if (reserved_inos) {
+ if (numblocks > reserved_inos) {
+ numblocks -= reserved_inos;
+ reserved_inos = 0;
+ } else {
+ reserved_inos -= numblocks;
+ numblocks = 0;
+ }
+ }
ext2fs_bg_itable_unused_set(fs, i, numblocks);
}
numblocks = ext2fs_reserve_super_and_bgd(fs, i, fs->block_map);
diff --git a/lib/ext2fs/inline.c b/lib/ext2fs/inline.c
index ad0c3683..05da1f79 100644
--- a/lib/ext2fs/inline.c
+++ b/lib/ext2fs/inline.c
@@ -11,6 +11,9 @@
* %End-Header%
*/
+#ifndef _XOPEN_SOURCE
+#define _XOPEN_SOURCE 600 /* for posix_memalign() */
+#endif
#include "config.h"
#include <stdio.h>
@@ -45,7 +48,7 @@ errcode_t ext2fs_get_memalign(unsigned long size,
errcode_t retval;
void **p = ptr;
- if (align == 0)
+ if (align < 8)
align = 8;
#ifdef HAVE_POSIX_MEMALIGN
retval = posix_memalign(p, align, size);
@@ -64,9 +67,55 @@ errcode_t ext2fs_get_memalign(unsigned long size,
return EXT2_ET_NO_MEMORY;
}
#else
-#error memalign or posix_memalign must be defined!
+#ifdef HAVE_VALLOC
+ if (align > sizeof(long long))
+ *p = valloc(size);
+ else
+#endif
+ *p = malloc(size);
+ if ((unsigned long) *p & (align - 1)) {
+ free(*p);
+ *p = 0;
+ }
+ if (*p == 0)
+ return EXT2_ET_NO_MEMORY;
#endif
#endif
return 0;
}
+#ifdef DEBUG
+static int isaligned(void *ptr, unsigned long align)
+{
+ return (((unsigned long) ptr & (align - 1)) == 0);
+}
+
+static errcode_t test_memalign(unsigned long align)
+{
+ void *ptr = 0;
+ errcode_t retval;
+
+ retval = ext2fs_get_memalign(32, align, &ptr);
+ if (!retval && !isaligned(ptr, align))
+ retval = EINVAL;
+ free(ptr);
+ printf("tst_memalign(%lu) is %s\n", align,
+ retval ? error_message(retval) : "OK");
+ return retval;
+}
+
+int main(int argc, char **argv)
+{
+ int err = 0;
+
+ if (test_memalign(4))
+ err++;
+ if (test_memalign(32))
+ err++;
+ if (test_memalign(1024))
+ err++;
+ if (test_memalign(4096))
+ err++;
+ return err;
+}
+#endif
diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c
index 6c524ff2..573a8fa5 100644
--- a/lib/ext2fs/inode.c
+++ b/lib/ext2fs/inode.c
@@ -157,8 +157,8 @@ errcode_t ext2fs_open_inode_scan(ext2_filsys fs, int buffer_blocks,
(fs->blocksize / scan->inode_size - 1)) *
scan->inode_size / fs->blocksize;
}
- retval = ext2fs_get_memalign(scan->inode_buffer_blocks * fs->blocksize,
- fs->blocksize, &scan->inode_buffer);
+ retval = io_channel_alloc_buf(fs->io, scan->inode_buffer_blocks,
+ &scan->inode_buffer);
scan->done_group = 0;
scan->done_group_data = 0;
scan->bad_block_ptr = 0;
@@ -270,9 +270,9 @@ errcode_t ext2fs_inode_scan_goto_blockgroup(ext2_inode_scan scan,
* increasing order.
*/
static errcode_t check_for_inode_bad_blocks(ext2_inode_scan scan,
- blk_t *num_blocks)
+ blk64_t *num_blocks)
{
- blk_t blk = scan->current_block;
+ blk64_t blk = scan->current_block;
badblocks_list bb = scan->fs->badblocks;
/*
@@ -329,7 +329,7 @@ static errcode_t check_for_inode_bad_blocks(ext2_inode_scan scan,
*/
static errcode_t get_next_blocks(ext2_inode_scan scan)
{
- blk_t num_blocks;
+ blk64_t num_blocks;
errcode_t retval;
/*
@@ -533,7 +533,9 @@ errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino,
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
/* Check to see if user has an override function */
- if (fs->read_inode) {
+ if (fs->read_inode &&
+ ((bufsize == sizeof(struct ext2_inode)) ||
+ (EXT2_INODE_SIZE(fs->super) == sizeof(struct ext2_inode)))) {
retval = (fs->read_inode)(fs, ino, inode);
if (retval != EXT2_ET_CALLBACK_NOTHANDLED)
return retval;
diff --git a/lib/ext2fs/io_manager.c b/lib/ext2fs/io_manager.c
index 25df59ec..34e48592 100644
--- a/lib/ext2fs/io_manager.c
+++ b/lib/ext2fs/io_manager.c
@@ -111,3 +111,20 @@ errcode_t io_channel_discard(io_channel channel, unsigned long long block,
return EXT2_ET_UNIMPLEMENTED;
}
+
+errcode_t io_channel_alloc_buf(io_channel io, int count, void *ptr)
+{
+ size_t size;
+
+ if (count == 0)
+ size = io->block_size;
+ else if (count > 0)
+ size = io->block_size * count;
+ else
+ size = -count;
+
+ if (io->align)
+ return ext2fs_get_memalign(size, io->align, ptr);
+ else
+ return ext2fs_get_mem(size, ptr);
+}
diff --git a/lib/ext2fs/irel.h b/lib/ext2fs/irel.h
index 9a4958be..8aaa2d2b 100644
--- a/lib/ext2fs/irel.h
+++ b/lib/ext2fs/irel.h
@@ -10,7 +10,7 @@
*/
struct ext2_inode_reference {
- blk_t block;
+ blk64_t block;
__u16 offset;
};
diff --git a/lib/ext2fs/ismounted.c b/lib/ext2fs/ismounted.c
index 823eb3fe..6c6ecff0 100644
--- a/lib/ext2fs/ismounted.c
+++ b/lib/ext2fs/ismounted.c
@@ -21,6 +21,13 @@
#ifdef HAVE_LINUX_FD_H
#include <linux/fd.h>
#endif
+#ifdef HAVE_LINUX_LOOP_H
+#include <linux/loop.h>
+#include <sys/ioctl.h>
+#ifdef HAVE_LINUX_MAJOR_H
+#include <linux/major.h>
+#endif /* HAVE_LINUX_MAJOR_H */
+#endif /* HAVE_LINUX_LOOP_H */
#ifdef HAVE_MNTENT_H
#include <mntent.h>
#endif
@@ -35,7 +42,37 @@
#include "ext2_fs.h"
#include "ext2fs.h"
-#ifdef HAVE_MNTENT_H
+/*
+ * Check to see if a regular file is mounted.
+ * If /etc/mtab/ is a symlink of /proc/mounts, you will need the following check
+ * because the name in /proc/mounts is a loopback device not a regular file.
+ */
+static int check_loop_mounted(const char *mnt_fsname, dev_t mnt_rdev,
+ dev_t file_dev, ino_t file_ino)
+{
+#if defined(HAVE_LINUX_LOOP_H) && defined(HAVE_LINUX_MAJOR_H)
+ struct loop_info64 loopinfo;
+ int loop_fd, ret;
+
+ if (major(mnt_rdev) == LOOP_MAJOR) {
+ loop_fd = open(mnt_fsname, O_RDONLY);
+ if (loop_fd < 0)
+ return -1;
+
+ ret = ioctl(loop_fd, LOOP_GET_STATUS64, &loopinfo);
+ close(loop_fd);
+ if (ret < 0)
+ return -1;
+
+ if (file_dev == loopinfo.lo_device &&
+ file_ino == loopinfo.lo_inode)
+ return 1;
+ }
+#endif /* defined(HAVE_LINUX_LOOP_H) && defined(HAVE_LINUX_MAJOR_H) */
+ return 0;
+}
+
+#ifdef HAVE_SETMNTENT
/*
* Helper function which checks a file in /etc/mtab format to see if a
* filesystem is mounted. Returns an error if the file doesn't exist
@@ -53,8 +90,15 @@ static errcode_t check_mntent_file(const char *mtab_file, const char *file,
int fd;
*mount_flags = 0;
- if ((f = setmntent (mtab_file, "r")) == NULL)
- return (errno == ENOENT ? EXT2_NO_MTAB_FILE : errno);
+ if ((f = setmntent (mtab_file, "r")) == NULL) {
+ if (errno == ENOENT) {
+ if (getenv("EXT2FS_NO_MTAB_OK"))
+ return 0;
+ else
+ return EXT2_ET_NO_MTAB_FILE;
+ }
+ return errno;
+ }
if (stat(file, &st_buf) == 0) {
if (S_ISBLK(st_buf.st_mode)) {
#ifndef __GNU__ /* The GNU hurd is broken with respect to stat devices */
@@ -75,6 +119,10 @@ static errcode_t check_mntent_file(const char *mtab_file, const char *file,
#ifndef __GNU__
if (file_rdev && (file_rdev == st_buf.st_rdev))
break;
+ if (check_loop_mounted(mnt->mnt_fsname,
+ st_buf.st_rdev, file_dev,
+ file_ino) == 1)
+ break;
#endif /* __GNU__ */
} else {
if (file_dev && ((file_dev == st_buf.st_dev) &&
@@ -231,7 +279,7 @@ static errcode_t check_getmntinfo(const char *file, int *mount_flags,
return 0;
}
#endif /* HAVE_GETMNTINFO */
-#endif /* HAVE_MNTENT_H */
+#endif /* HAVE_SETMNTENT */
/*
* Check to see if we're dealing with the swap device.
@@ -302,15 +350,13 @@ leave:
errcode_t ext2fs_check_mount_point(const char *device, int *mount_flags,
char *mtpt, int mtlen)
{
- struct stat st_buf;
errcode_t retval = 0;
- int fd;
if (is_swap_device(device)) {
*mount_flags = EXT2_MF_MOUNTED | EXT2_MF_SWAP;
strncpy(mtpt, "<swap>", mtlen);
} else {
-#ifdef HAVE_MNTENT_H
+#ifdef HAVE_SETMNTENT
retval = check_mntent(device, mount_flags, mtpt, mtlen);
#else
#ifdef HAVE_GETMNTINFO
@@ -321,21 +367,24 @@ errcode_t ext2fs_check_mount_point(const char *device, int *mount_flags,
#endif
*mount_flags = 0;
#endif /* HAVE_GETMNTINFO */
-#endif /* HAVE_MNTENT_H */
+#endif /* HAVE_SETMNTENT */
}
if (retval)
return retval;
#ifdef __linux__ /* This only works on Linux 2.6+ systems */
- if ((stat(device, &st_buf) != 0) ||
- !S_ISBLK(st_buf.st_mode))
- return 0;
- fd = open(device, O_RDONLY | O_EXCL);
- if (fd < 0) {
- if (errno == EBUSY)
- *mount_flags |= EXT2_MF_BUSY;
- } else
- close(fd);
+ {
+ struct stat st_buf;
+
+ if (stat(device, &st_buf) == 0 && S_ISBLK(st_buf.st_mode)) {
+ int fd = open(device, O_RDONLY | O_EXCL);
+
+ if (fd >= 0)
+ close(fd);
+ else if (errno == EBUSY)
+ *mount_flags |= EXT2_MF_BUSY;
+ }
+ }
#endif
return 0;
diff --git a/lib/ext2fs/kernel-jbd.h b/lib/ext2fs/kernel-jbd.h
index 066c031e..059bf8fa 100644
--- a/lib/ext2fs/kernel-jbd.h
+++ b/lib/ext2fs/kernel-jbd.h
@@ -214,13 +214,13 @@ typedef struct journal_superblock_s
#define JFS_HAS_COMPAT_FEATURE(j,mask) \
((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask))))
+ ((j)->j_superblock->s_feature_compat & ext2fs_cpu_to_be32((mask))))
#define JFS_HAS_RO_COMPAT_FEATURE(j,mask) \
((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask))))
+ ((j)->j_superblock->s_feature_ro_compat & ext2fs_cpu_to_be32((mask))))
#define JFS_HAS_INCOMPAT_FEATURE(j,mask) \
((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
+ ((j)->j_superblock->s_feature_incompat & ext2fs_cpu_to_be32((mask))))
#define JFS_FEATURE_COMPAT_CHECKSUM 0x00000001
diff --git a/lib/ext2fs/kernel-list.h b/lib/ext2fs/kernel-list.h
index e07d06b6..01f4f6b9 100644
--- a/lib/ext2fs/kernel-list.h
+++ b/lib/ext2fs/kernel-list.h
@@ -17,9 +17,6 @@ struct list_head {
#define LIST_HEAD_INIT(name) { &(name), &(name) }
-#define LIST_HEAD(name) \
- struct list_head name = { &name, &name }
-
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
diff --git a/lib/ext2fs/link.c b/lib/ext2fs/link.c
index 2d03b573..bf3c859a 100644
--- a/lib/ext2fs/link.c
+++ b/lib/ext2fs/link.c
@@ -42,6 +42,9 @@ static int link_proc(struct ext2_dir_entry *dirent,
unsigned int rec_len, min_rec_len, curr_rec_len;
int ret = 0;
+ if (ls->done)
+ return DIRENT_ABORT;
+
rec_len = EXT2_DIR_REC_LEN(ls->namelen);
ls->err = ext2fs_get_rec_len(ls->fs, dirent, &curr_rec_len);
diff --git a/lib/ext2fs/llseek.c b/lib/ext2fs/llseek.c
index b0576e40..c3a98a2c 100644
--- a/lib/ext2fs/llseek.c
+++ b/lib/ext2fs/llseek.c
@@ -90,17 +90,14 @@ static ext2_loff_t my_llseek (int fd, ext2_loff_t offset, int origin)
ext2_loff_t ext2fs_llseek (int fd, ext2_loff_t offset, int origin)
{
+#if SIZEOF_OFF_T >= SIZEOF_LONG_LONG
+ return lseek (fd, offset, origin);
+#else
ext2_loff_t result;
static int do_compat = 0;
- if ((sizeof(off_t) >= sizeof(ext2_loff_t)) ||
- (offset < ((ext2_loff_t) 1 << ((sizeof(off_t)*8) -1))))
- return lseek(fd, (off_t) offset, origin);
-
- if (do_compat) {
- errno = EINVAL;
- return -1;
- }
+ if (do_compat)
+ goto fallback;
result = my_llseek (fd, offset, origin);
if (result == -1 && errno == ENOSYS) {
@@ -109,9 +106,14 @@ ext2_loff_t ext2fs_llseek (int fd, ext2_loff_t offset, int origin)
* which does not support the llseek system call
*/
do_compat++;
+ fallback:
+ if (offset < ((ext2_loff_t) 1 << ((sizeof(off_t)*8) -1)))
+ return lseek(fd, (off_t) offset, origin);
errno = EINVAL;
+ return -1;
}
return result;
+#endif
}
#else /* !linux */
diff --git a/lib/ext2fs/mkjournal.c b/lib/ext2fs/mkjournal.c
index 838d751c..884d9c07 100644
--- a/lib/ext2fs/mkjournal.c
+++ b/lib/ext2fs/mkjournal.c
@@ -250,6 +250,7 @@ static int mkjournal_proc(ext2_filsys fs,
es->err = retval;
return BLOCK_ABORT;
}
+ ext2fs_block_alloc_stats2(fs, new_blk, +1);
es->newblocks++;
}
if (blockcnt >= 0)
@@ -285,7 +286,6 @@ static int mkjournal_proc(ext2_filsys fs,
return BLOCK_ABORT;
}
*blocknr = es->goal = new_blk;
- ext2fs_block_alloc_stats2(fs, new_blk, +1);
if (es->num_blocks == 0)
return (BLOCK_CHANGED | BLOCK_ABORT);
@@ -295,13 +295,43 @@ static int mkjournal_proc(ext2_filsys fs,
}
/*
+ * Calculate the initial goal block to be roughly at the middle of the
+ * filesystem. Pick a group that has the largest number of free
+ * blocks.
+ */
+static blk64_t get_midpoint_journal_block(ext2_filsys fs)
+{
+ dgrp_t group, start, end, i, log_flex;
+
+ group = ext2fs_group_of_blk2(fs, (ext2fs_blocks_count(fs->super) -
+ fs->super->s_first_data_block) / 2);
+ log_flex = 1 << fs->super->s_log_groups_per_flex;
+ if (fs->super->s_log_groups_per_flex && (group > log_flex)) {
+ group = group & ~(log_flex - 1);
+ while ((group < fs->group_desc_count) &&
+ ext2fs_bg_free_blocks_count(fs, group) == 0)
+ group++;
+ if (group == fs->group_desc_count)
+ group = 0;
+ start = group;
+ } else
+ start = (group > 0) ? group-1 : group;
+ end = ((group+1) < fs->group_desc_count) ? group+1 : group;
+ group = start;
+ for (i = start + 1; i <= end; i++)
+ if (ext2fs_bg_free_blocks_count(fs, i) >
+ ext2fs_bg_free_blocks_count(fs, group))
+ group = i;
+ return ext2fs_group_first_block2(fs, group);
+}
+
+/*
* This function creates a journal using direct I/O routines.
*/
static errcode_t write_journal_inode(ext2_filsys fs, ext2_ino_t journal_ino,
- blk_t num_blocks, int flags)
+ blk_t num_blocks, blk64_t goal, int flags)
{
char *buf;
- dgrp_t group, start, end, i, log_flex;
errcode_t retval;
struct ext2_inode inode;
unsigned long long inode_size;
@@ -312,13 +342,15 @@ static errcode_t write_journal_inode(ext2_filsys fs, ext2_ino_t journal_ino,
return retval;
if ((retval = ext2fs_read_bitmaps(fs)))
- return retval;
+ goto out2;
if ((retval = ext2fs_read_inode(fs, journal_ino, &inode)))
- return retval;
+ goto out2;
- if (inode.i_blocks > 0)
- return EEXIST;
+ if (inode.i_blocks > 0) {
+ retval = EEXIST;
+ goto out2;
+ }
es.num_blocks = num_blocks;
es.newblocks = 0;
@@ -326,41 +358,14 @@ static errcode_t write_journal_inode(ext2_filsys fs, ext2_ino_t journal_ino,
es.err = 0;
es.flags = flags;
es.zero_count = 0;
+ es.goal = (goal != ~0ULL) ? goal : get_midpoint_journal_block(fs);
if (fs->super->s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS) {
inode.i_flags |= EXT4_EXTENTS_FL;
if ((retval = ext2fs_write_inode(fs, journal_ino, &inode)))
- return retval;
+ goto out2;
}
- /*
- * Set the initial goal block to be roughly at the middle of
- * the filesystem. Pick a group that has the largest number
- * of free blocks.
- */
- group = ext2fs_group_of_blk2(fs, (ext2fs_blocks_count(fs->super) -
- fs->super->s_first_data_block) / 2);
- log_flex = 1 << fs->super->s_log_groups_per_flex;
- if (fs->super->s_log_groups_per_flex && (group > log_flex)) {
- group = group & ~(log_flex - 1);
- while ((group < fs->group_desc_count) &&
- ext2fs_bg_free_blocks_count(fs, group) == 0)
- group++;
- if (group == fs->group_desc_count)
- group = 0;
- start = group;
- } else
- start = (group > 0) ? group-1 : group;
- end = ((group+1) < fs->group_desc_count) ? group+1 : group;
- group = start;
- for (i=start+1; i <= end; i++)
- if (ext2fs_bg_free_blocks_count(fs, i) >
- ext2fs_bg_free_blocks_count(fs, group))
- group = i;
-
- es.goal = (fs->super->s_blocks_per_group * group) +
- fs->super->s_first_data_block;
-
retval = ext2fs_block_iterate3(fs, journal_ino, BLOCK_FLAG_APPEND,
0, mkjournal_proc, &es);
if (es.err) {
@@ -380,7 +385,7 @@ static errcode_t write_journal_inode(ext2_filsys fs, ext2_ino_t journal_ino,
inode_size = (unsigned long long)fs->blocksize * num_blocks;
inode.i_size = inode_size & 0xFFFFFFFF;
inode.i_size_high = (inode_size >> 32) & 0xFFFFFFFF;
- if (inode.i_size_high)
+ if (ext2fs_needs_large_file_feature(inode_size))
fs->super->s_feature_ro_compat |=
EXT2_FEATURE_RO_COMPAT_LARGE_FILE;
ext2fs_iblk_add_blocks(fs, &inode, es.newblocks);
@@ -400,6 +405,7 @@ static errcode_t write_journal_inode(ext2_filsys fs, ext2_ino_t journal_ino,
errout:
ext2fs_zero_blocks2(0, 0, 0, 0, 0);
+out2:
ext2fs_free_mem(&buf);
return retval;
}
@@ -490,20 +496,27 @@ errcode_t ext2fs_add_journal_device(ext2_filsys fs, ext2_filsys journal_dev)
* POSIX routines if the filesystem is mounted, or using direct I/O
* functions if it is not.
*/
-errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t num_blocks, int flags)
+errcode_t ext2fs_add_journal_inode2(ext2_filsys fs, blk_t num_blocks,
+ blk64_t goal, int flags)
{
errcode_t retval;
ext2_ino_t journal_ino;
struct stat st;
char jfile[1024];
- int mount_flags, f;
+ int mount_flags;
int fd = -1;
- if ((retval = ext2fs_check_mount_point(fs->device_name, &mount_flags,
- jfile, sizeof(jfile)-10)))
+ if (flags & EXT2_MKJOURNAL_NO_MNT_CHECK)
+ mount_flags = 0;
+ else if ((retval = ext2fs_check_mount_point(fs->device_name,
+ &mount_flags,
+ jfile, sizeof(jfile)-10)))
return retval;
if (mount_flags & EXT2_MF_MOUNTED) {
+#if HAVE_EXT2_IOCTLS
+ int f = 0;
+#endif
strcat(jfile, "/.journal");
/*
@@ -516,9 +529,10 @@ errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t num_blocks, int flags)
#if HAVE_EXT2_IOCTLS
fd = open(jfile, O_RDONLY);
if (fd >= 0) {
- f = 0;
- ioctl(fd, EXT2_IOC_SETFLAGS, &f);
+ retval = ioctl(fd, EXT2_IOC_SETFLAGS, &f);
close(fd);
+ if (retval)
+ return retval;
}
#endif
#endif
@@ -574,7 +588,7 @@ errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t num_blocks, int flags)
}
journal_ino = EXT2_JOURNAL_INO;
if ((retval = write_journal_inode(fs, journal_ino,
- num_blocks, flags)))
+ num_blocks, goal, flags)))
return retval;
}
@@ -587,11 +601,17 @@ errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t num_blocks, int flags)
ext2fs_mark_super_dirty(fs);
return 0;
errout:
- if (fd > 0)
+ if (fd >= 0)
close(fd);
return retval;
}
+errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t num_blocks, int flags)
+{
+ return ext2fs_add_journal_inode2(fs, num_blocks, ~0ULL, flags);
+}
+
+
#ifdef DEBUG
main(int argc, char **argv)
{
@@ -612,7 +632,7 @@ main(int argc, char **argv)
exit(1);
}
- retval = ext2fs_add_journal_inode(fs, 1024);
+ retval = ext2fs_add_journal_inode(fs, 1024, 0);
if (retval) {
com_err(argv[0], retval, "while adding journal to %s",
device_name);
diff --git a/lib/ext2fs/mmp.c b/lib/ext2fs/mmp.c
index 49a11da9..e4c7dccd 100644
--- a/lib/ext2fs/mmp.c
+++ b/lib/ext2fs/mmp.c
@@ -4,8 +4,8 @@
* Copyright (C) 2011 Whamcloud, Inc.
*
* %Begin-Header%
- * This file may be redistributed under the terms of the GNU Public
- * License.
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
* %End-Header%
*/
@@ -27,20 +27,6 @@
#include "ext2fs/ext2_fs.h"
#include "ext2fs/ext2fs.h"
-static int mmp_pagesize(void)
-{
-#ifdef _SC_PAGESIZE
- int sysval = sysconf(_SC_PAGESIZE);
- if (sysval > 0)
- return sysval;
-#endif /* _SC_PAGESIZE */
-#ifdef HAVE_GETPAGESIZE
- return getpagesize();
-#else
- return 4096;
-#endif
-}
-
#ifndef O_DIRECT
#define O_DIRECT 0
#endif
@@ -51,23 +37,9 @@ errcode_t ext2fs_mmp_read(ext2_filsys fs, blk64_t mmp_blk, void *buf)
errcode_t retval = 0;
if ((mmp_blk <= fs->super->s_first_data_block) ||
- (mmp_blk >= fs->super->s_blocks_count))
+ (mmp_blk >= ext2fs_blocks_count(fs->super)))
return EXT2_ET_MMP_BAD_BLOCK;
- if (fs->mmp_cmp == NULL) {
- /* O_DIRECT in linux 2.4: page aligned
- * O_DIRECT in linux 2.6: sector aligned
- * A filesystem cannot be created with blocksize < sector size,
- * or with blocksize > page_size. */
- int bufsize = fs->blocksize;
-
- if (bufsize < mmp_pagesize())
- bufsize = mmp_pagesize();
- retval = ext2fs_get_memalign(bufsize, bufsize, &fs->mmp_cmp);
- if (retval)
- return retval;
- }
-
/* ext2fs_open() reserves fd0,1,2 to avoid stdio collision, so checking
* mmp_fd <= 0 is OK to validate that the fd is valid. This opens its
* own fd to read the MMP block to ensure that it is using O_DIRECT,
@@ -81,7 +53,17 @@ errcode_t ext2fs_mmp_read(ext2_filsys fs, blk64_t mmp_blk, void *buf)
}
}
- if (ext2fs_llseek(fs->mmp_fd, mmp_blk * fs->blocksize, SEEK_SET) !=
+ if (fs->mmp_cmp == NULL) {
+ int align = ext2fs_get_dio_alignment(fs->mmp_fd);
+
+ retval = ext2fs_get_memalign(fs->blocksize, align,
+ &fs->mmp_cmp);
+ if (retval)
+ return retval;
+ }
+
+ if ((blk64_t) ext2fs_llseek(fs->mmp_fd, mmp_blk * fs->blocksize,
+ SEEK_SET) !=
mmp_blk * fs->blocksize) {
retval = EXT2_ET_LLSEEK_FAILED;
goto out;
@@ -145,7 +127,7 @@ errcode_t ext2fs_mmp_write(ext2_filsys fs, blk64_t mmp_blk, void *buf)
#define rand() random()
#endif
-unsigned ext2fs_mmp_new_seq()
+unsigned ext2fs_mmp_new_seq(void)
{
unsigned new_seq;
struct timeval tv;
diff --git a/lib/ext2fs/namei.c b/lib/ext2fs/namei.c
index efcc02b7..307aecc8 100644
--- a/lib/ext2fs/namei.c
+++ b/lib/ext2fs/namei.c
@@ -34,6 +34,7 @@ static errcode_t follow_link(ext2_filsys fs, ext2_ino_t root, ext2_ino_t dir,
char *buffer = 0;
errcode_t retval;
struct ext2_inode ei;
+ blk64_t blk;
#ifdef NAMEI_DEBUG
printf("follow_link: root=%lu, dir=%lu, inode=%lu, lc=%d\n",
@@ -49,12 +50,16 @@ static errcode_t follow_link(ext2_filsys fs, ext2_ino_t root, ext2_ino_t dir,
if (link_count++ >= EXT2FS_MAX_NESTED_LINKS)
return EXT2_ET_SYMLINK_LOOP;
- /* FIXME-64: Actually, this is FIXME EXTENTS */
if (ext2fs_inode_data_blocks(fs,&ei)) {
+ retval = ext2fs_bmap2(fs, inode, &ei, NULL, 0, 0, NULL, &blk);
+ if (retval)
+ return retval;
+
retval = ext2fs_get_mem(fs->blocksize, &buffer);
if (retval)
return retval;
- retval = io_channel_read_blk(fs->io, ei.i_block[0], 1, buffer);
+
+ retval = io_channel_read_blk64(fs->io, blk, 1, buffer);
if (retval) {
ext2fs_free_mem(&buffer);
return retval;
diff --git a/lib/ext2fs/newdir.c b/lib/ext2fs/newdir.c
index b0a1e476..3e2c0dbe 100644
--- a/lib/ext2fs/newdir.c
+++ b/lib/ext2fs/newdir.c
@@ -44,8 +44,10 @@ errcode_t ext2fs_new_dir_block(ext2_filsys fs, ext2_ino_t dir_ino,
dir = (struct ext2_dir_entry *) buf;
retval = ext2fs_set_rec_len(fs, fs->blocksize, dir);
- if (retval)
+ if (retval) {
+ ext2fs_free_mem(&buf);
return retval;
+ }
if (dir_ino) {
if (fs->super->s_feature_incompat &
@@ -65,8 +67,10 @@ errcode_t ext2fs_new_dir_block(ext2_filsys fs, ext2_ino_t dir_ino,
*/
dir = (struct ext2_dir_entry *) (buf + dir->rec_len);
retval = ext2fs_set_rec_len(fs, rec_len, dir);
- if (retval)
+ if (retval) {
+ ext2fs_free_mem(&buf);
return retval;
+ }
dir->inode = parent_ino;
dir->name_len = 2 | filetype;
dir->name[0] = '.';
diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c
index 220d954b..a1a35176 100644
--- a/lib/ext2fs/openfs.c
+++ b/lib/ext2fs/openfs.c
@@ -37,17 +37,24 @@ blk64_t ext2fs_descriptor_block_loc2(ext2_filsys fs, blk64_t group_block,
dgrp_t i)
{
int bg;
- int has_super = 0;
+ int has_super = 0, group_zero_adjust = 0;
blk64_t ret_blk;
+ /*
+ * On a bigalloc FS with 1K blocks, block 0 is reserved for non-ext4
+ * stuff, so adjust for that if we're being asked for group 0.
+ */
+ if (i == 0 && fs->blocksize == 1024 && EXT2FS_CLUSTER_RATIO(fs) > 1)
+ group_zero_adjust = 1;
+
if (!(fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) ||
(i < fs->super->s_first_meta_bg))
- return (group_block + i + 1);
+ return group_block + i + 1 + group_zero_adjust;
bg = EXT2_DESC_PER_BLOCK(fs->super) * i;
if (ext2fs_bg_has_super(fs, bg))
has_super = 1;
- ret_blk = ext2fs_group_first_block2(fs, bg) + has_super;
+ ret_blk = ext2fs_group_first_block2(fs, bg);
/*
* If group_block is not the normal value, we're trying to use
* the backup group descriptors and superblock --- so use the
@@ -57,10 +64,21 @@ blk64_t ext2fs_descriptor_block_loc2(ext2_filsys fs, blk64_t group_block,
* have the infrastructure in place to do that.
*/
if (group_block != fs->super->s_first_data_block &&
- ((ret_blk + fs->super->s_blocks_per_group) <
- ext2fs_blocks_count(fs->super)))
+ ((ret_blk + has_super + fs->super->s_blocks_per_group) <
+ ext2fs_blocks_count(fs->super))) {
ret_blk += fs->super->s_blocks_per_group;
- return ret_blk;
+
+ /*
+ * If we're going to jump forward a block group, make sure
+ * that we adjust has_super to account for the next group's
+ * backup superblock (or lack thereof).
+ */
+ if (ext2fs_bg_has_super(fs, bg + 1))
+ has_super = 1;
+ else
+ has_super = 0;
+ }
+ return ret_blk + has_super + group_zero_adjust;
}
blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block, dgrp_t i)
@@ -99,10 +117,12 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
errcode_t retval;
unsigned long i, first_meta_bg;
__u32 features;
- unsigned int groups_per_block, blocks_per_group, io_flags;
+ unsigned int blocks_per_group, io_flags;
blk64_t group_block, blk;
char *dest, *cp;
+ int group_zero_adjust = 0;
#ifdef WORDS_BIGENDIAN
+ unsigned int groups_per_block;
struct ext2_group_desc *gdp;
int j;
#endif
@@ -144,7 +164,7 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
goto cleanup;
fs->image_io = fs->io;
fs->io->app_data = fs;
- retval = ext2fs_get_memalign(SUPERBLOCK_SIZE, 512, &fs->super);
+ retval = io_channel_alloc_buf(fs->io, -SUPERBLOCK_SIZE, &fs->super);
if (retval)
goto cleanup;
if (flags & EXT2_FLAG_IMAGE_FILE) {
@@ -252,6 +272,18 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
retval = EXT2_ET_CORRUPT_SUPERBLOCK;
goto cleanup;
}
+
+ /*
+ * bigalloc requires cluster-aware bitfield operations, which at the
+ * moment means we need EXT2_FLAG_64BITS.
+ */
+ if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_BIGALLOC) &&
+ !(flags & EXT2_FLAG_64BITS)) {
+ retval = EXT2_ET_CANT_USE_LEGACY_BITMAPS;
+ goto cleanup;
+ }
+
if (!EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_BIGALLOC) &&
(fs->super->s_log_block_size != fs->super->s_log_cluster_size)) {
@@ -329,16 +361,30 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
goto cleanup;
if (!group_block)
group_block = fs->super->s_first_data_block;
+ /*
+ * On a FS with a 1K blocksize, block 0 is reserved for bootloaders
+ * so we must increment block numbers to any group 0 items.
+ *
+ * However, we cannot touch group_block directly because in the meta_bg
+ * case, the ext2fs_descriptor_block_loc2() function will interpret
+ * group_block != s_first_data_block to mean that we want to access the
+ * backup group descriptors. This is not what we want if the caller
+ * set superblock == 0 (i.e. auto-detect the superblock), which is
+ * what's going on here.
+ */
if (group_block == 0 && fs->blocksize == 1024)
- group_block = 1; /* Deal with 1024 blocksize && bigalloc */
+ group_zero_adjust = 1;
dest = (char *) fs->group_desc;
+#ifdef WORDS_BIGENDIAN
groups_per_block = EXT2_DESC_PER_BLOCK(fs->super);
+#endif
if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
first_meta_bg = fs->super->s_first_meta_bg;
else
first_meta_bg = fs->desc_blocks;
if (first_meta_bg) {
- retval = io_channel_read_blk(fs->io, group_block+1,
+ retval = io_channel_read_blk(fs->io, group_block +
+ group_zero_adjust + 1,
first_meta_bg, dest);
if (retval)
goto cleanup;
@@ -388,9 +434,6 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
ext2fs_mark_super_dirty(fs);
}
- fs->flags &= ~EXT2_FLAG_NOFREE_ON_ERROR;
- *ret_fs = fs;
-
if ((fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_MMP) &&
!(flags & EXT2_FLAG_SKIP_MMP) &&
(flags & (EXT2_FLAG_RW | EXT2_FLAG_EXCLUSIVE))) {
@@ -402,12 +445,16 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
}
}
+ fs->flags &= ~EXT2_FLAG_NOFREE_ON_ERROR;
+ *ret_fs = fs;
+
return 0;
cleanup:
- if (flags & EXT2_FLAG_NOFREE_ON_ERROR)
- *ret_fs = fs;
- else
+ if (!(flags & EXT2_FLAG_NOFREE_ON_ERROR)) {
ext2fs_free(fs);
+ fs = NULL;
+ }
+ *ret_fs = fs;
return retval;
}
@@ -436,8 +483,20 @@ errcode_t ext2fs_set_data_io(ext2_filsys fs, io_channel new_io)
errcode_t ext2fs_rewrite_to_io(ext2_filsys fs, io_channel new_io)
{
+ errcode_t err;
+
if ((fs->flags & EXT2_FLAG_IMAGE_FILE) == 0)
return EXT2_ET_NOT_IMAGE_FILE;
+ err = io_channel_set_blksize(new_io, fs->blocksize);
+ if (err)
+ return err;
+ if ((new_io == fs->image_io) || (new_io == fs->io))
+ return 0;
+ if ((fs->image_io != fs->io) &&
+ fs->image_io)
+ io_channel_close(fs->image_io);
+ if (fs->io)
+ io_channel_close(fs->io);
fs->io = fs->image_io = new_io;
fs->flags |= EXT2_FLAG_DIRTY | EXT2_FLAG_RW |
EXT2_FLAG_BB_DIRTY | EXT2_FLAG_IB_DIRTY;
diff --git a/lib/ext2fs/progress.c b/lib/ext2fs/progress.c
index 37d15096..8c9a6f1d 100644
--- a/lib/ext2fs/progress.c
+++ b/lib/ext2fs/progress.c
@@ -14,7 +14,10 @@
#include "ext2fs.h"
#include "ext2fsP.h"
+#include <time.h>
+
static char spaces[80], backspaces[80];
+static time_t last_update;
static int int_log10(unsigned int arg)
{
@@ -42,11 +45,11 @@ void ext2fs_numeric_progress_init(ext2_filsys fs,
spaces[sizeof(spaces)-1] = 0;
memset(backspaces, '\b', sizeof(backspaces)-1);
backspaces[sizeof(backspaces)-1] = 0;
- progress->skip_progress = 0;
+
+ memset(progress, 0, sizeof(*progress));
if (getenv("E2FSPROGS_SKIP_PROGRESS"))
progress->skip_progress++;
- memset(progress, 0, sizeof(*progress));
/*
* Figure out how many digits we need
@@ -58,16 +61,23 @@ void ext2fs_numeric_progress_init(ext2_filsys fs,
fputs(label, stdout);
fflush(stdout);
}
+ last_update = 0;
}
void ext2fs_numeric_progress_update(ext2_filsys fs,
struct ext2fs_numeric_progress_struct * progress,
__u64 val)
{
+ time_t now;
+
if (!(fs->flags & EXT2_FLAG_PRINT_PROGRESS))
return;
if (progress->skip_progress)
return;
+ now = time(0);
+ if (now == last_update)
+ return;
+ last_update = now;
printf("%*llu/%*llu", progress->log_max, val,
progress->log_max, progress->max);
diff --git a/lib/ext2fs/punch.c b/lib/ext2fs/punch.c
index b53653a0..a3d020ec 100644
--- a/lib/ext2fs/punch.c
+++ b/lib/ext2fs/punch.c
@@ -50,17 +50,18 @@ static errcode_t ind_punch(ext2_filsys fs, struct ext2_inode *inode,
blk_t start, blk_t count, int max)
{
errcode_t retval;
- blk_t b, offset;
- int i, incr;
+ blk_t b;
+ int i;
+ blk64_t offset, incr;
int freed = 0;
#ifdef PUNCH_DEBUG
printf("Entering ind_punch, level %d, start %u, count %u, "
"max %d\n", level, start, count, max);
#endif
- incr = 1 << ((EXT2_BLOCK_SIZE_BITS(fs->super)-2)*level);
+ incr = 1ULL << ((EXT2_BLOCK_SIZE_BITS(fs->super)-2)*level);
for (i=0, offset=0; i < max; i++, p++, offset += incr) {
- if (offset > count)
+ if (offset >= start + count)
break;
if (*p == 0 || (offset+incr) <= start)
continue;
@@ -87,7 +88,7 @@ static errcode_t ind_punch(ext2_filsys fs, struct ext2_inode *inode,
continue;
}
#ifdef PUNCH_DEBUG
- printf("Freeing block %u (offset %d)\n", b, offset);
+ printf("Freeing block %u (offset %llu)\n", b, offset);
#endif
ext2fs_block_alloc_stats(fs, b, -1);
*p = 0;
@@ -108,7 +109,7 @@ static errcode_t ext2fs_punch_ind(ext2_filsys fs, struct ext2_inode *inode,
int num = EXT2_NDIR_BLOCKS;
blk_t *bp = inode->i_block;
blk_t addr_per_block;
- blk_t max = EXT2_NDIR_BLOCKS;
+ blk64_t max = EXT2_NDIR_BLOCKS;
if (!block_buf) {
retval = ext2fs_get_array(3, fs->blocksize, &buf);
@@ -119,10 +120,10 @@ static errcode_t ext2fs_punch_ind(ext2_filsys fs, struct ext2_inode *inode,
addr_per_block = (blk_t) fs->blocksize >> 2;
- for (level=0; level < 4; level++, max *= addr_per_block) {
+ for (level = 0; level < 4; level++, max *= (blk64_t)addr_per_block) {
#ifdef PUNCH_DEBUG
printf("Main loop level %d, start %u count %u "
- "max %d num %d\n", level, start, count, max, num);
+ "max %llu num %d\n", level, start, count, max, num);
#endif
if (start < max) {
retval = ind_punch(fs, inode, block_buf, bp, level,
@@ -176,6 +177,75 @@ static void dbg_print_extent(char *desc, struct ext2fs_extent *extent)
#define dbg_printf(f, a...) do { } while (0)
#endif
+/* Free a range of blocks, respecting cluster boundaries */
+static errcode_t punch_extent_blocks(ext2_filsys fs, ext2_ino_t ino,
+ struct ext2_inode *inode,
+ blk64_t lfree_start, blk64_t free_start,
+ __u32 free_count, int *freed)
+{
+ blk64_t pblk;
+ int freed_now = 0;
+ __u32 cluster_freed;
+ errcode_t retval = 0;
+
+ /* No bigalloc? Just free each block. */
+ if (EXT2FS_CLUSTER_RATIO(fs) == 1) {
+ *freed += free_count;
+ while (free_count-- > 0)
+ ext2fs_block_alloc_stats2(fs, free_start++, -1);
+ return retval;
+ }
+
+ /*
+ * Try to free up to the next cluster boundary. We assume that all
+ * blocks in a logical cluster map to blocks from the same physical
+ * cluster, and that the offsets within the [pl]clusters match.
+ */
+ if (free_start & EXT2FS_CLUSTER_MASK(fs)) {
+ retval = ext2fs_map_cluster_block(fs, ino, inode,
+ lfree_start, &pblk);
+ if (retval)
+ goto errout;
+ if (!pblk) {
+ ext2fs_block_alloc_stats2(fs, free_start, -1);
+ freed_now++;
+ }
+ cluster_freed = EXT2FS_CLUSTER_RATIO(fs) -
+ (free_start & EXT2FS_CLUSTER_MASK(fs));
+ if (cluster_freed > free_count)
+ cluster_freed = free_count;
+ free_count -= cluster_freed;
+ free_start += cluster_freed;
+ lfree_start += cluster_freed;
+ }
+
+ /* Free whole clusters from the middle of the range. */
+ while (free_count > 0 && free_count >= EXT2FS_CLUSTER_RATIO(fs)) {
+ ext2fs_block_alloc_stats2(fs, free_start, -1);
+ freed_now++;
+ cluster_freed = EXT2FS_CLUSTER_RATIO(fs);
+ free_count -= cluster_freed;
+ free_start += cluster_freed;
+ lfree_start += cluster_freed;
+ }
+
+ /* Try to free the last cluster. */
+ if (free_count > 0) {
+ retval = ext2fs_map_cluster_block(fs, ino, inode,
+ lfree_start, &pblk);
+ if (retval)
+ goto errout;
+ if (!pblk) {
+ ext2fs_block_alloc_stats2(fs, free_start, -1);
+ freed_now++;
+ }
+ }
+
+errout:
+ *freed += freed_now;
+ return retval;
+}
+
static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino,
struct ext2_inode *inode,
blk64_t start, blk64_t end)
@@ -183,18 +253,34 @@ static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino,
ext2_extent_handle_t handle = 0;
struct ext2fs_extent extent;
errcode_t retval;
- blk64_t free_start, next;
+ blk64_t free_start, next, lfree_start;
__u32 free_count, newlen;
int freed = 0;
+ int op;
retval = ext2fs_extent_open2(fs, ino, inode, &handle);
if (retval)
return retval;
+ /*
+ * Find the extent closest to the start of the punch range. We don't
+ * check the return value because _goto() sets the current node to the
+ * next-lowest extent if 'start' is in a hole, and doesn't set a
+ * current node if there was a real error reading the extent tree.
+ * In that case, _get() will error out.
+ *
+ * Note: If _get() returns 'no current node', that simply means that
+ * there aren't any blocks mapped past this point in the file, so we're
+ * done.
+ */
ext2fs_extent_goto(handle, start);
retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT, &extent);
- if (retval)
+ if (retval == EXT2_ET_NO_CURRENT_NODE) {
+ retval = 0;
+ goto errout;
+ } else if (retval)
goto errout;
while (1) {
+ op = EXT2_EXTENT_NEXT_LEAF;
dbg_print_extent("main loop", &extent);
next = extent.e_lblk + extent.e_len;
dbg_printf("start %llu, end %llu, next %llu\n",
@@ -202,12 +288,17 @@ static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino,
(unsigned long long) end,
(unsigned long long) next);
if (start <= extent.e_lblk) {
+ /*
+ * Have we iterated past the end of the punch region?
+ * If so, we can stop.
+ */
if (end < extent.e_lblk)
- goto next_extent;
+ break;
dbg_printf("Case #%d\n", 1);
/* Start of deleted region before extent;
adjust beginning of extent */
free_start = extent.e_pblk;
+ lfree_start = extent.e_lblk;
if (next > end)
free_count = end - extent.e_lblk + 1;
else
@@ -216,13 +307,19 @@ static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino,
extent.e_lblk += free_count;
extent.e_pblk += free_count;
} else if (end >= next-1) {
+ /*
+ * Is the punch region beyond this extent? This can
+ * happen if start is already inside a hole. Try to
+ * advance to the next extent if this is the case.
+ */
if (start >= next)
- break;
+ goto next_extent;
/* End of deleted region after extent;
adjust end of extent */
dbg_printf("Case #%d\n", 2);
newlen = start - extent.e_lblk;
free_start = extent.e_pblk + newlen;
+ lfree_start = extent.e_lblk + newlen;
free_count = extent.e_len - newlen;
extent.e_len = newlen;
} else {
@@ -238,6 +335,7 @@ static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino,
extent.e_len = start - extent.e_lblk;
free_start = extent.e_pblk + extent.e_len;
+ lfree_start = extent.e_lblk + extent.e_len;
free_count = end - start + 1;
dbg_print_extent("inserting", &newex);
@@ -255,22 +353,65 @@ static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino,
if (extent.e_len) {
dbg_print_extent("replacing", &extent);
retval = ext2fs_extent_replace(handle, 0, &extent);
+ if (retval)
+ goto errout;
+ retval = ext2fs_extent_fix_parents(handle);
} else {
+ struct ext2fs_extent newex;
+ blk64_t old_lblk, next_lblk;
dbg_printf("deleting current extent%s\n", "");
+
+ /*
+ * Save the location of the next leaf, then slip
+ * back to the current extent.
+ */
+ retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT,
+ &newex);
+ if (retval)
+ goto errout;
+ old_lblk = newex.e_lblk;
+
+ retval = ext2fs_extent_get(handle,
+ EXT2_EXTENT_NEXT_LEAF,
+ &newex);
+ if (retval == EXT2_ET_EXTENT_NO_NEXT)
+ next_lblk = old_lblk;
+ else if (retval)
+ goto errout;
+ else
+ next_lblk = newex.e_lblk;
+
+ retval = ext2fs_extent_goto(handle, old_lblk);
+ if (retval)
+ goto errout;
+
+ /* Now delete the extent. */
retval = ext2fs_extent_delete(handle, 0);
+ if (retval)
+ goto errout;
+
+ retval = ext2fs_extent_fix_parents(handle);
+ if (retval && retval != EXT2_ET_NO_CURRENT_NODE)
+ goto errout;
+ retval = 0;
+
+ /* Jump forward to the next extent. */
+ ext2fs_extent_goto(handle, next_lblk);
+ op = EXT2_EXTENT_CURRENT;
}
if (retval)
goto errout;
dbg_printf("Free start %llu, free count = %u\n",
free_start, free_count);
- while (free_count-- > 0) {
- ext2fs_block_alloc_stats(fs, free_start++, -1);
- freed++;
- }
+ retval = punch_extent_blocks(fs, ino, inode, lfree_start,
+ free_start, free_count, &freed);
+ if (retval)
+ goto errout;
next_extent:
- retval = ext2fs_extent_get(handle, EXT2_EXTENT_NEXT_LEAF,
+ retval = ext2fs_extent_get(handle, op,
&extent);
- if (retval == EXT2_ET_EXTENT_NO_NEXT)
+ if (retval == EXT2_ET_EXTENT_NO_NEXT ||
+ retval == EXT2_ET_NO_CURRENT_NODE)
break;
if (retval)
goto errout;
@@ -286,10 +427,10 @@ errout:
* Deallocate all logical blocks starting at start to end, inclusive.
* If end is ~0, then this is effectively truncate.
*/
-extern errcode_t ext2fs_punch(ext2_filsys fs, ext2_ino_t ino,
- struct ext2_inode *inode,
- char *block_buf, blk64_t start,
- blk64_t end)
+errcode_t ext2fs_punch(ext2_filsys fs, ext2_ino_t ino,
+ struct ext2_inode *inode,
+ char *block_buf, blk64_t start,
+ blk64_t end)
{
errcode_t retval;
struct ext2_inode inode_buf;
@@ -297,9 +438,6 @@ extern errcode_t ext2fs_punch(ext2_filsys fs, ext2_ino_t ino,
if (start > end)
return EINVAL;
- if (start == end)
- return 0;
-
/* Read inode structure if necessary */
if (!inode) {
retval = ext2fs_read_inode(fs, ino, &inode_buf);
@@ -314,7 +452,9 @@ extern errcode_t ext2fs_punch(ext2_filsys fs, ext2_ino_t ino,
if (start > ~0U)
return 0;
- count = ((end - start) < ~0U) ? (end - start) : ~0U;
+ if (end > ~0U)
+ end = ~0U;
+ count = ((end - start + 1) < ~0U) ? (end - start + 1) : ~0U;
retval = ext2fs_punch_ind(fs, inode, block_buf,
(blk_t) start, count);
}
diff --git a/lib/ext2fs/qcow2.c b/lib/ext2fs/qcow2.c
index b0a02783..c7cdbee8 100644
--- a/lib/ext2fs/qcow2.c
+++ b/lib/ext2fs/qcow2.c
@@ -60,8 +60,10 @@ struct ext2_qcow2_hdr *qcow2_read_header(int fd)
return NULL;
memset(buffer, 0, sizeof(struct ext2_qcow2_hdr));
- if (ext2fs_llseek(fd, 0, SEEK_SET < 0))
+ if (ext2fs_llseek(fd, 0, SEEK_SET < 0)) {
+ ext2fs_free_mem(&buffer);
return NULL;
+ }
size = read(fd, buffer, sizeof(struct ext2_qcow2_hdr));
if (size != sizeof(struct ext2_qcow2_hdr)) {
@@ -91,8 +93,10 @@ static int qcow2_read_l1_table(struct ext2_qcow2_image *img)
if (ret)
return ret;
- if (ext2fs_llseek(fd, img->l1_offset, SEEK_SET) < 0)
+ if (ext2fs_llseek(fd, img->l1_offset, SEEK_SET) < 0) {
+ ext2fs_free_mem(&table);
return errno;
+ }
size = read(fd, table, l1_size);
if (size != l1_size) {
@@ -155,7 +159,7 @@ int qcow2_write_raw_image(int qcow2_fd, int raw_fd,
errcode_t ret = 0;
unsigned int l1_index, l2_index;
ext2_off64_t offset;
- blk64_t *l1_table, *l2_table;
+ blk64_t *l1_table, *l2_table = NULL;
void *copy_buf = NULL;
size_t size;
@@ -231,13 +235,17 @@ int qcow2_write_raw_image(int qcow2_fd, int raw_fd,
}
/* Resize the output image to the filesystem size */
- if (ext2fs_llseek(raw_fd, img.image_size - 1, SEEK_SET) < 0)
- return errno;
+ if (ext2fs_llseek(raw_fd, img.image_size - 1, SEEK_SET) < 0) {
+ ret = errno;
+ goto out;
+ }
((char *)copy_buf)[0] = 0;
size = write(raw_fd, copy_buf, 1);
- if (size != 1)
- return errno;
+ if (size != 1) {
+ ret = errno;
+ goto out;
+ }
out:
if (copy_buf)
diff --git a/lib/ext2fs/rbtree.c b/lib/ext2fs/rbtree.c
index 7467e10e..94393030 100644
--- a/lib/ext2fs/rbtree.c
+++ b/lib/ext2fs/rbtree.c
@@ -375,7 +375,7 @@ struct rb_node *ext2fs_rb_last(const struct rb_root *root)
return n;
}
-struct rb_node *ext2fs_rb_next(const struct rb_node *node)
+struct rb_node *ext2fs_rb_next(struct rb_node *node)
{
struct rb_node *parent;
@@ -403,7 +403,7 @@ struct rb_node *ext2fs_rb_next(const struct rb_node *node)
return parent;
}
-struct rb_node *ext2fs_rb_prev(const struct rb_node *node)
+struct rb_node *ext2fs_rb_prev(struct rb_node *node)
{
struct rb_node *parent;
diff --git a/lib/ext2fs/rbtree.h b/lib/ext2fs/rbtree.h
index 972297bf..3b0b0784 100644
--- a/lib/ext2fs/rbtree.h
+++ b/lib/ext2fs/rbtree.h
@@ -104,7 +104,7 @@ static inline struct page * rb_insert_page_cache(struct inode * inode,
#endif
#define container_of(ptr, type, member) ({ \
- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
+ const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
struct rb_node
@@ -158,8 +158,8 @@ extern void ext2fs_rb_augment_erase_end(struct rb_node *node,
rb_augment_f func, void *data);
/* Find logical next and previous nodes in a tree */
-extern struct rb_node *ext2fs_rb_next(const struct rb_node *);
-extern struct rb_node *ext2fs_rb_prev(const struct rb_node *);
+extern struct rb_node *ext2fs_rb_next(struct rb_node *);
+extern struct rb_node *ext2fs_rb_prev(struct rb_node *);
extern struct rb_node *ext2fs_rb_first(const struct rb_root *);
extern struct rb_node *ext2fs_rb_last(const struct rb_root *);
diff --git a/lib/ext2fs/read_bb_file.c b/lib/ext2fs/read_bb_file.c
index 7d7bb7aa..8d1ad1a5 100644
--- a/lib/ext2fs/read_bb_file.c
+++ b/lib/ext2fs/read_bb_file.c
@@ -39,7 +39,7 @@ errcode_t ext2fs_read_bb_FILE2(ext2_filsys fs, FILE *f,
void *priv_data))
{
errcode_t retval;
- blk_t blockno;
+ blk64_t blockno;
int count;
char buf[128];
@@ -55,9 +55,12 @@ errcode_t ext2fs_read_bb_FILE2(ext2_filsys fs, FILE *f,
while (!feof (f)) {
if (fgets(buf, sizeof(buf), f) == NULL)
break;
- count = sscanf(buf, "%u", &blockno);
+ count = sscanf(buf, "%llu", &blockno);
if (count <= 0)
continue;
+ /* Badblocks isn't going to be updated for 64bit */
+ if (blockno >> 32)
+ return EOVERFLOW;
if (fs &&
((blockno < fs->super->s_first_data_block) ||
(blockno >= ext2fs_blocks_count(fs->super)))) {
diff --git a/lib/ext2fs/res_gdt.c b/lib/ext2fs/res_gdt.c
index 6449228c..e61c3303 100644
--- a/lib/ext2fs/res_gdt.c
+++ b/lib/ext2fs/res_gdt.c
@@ -31,6 +31,19 @@ static unsigned int list_backups(ext2_filsys fs, unsigned int *three,
int mult = 3;
unsigned int ret;
+ if (fs->super->s_feature_compat & EXT4_FEATURE_COMPAT_SPARSE_SUPER2) {
+ if (*min == 1) {
+ *min += 1;
+ if (fs->super->s_backup_bgs[0])
+ return fs->super->s_backup_bgs[0];
+ }
+ if (*min == 2) {
+ *min += 1;
+ if (fs->super->s_backup_bgs[1])
+ return fs->super->s_backup_bgs[1];
+ }
+ return fs->group_desc_count;
+ }
if (!(fs->super->s_feature_ro_compat &
EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)) {
ret = *min;
diff --git a/lib/ext2fs/rw_bitmaps.c b/lib/ext2fs/rw_bitmaps.c
index 1d5f7b2b..d24ba9a3 100644
--- a/lib/ext2fs/rw_bitmaps.c
+++ b/lib/ext2fs/rw_bitmaps.c
@@ -53,8 +53,7 @@ static errcode_t write_bitmaps(ext2_filsys fs, int do_inode, int do_block)
inode_nbytes = block_nbytes = 0;
if (do_block) {
block_nbytes = EXT2_CLUSTERS_PER_GROUP(fs->super) / 8;
- retval = ext2fs_get_memalign(fs->blocksize, fs->blocksize,
- &block_buf);
+ retval = io_channel_alloc_buf(fs->io, 0, &block_buf);
if (retval)
goto errout;
memset(block_buf, 0xff, fs->blocksize);
@@ -62,8 +61,7 @@ static errcode_t write_bitmaps(ext2_filsys fs, int do_inode, int do_block)
if (do_inode) {
inode_nbytes = (size_t)
((EXT2_INODES_PER_GROUP(fs->super)+7) / 8);
- retval = ext2fs_get_memalign(fs->blocksize, fs->blocksize,
- &inode_buf);
+ retval = io_channel_alloc_buf(fs->io, 0, &inode_buf);
if (retval)
goto errout;
memset(inode_buf, 0xff, fs->blocksize);
@@ -147,6 +145,43 @@ errout:
return retval;
}
+static errcode_t mark_uninit_bg_group_blocks(ext2_filsys fs)
+{
+ dgrp_t i;
+ blk64_t blk;
+ ext2fs_block_bitmap bmap = fs->block_map;
+
+ for (i = 0; i < fs->group_desc_count; i++) {
+ if (!ext2fs_bg_flags_test(fs, i, EXT2_BG_BLOCK_UNINIT))
+ continue;
+
+ ext2fs_reserve_super_and_bgd(fs, i, bmap);
+
+ /*
+ * Mark the blocks used for the inode table
+ */
+ blk = ext2fs_inode_table_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap_range2(bmap, blk,
+ fs->inode_blocks_per_group);
+
+ /*
+ * Mark block used for the block bitmap
+ */
+ blk = ext2fs_block_bitmap_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap2(bmap, blk);
+
+ /*
+ * Mark block used for the inode bitmap
+ */
+ blk = ext2fs_inode_bitmap_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap2(bmap, blk);
+ }
+ return 0;
+}
+
static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
{
dgrp_t i;
@@ -156,7 +191,6 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
int block_nbytes = EXT2_CLUSTERS_PER_GROUP(fs->super) / 8;
int inode_nbytes = EXT2_INODES_PER_GROUP(fs->super) / 8;
int csum_flag = 0;
- int do_image = fs->flags & EXT2_FLAG_IMAGE_FILE;
unsigned int cnt;
blk64_t blk;
blk64_t blk_itr = EXT2FS_B2C(fs, fs->super->s_first_data_block);
@@ -166,6 +200,10 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+ if ((block_nbytes > (int) fs->blocksize) ||
+ (inode_nbytes > (int) fs->blocksize))
+ return EXT2_ET_CORRUPT_SUPERBLOCK;
+
fs->write_bitmaps = ext2fs_write_bitmaps;
if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
@@ -183,13 +221,7 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
retval = ext2fs_allocate_block_bitmap(fs, buf, &fs->block_map);
if (retval)
goto cleanup;
- if (do_image)
- retval = ext2fs_get_mem(fs->blocksize, &block_bitmap);
- else
- retval = ext2fs_get_memalign((unsigned) block_nbytes,
- fs->blocksize,
- &block_bitmap);
-
+ retval = io_channel_alloc_buf(fs->io, 0, &block_bitmap);
if (retval)
goto cleanup;
} else
@@ -202,8 +234,7 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
retval = ext2fs_allocate_inode_bitmap(fs, buf, &fs->inode_map);
if (retval)
goto cleanup;
- retval = ext2fs_get_mem(do_image ? fs->blocksize :
- (unsigned) inode_nbytes, &inode_bitmap);
+ retval = io_channel_alloc_buf(fs->io, 0, &inode_bitmap);
if (retval)
goto cleanup;
} else
@@ -261,7 +292,7 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
blk = 0;
if (blk) {
retval = io_channel_read_blk64(fs->io, blk,
- -block_nbytes, block_bitmap);
+ 1, block_bitmap);
if (retval) {
retval = EXT2_ET_BLOCK_BITMAP_READ;
goto cleanup;
@@ -283,7 +314,7 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
blk = 0;
if (blk) {
retval = io_channel_read_blk64(fs->io, blk,
- -inode_nbytes, inode_bitmap);
+ 1, inode_bitmap);
if (retval) {
retval = EXT2_ET_INODE_BITMAP_READ;
goto cleanup;
@@ -298,6 +329,14 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
ino_itr += inode_nbytes << 3;
}
}
+
+ /* Mark group blocks for any BLOCK_UNINIT groups */
+ if (do_block) {
+ retval = mark_uninit_bg_group_blocks(fs);
+ if (retval)
+ goto cleanup;
+ }
+
success_cleanup:
if (inode_bitmap)
ext2fs_free_mem(&inode_bitmap);
diff --git a/lib/ext2fs/sparse.c b/lib/ext2fs/sparse.c
deleted file mode 100644
index 3a0877b8..00000000
--- a/lib/ext2fs/sparse.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * sparse.c --- find the groups in an ext2 filesystem with metadata backups
- *
- * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
- * Copyright (C) 2002 Andreas Dilger.
- *
- * %Begin-Header%
- * This file may be redistributed under the terms of the GNU Library
- * General Public License, version 2.
- * %End-Header%
- */
-
-#include "config.h"
-#include <stdio.h>
-
-#include "ext2_fs.h"
-#include "ext2fsP.h"
-
-static int test_root(int a, int b)
-{
- if (a == 0)
- return 1;
- while (1) {
- if (a == 1)
- return 1;
- if (a % b)
- return 0;
- a = a / b;
- }
-}
-
-int ext2fs_bg_has_super(ext2_filsys fs, int group_block)
-{
- if (!(fs->super->s_feature_ro_compat &
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER))
- return 1;
-
- if (test_root(group_block, 3) || (test_root(group_block, 5)) ||
- test_root(group_block, 7))
- return 1;
-
- return 0;
-}
-
-/*
- * Iterate through the groups which hold BACKUP superblock/GDT copies in an
- * ext3 filesystem. The counters should be initialized to 1, 5, and 7 before
- * calling this for the first time. In a sparse filesystem it will be the
- * sequence of powers of 3, 5, and 7: 1, 3, 5, 7, 9, 25, 27, 49, 81, ...
- * For a non-sparse filesystem it will be every group: 1, 2, 3, 4, ...
- */
-unsigned int ext2fs_list_backups(ext2_filsys fs, unsigned int *three,
- unsigned int *five, unsigned int *seven)
-{
- unsigned int *min = three;
- int mult = 3;
- unsigned int ret;
-
- if (!(fs->super->s_feature_ro_compat &
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)) {
- ret = *min;
- *min += 1;
- return ret;
- }
-
- if (*five < *min) {
- min = five;
- mult = 5;
- }
- if (*seven < *min) {
- min = seven;
- mult = 7;
- }
-
- ret = *min;
- *min *= mult;
-
- return ret;
-}
diff --git a/lib/ext2fs/swapfs.c b/lib/ext2fs/swapfs.c
index 7c99373c..2a7b768c 100644
--- a/lib/ext2fs/swapfs.c
+++ b/lib/ext2fs/swapfs.c
@@ -99,10 +99,14 @@ void ext2fs_swap_super(struct ext2_super_block * sb)
}
for (; i < 17; i++)
sb->s_jnl_blocks[i] = ext2fs_swab32(sb->s_jnl_blocks[i]);
+ sb->s_backup_bgs[0] = ext2fs_swab32(sb->s_backup_bgs[0]);
+ sb->s_backup_bgs[1] = ext2fs_swab32(sb->s_backup_bgs[1]);
}
void ext2fs_swap_group_desc2(ext2_filsys fs, struct ext2_group_desc *gdp)
{
+ struct ext4_group_desc *gdp4 = (struct ext4_group_desc *)gdp;
+
/* Do the 32-bit parts first */
gdp->bg_block_bitmap = ext2fs_swab32(gdp->bg_block_bitmap);
gdp->bg_inode_bitmap = ext2fs_swab32(gdp->bg_inode_bitmap);
@@ -119,12 +123,10 @@ void ext2fs_swap_group_desc2(ext2_filsys fs, struct ext2_group_desc *gdp)
gdp->bg_itable_unused = ext2fs_swab16(gdp->bg_itable_unused);
gdp->bg_checksum = ext2fs_swab16(gdp->bg_checksum);
/* If we're 32-bit, we're done */
- if (fs && (!fs->super->s_desc_size ||
- (fs->super->s_desc_size < EXT2_MIN_DESC_SIZE_64BIT)))
+ if (fs == NULL || EXT2_DESC_SIZE(fs->super) < EXT2_MIN_DESC_SIZE_64BIT)
return;
/* Swap the 64-bit parts */
- struct ext4_group_desc *gdp4 = (struct ext4_group_desc *) gdp;
gdp4->bg_block_bitmap_hi = ext2fs_swab32(gdp4->bg_block_bitmap_hi);
gdp4->bg_inode_bitmap_hi = ext2fs_swab32(gdp4->bg_inode_bitmap_hi);
gdp4->bg_inode_table_hi = ext2fs_swab32(gdp4->bg_inode_table_hi);
diff --git a/lib/ext2fs/symlink.c b/lib/ext2fs/symlink.c
new file mode 100644
index 00000000..b2ef66c2
--- /dev/null
+++ b/lib/ext2fs/symlink.c
@@ -0,0 +1,150 @@
+/*
+ * symlink.c --- make a symlink in the filesystem, based on mkdir.c
+ *
+ * Copyright (c) 2012, Intel Corporation.
+ * All Rights Reserved.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <string.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <fcntl.h>
+#include <time.h>
+#if HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+errcode_t ext2fs_symlink(ext2_filsys fs, ext2_ino_t parent, ext2_ino_t ino,
+ const char *name, char *target)
+{
+ errcode_t retval;
+ struct ext2_inode inode;
+ ext2_ino_t scratch_ino;
+ blk64_t blk;
+ int fastlink;
+ unsigned int target_len;
+ char *block_buf = 0;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ /* The Linux kernel doesn't allow for links longer than a block */
+ target_len = strlen(target);
+ if (target_len > fs->blocksize) {
+ retval = EXT2_ET_INVALID_ARGUMENT;
+ goto cleanup;
+ }
+
+ /*
+ * Allocate a data block for slow links
+ */
+ fastlink = (target_len < sizeof(inode.i_block));
+ if (!fastlink) {
+ retval = ext2fs_new_block2(fs, 0, 0, &blk);
+ if (retval)
+ goto cleanup;
+ retval = ext2fs_get_mem(fs->blocksize, &block_buf);
+ if (retval)
+ goto cleanup;
+ }
+
+ /*
+ * Allocate an inode, if necessary
+ */
+ if (!ino) {
+ retval = ext2fs_new_inode(fs, parent, LINUX_S_IFLNK | 0755,
+ 0, &ino);
+ if (retval)
+ goto cleanup;
+ }
+
+ /*
+ * Create the inode structure....
+ */
+ memset(&inode, 0, sizeof(struct ext2_inode));
+ inode.i_mode = LINUX_S_IFLNK | 0777;
+ inode.i_uid = inode.i_gid = 0;
+ ext2fs_iblk_set(fs, &inode, fastlink ? 0 : 1);
+ inode.i_links_count = 1;
+ inode.i_size = target_len;
+ /* The time fields are set by ext2fs_write_new_inode() */
+
+ if (fastlink) {
+ /* Fast symlinks, target stored in inode */
+ strcpy((char *)&inode.i_block, target);
+ } else {
+ /* Slow symlinks, target stored in the first block */
+ memset(block_buf, 0, fs->blocksize);
+ strcpy(block_buf, target);
+ if (fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_EXTENTS) {
+ /*
+ * The extent bmap is setup after the inode and block
+ * have been written out below.
+ */
+ inode.i_flags |= EXT4_EXTENTS_FL;
+ }
+ }
+
+ /*
+ * Write out the inode and inode data block. The inode generation
+ * number is assigned by write_new_inode, which means that the
+ * operations using ino must come after it.
+ */
+ retval = ext2fs_write_new_inode(fs, ino, &inode);
+ if (retval)
+ goto cleanup;
+
+ if (!fastlink) {
+ retval = ext2fs_bmap2(fs, ino, &inode, NULL, BMAP_SET, 0, NULL,
+ &blk);
+ if (retval)
+ goto cleanup;
+
+ retval = io_channel_write_blk64(fs->io, blk, 1, block_buf);
+ if (retval)
+ goto cleanup;
+ }
+
+ /*
+ * Link the symlink into the filesystem hierarchy
+ */
+ if (name) {
+ retval = ext2fs_lookup(fs, parent, name, strlen(name), 0,
+ &scratch_ino);
+ if (!retval) {
+ retval = EXT2_ET_FILE_EXISTS;
+ goto cleanup;
+ }
+ if (retval != EXT2_ET_FILE_NOT_FOUND)
+ goto cleanup;
+ retval = ext2fs_link(fs, parent, name, ino, EXT2_FT_SYMLINK);
+ if (retval)
+ goto cleanup;
+ }
+
+ /*
+ * Update accounting....
+ */
+ if (!fastlink)
+ ext2fs_block_alloc_stats2(fs, blk, +1);
+ ext2fs_inode_alloc_stats2(fs, ino, +1, 0);
+
+cleanup:
+ if (block_buf)
+ ext2fs_free_mem(&block_buf);
+ return retval;
+}
diff --git a/lib/ext2fs/test_io.c b/lib/ext2fs/test_io.c
index f67f6aeb..2f1c4f66 100644
--- a/lib/ext2fs/test_io.c
+++ b/lib/ext2fs/test_io.c
@@ -10,6 +10,12 @@
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#include <stdio.h>
#include <string.h>
#if HAVE_UNISTD_H
@@ -57,45 +63,6 @@ struct test_private_data {
void (*write_blk64)(unsigned long long block, int count, errcode_t err);
};
-static errcode_t test_open(const char *name, int flags, io_channel *channel);
-static errcode_t test_close(io_channel channel);
-static errcode_t test_set_blksize(io_channel channel, int blksize);
-static errcode_t test_read_blk(io_channel channel, unsigned long block,
- int count, void *data);
-static errcode_t test_write_blk(io_channel channel, unsigned long block,
- int count, const void *data);
-static errcode_t test_read_blk64(io_channel channel, unsigned long long block,
- int count, void *data);
-static errcode_t test_write_blk64(io_channel channel, unsigned long long block,
- int count, const void *data);
-static errcode_t test_flush(io_channel channel);
-static errcode_t test_write_byte(io_channel channel, unsigned long offset,
- int count, const void *buf);
-static errcode_t test_set_option(io_channel channel, const char *option,
- const char *arg);
-static errcode_t test_get_stats(io_channel channel, io_stats *stats);
-static errcode_t test_discard(io_channel channel, unsigned long long block,
- unsigned long long count);
-
-static struct struct_io_manager struct_test_manager = {
- EXT2_ET_MAGIC_IO_MANAGER,
- "Test I/O Manager",
- test_open,
- test_close,
- test_set_blksize,
- test_read_blk,
- test_write_blk,
- test_flush,
- test_write_byte,
- test_set_option,
- test_get_stats,
- test_read_blk64,
- test_write_blk64,
- test_discard,
-};
-
-io_manager test_io_manager = &struct_test_manager;
-
/*
* These global variable can be set by the test program as
* necessary *before* calling test_open
@@ -145,6 +112,28 @@ static void test_dump_block(io_channel channel,
}
}
+/*
+ * Flush data buffers to disk.
+ */
+static errcode_t test_flush(io_channel channel)
+{
+ struct test_private_data *data;
+ errcode_t retval = 0;
+
+ EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
+ data = (struct test_private_data *)channel->private_data;
+ EXT2_CHECK_MAGIC(data, EXT2_ET_MAGIC_TEST_IO_CHANNEL);
+
+ if (data->real)
+ retval = io_channel_flush(data->real);
+
+ if (data->flags & TEST_FLAG_FLUSH)
+ fprintf(data->outfile, "Test_io: flush() returned %s\n",
+ retval ? error_message(retval) : "OK");
+
+ return retval;
+}
+
static void test_abort(io_channel channel, unsigned long block)
{
struct test_private_data *data;
@@ -173,7 +162,9 @@ static char *safe_getenv(const char *arg)
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
@@ -216,14 +207,15 @@ static errcode_t test_open(const char *name, int flags, io_channel *channel)
&data->real);
if (retval)
goto cleanup;
- } else
+ } else {
data->real = 0;
- data->read_blk = test_io_cb_read_blk;
- data->write_blk = test_io_cb_write_blk;
- data->set_blksize = test_io_cb_set_blksize;
- data->write_byte = test_io_cb_write_byte;
- data->read_blk64 = test_io_cb_read_blk64;
- data->write_blk64 = test_io_cb_write_blk64;
+ }
+ data->read_blk = test_io_cb_read_blk;
+ data->write_blk = test_io_cb_write_blk;
+ data->set_blksize = test_io_cb_set_blksize;
+ data->write_byte = test_io_cb_write_byte;
+ data->read_blk64 = test_io_cb_read_blk64;
+ data->write_blk64 = test_io_cb_write_blk64;
data->outfile = NULL;
if ((value = safe_getenv("TEST_IO_LOGFILE")) != NULL)
@@ -247,6 +239,9 @@ static errcode_t test_open(const char *name, int flags, io_channel *channel)
if ((value = safe_getenv("TEST_IO_WRITE_ABORT")) != NULL)
data->write_abort_count = strtoul(value, NULL, 0);
+ if (data->real)
+ io->align = data->real->align;
+
*channel = io;
return 0;
@@ -292,8 +287,10 @@ static errcode_t test_set_blksize(io_channel channel, int blksize)
data = (struct test_private_data *) channel->private_data;
EXT2_CHECK_MAGIC(data, EXT2_ET_MAGIC_TEST_IO_CHANNEL);
- if (data->real)
+ if (data->real) {
retval = io_channel_set_blksize(data->real, blksize);
+ channel->align = data->real->align;
+ }
if (data->set_blksize)
data->set_blksize(blksize, retval);
if (data->flags & TEST_FLAG_SET_BLKSIZE)
@@ -434,28 +431,6 @@ static errcode_t test_write_byte(io_channel channel, unsigned long offset,
return retval;
}
-/*
- * Flush data buffers to disk.
- */
-static errcode_t test_flush(io_channel channel)
-{
- struct test_private_data *data;
- errcode_t retval = 0;
-
- EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
- data = (struct test_private_data *) channel->private_data;
- EXT2_CHECK_MAGIC(data, EXT2_ET_MAGIC_TEST_IO_CHANNEL);
-
- if (data->real)
- retval = io_channel_flush(data->real);
-
- if (data->flags & TEST_FLAG_FLUSH)
- fprintf(data->outfile, "Test_io: flush() returned %s\n",
- retval ? error_message(retval) : "OK");
-
- return retval;
-}
-
static errcode_t test_set_option(io_channel channel, const char *option,
const char *arg)
{
@@ -516,3 +491,22 @@ static errcode_t test_discard(io_channel channel, unsigned long long block,
block, count, retval ? error_message(retval) : "OK");
return retval;
}
+
+static struct struct_io_manager struct_test_manager = {
+ EXT2_ET_MAGIC_IO_MANAGER,
+ "Test I/O Manager",
+ test_open,
+ test_close,
+ test_set_blksize,
+ test_read_blk,
+ test_write_blk,
+ test_flush,
+ test_write_byte,
+ test_set_option,
+ test_get_stats,
+ test_read_blk64,
+ test_write_blk64,
+ test_discard,
+};
+
+io_manager test_io_manager = &struct_test_manager;
diff --git a/lib/ext2fs/tst_bitmaps.c b/lib/ext2fs/tst_bitmaps.c
index 27722e53..4e02aded 100644
--- a/lib/ext2fs/tst_bitmaps.c
+++ b/lib/ext2fs/tst_bitmaps.c
@@ -151,7 +151,7 @@ int check_fs_open(char *name)
static void setup_filesystem(const char *name,
unsigned int blocks, unsigned int inodes,
- unsigned int type)
+ unsigned int type, int flags)
{
struct ext2_super_block param;
errcode_t retval;
@@ -160,7 +160,7 @@ static void setup_filesystem(const char *name,
ext2fs_blocks_count_set(&param, blocks);
param.s_inodes_count = inodes;
- retval = ext2fs_initialize("test fs", EXT2_FLAG_64BITS, &param,
+ retval = ext2fs_initialize("test fs", flags, &param,
test_io_manager, &test_fs);
if (retval) {
@@ -193,11 +193,11 @@ errout:
void setup_cmd(int argc, char **argv)
{
- errcode_t retval;
- int i, c, err;
+ int c, err;
unsigned int blocks = 128;
unsigned int inodes = 0;
unsigned int type = EXT2FS_BMAP64_BITARRAY;
+ int flags = EXT2_FLAG_64BITS;
if (test_fs) {
ext2fs_close(test_fs);
@@ -205,7 +205,7 @@ void setup_cmd(int argc, char **argv)
}
reset_getopt();
- while ((c = getopt(argc, argv, "b:i:t:")) != EOF) {
+ while ((c = getopt(argc, argv, "b:i:lt:")) != EOF) {
switch (c) {
case 'b':
blocks = parse_ulong(optarg, argv[0],
@@ -219,6 +219,9 @@ void setup_cmd(int argc, char **argv)
if (err)
return;
break;
+ case 'l': /* Legacy bitmaps */
+ flags = 0;
+ break;
case 't':
type = parse_ulong(optarg, argv[0],
"bitmap backend type", &err);
@@ -231,7 +234,7 @@ void setup_cmd(int argc, char **argv)
return;
}
}
- setup_filesystem(argv[0], blocks, inodes, type);
+ setup_filesystem(argv[0], blocks, inodes, type, flags);
}
void close_cmd(int argc, char **argv)
@@ -266,6 +269,7 @@ void dump_bitmap(ext2fs_generic_bitmap bmap, unsigned int start, unsigned num)
for (i=0; i < len; i++)
printf("%02x", buf[i]);
printf("\n");
+ printf("bits set: %u\n", ext2fs_bitcount(buf, len));
free(buf);
}
@@ -368,7 +372,7 @@ void do_testb(int argc, char *argv[])
{
unsigned int block, num;
int err;
- int test_result, op_result;
+ int test_result;
if (check_fs_open(argv[0]))
return;
@@ -399,6 +403,73 @@ void do_testb(int argc, char *argv[])
printf("Block %u is %s\n", block, test_result ? "set" : "clear");
}
+void do_ffzb(int argc, char *argv[])
+{
+ unsigned int start, end;
+ int err;
+ errcode_t retval;
+ blk64_t out;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ if (argc != 3 && argc != 3) {
+ com_err(argv[0], 0, "Usage: ffzb <start> <end>");
+ return;
+ }
+
+ start = parse_ulong(argv[1], argv[0], "start", &err);
+ if (err)
+ return;
+
+ end = parse_ulong(argv[2], argv[0], "end", &err);
+ if (err)
+ return;
+
+ retval = ext2fs_find_first_zero_block_bitmap2(test_fs->block_map,
+ start, end, &out);
+ if (retval) {
+ printf("ext2fs_find_first_zero_block_bitmap2() returned %s\n",
+ error_message(retval));
+ return;
+ }
+ printf("First unmarked block is %llu\n", out);
+}
+
+void do_ffsb(int argc, char *argv[])
+{
+ unsigned int start, end;
+ int err;
+ errcode_t retval;
+ blk64_t out;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ if (argc != 3 && argc != 3) {
+ com_err(argv[0], 0, "Usage: ffsb <start> <end>");
+ return;
+ }
+
+ start = parse_ulong(argv[1], argv[0], "start", &err);
+ if (err)
+ return;
+
+ end = parse_ulong(argv[2], argv[0], "end", &err);
+ if (err)
+ return;
+
+ retval = ext2fs_find_first_set_block_bitmap2(test_fs->block_map,
+ start, end, &out);
+ if (retval) {
+ printf("ext2fs_find_first_set_block_bitmap2() returned %s\n",
+ error_message(retval));
+ return;
+ }
+ printf("First marked block is %llu\n", out);
+}
+
+
void do_zerob(int argc, char *argv[])
{
if (check_fs_open(argv[0]))
@@ -470,7 +541,7 @@ void do_testi(int argc, char *argv[])
{
unsigned int inode;
int err;
- int test_result, op_result;
+ int test_result;
if (check_fs_open(argv[0]))
return;
@@ -488,6 +559,72 @@ void do_testi(int argc, char *argv[])
printf("Inode %u is %s\n", inode, test_result ? "set" : "clear");
}
+void do_ffzi(int argc, char *argv[])
+{
+ unsigned int start, end;
+ int err;
+ errcode_t retval;
+ ext2_ino_t out;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ if (argc != 3 && argc != 3) {
+ com_err(argv[0], 0, "Usage: ffzi <start> <end>");
+ return;
+ }
+
+ start = parse_ulong(argv[1], argv[0], "start", &err);
+ if (err)
+ return;
+
+ end = parse_ulong(argv[2], argv[0], "end", &err);
+ if (err)
+ return;
+
+ retval = ext2fs_find_first_zero_inode_bitmap2(test_fs->inode_map,
+ start, end, &out);
+ if (retval) {
+ printf("ext2fs_find_first_zero_inode_bitmap2() returned %s\n",
+ error_message(retval));
+ return;
+ }
+ printf("First unmarked inode is %u\n", out);
+}
+
+void do_ffsi(int argc, char *argv[])
+{
+ unsigned int start, end;
+ int err;
+ errcode_t retval;
+ ext2_ino_t out;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ if (argc != 3 && argc != 3) {
+ com_err(argv[0], 0, "Usage: ffsi <start> <end>");
+ return;
+ }
+
+ start = parse_ulong(argv[1], argv[0], "start", &err);
+ if (err)
+ return;
+
+ end = parse_ulong(argv[2], argv[0], "end", &err);
+ if (err)
+ return;
+
+ retval = ext2fs_find_first_set_inode_bitmap2(test_fs->inode_map,
+ start, end, &out);
+ if (retval) {
+ printf("ext2fs_find_first_set_inode_bitmap2() returned %s\n",
+ error_message(retval));
+ return;
+ }
+ printf("First marked inode is %u\n", out);
+}
+
void do_zeroi(int argc, char *argv[])
{
if (check_fs_open(argv[0]))
@@ -506,28 +643,32 @@ int main(int argc, char **argv)
char *request = (char *)NULL;
char *cmd_file = 0;
int sci_idx;
+ int flags = EXT2_FLAG_64BITS;
add_error_table(&et_ss_error_table);
add_error_table(&et_ext2_error_table);
- while ((c = getopt (argc, argv, "b:i:t:R:f:")) != EOF) {
+ while ((c = getopt (argc, argv, "b:i:lt:R:f:")) != EOF) {
switch (c) {
case 'b':
blocks = parse_ulong(optarg, argv[0],
"number of blocks", &err);
if (err)
- return;
+ exit(1);
break;
case 'i':
inodes = parse_ulong(optarg, argv[0],
"number of blocks", &err);
if (err)
- return;
+ exit(1);
+ break;
+ case 'l': /* Legacy bitmaps */
+ flags = 0;
break;
case 't':
type = parse_ulong(optarg, argv[0],
"bitmap backend type", &err);
if (err)
- return;
+ exit(1);
break;
case 'R':
request = optarg;
@@ -558,7 +699,7 @@ int main(int argc, char **argv)
printf("%s %s. Type '?' for a list of commands.\n\n",
subsystem_name, version);
- setup_filesystem(argv[0], blocks, inodes, type);
+ setup_filesystem(argv[0], blocks, inodes, type, flags);
if (request) {
code = ss_execute_line(sci_idx, request);
diff --git a/lib/ext2fs/tst_bitmaps_cmd.ct b/lib/ext2fs/tst_bitmaps_cmd.ct
index 5a51d23c..13b7fa7c 100644
--- a/lib/ext2fs/tst_bitmaps_cmd.ct
+++ b/lib/ext2fs/tst_bitmaps_cmd.ct
@@ -21,6 +21,12 @@ request do_clearb, "Clear block",
request do_testb, "Test block",
test_block, testb;
+request do_ffzb, "Find first zero block",
+ find_first_zero_block, ffzb;
+
+request do_ffsb, "Find first set block",
+ find_first_set_block, ffsb;
+
request do_zerob, "Clear block bitmap",
clear_block_bitmap, zerob;
@@ -33,6 +39,12 @@ request do_cleari, "Clear inode",
request do_testi, "Test inode",
test_inode, testi;
+request do_ffzi, "Find first zero inode",
+ find_first_zero_inode, ffzi;
+
+request do_ffsi, "Find first set inode",
+ find_first_set_inode, ffsi;
+
request do_zeroi, "Clear inode bitmap",
clear_inode_bitmap, zeroi;
diff --git a/lib/ext2fs/tst_bitmaps_cmds b/lib/ext2fs/tst_bitmaps_cmds
index 13f4ea83..7492592f 100644
--- a/lib/ext2fs/tst_bitmaps_cmds
+++ b/lib/ext2fs/tst_bitmaps_cmds
@@ -16,6 +16,21 @@ testb 11
testb 15
testb 16
dump_bb
+ffzb 11 16
+ffzb 12 16
+ffzb 12 20
+ffsb 0 127
+ffsb 1 128
+ffsb 1 127
+ffsb 1 10
+ffsb 1 11
+ffsb 12 12
+ffsb 13 12
+ffsb 12 15
+clearb 13
+ffzb 12 20
+ffsb 13 18
+setb 13
clearb 12 7
testb 12 7
setb 15
@@ -33,6 +48,18 @@ seti 5
testi 6
testi 1
dump_ib
+ffzi 1 6
+ffzi 2 5
+ffzi 2 6
+ffsi 0 31
+ffsi 1 33
+ffsi 1 32
+ffsi 2 32
+ffsi 6 32
+cleari 4
+ffzi 2 6
+ffsi 4 32
+ffsi 5 32
zeroi
testi 5
seti 5
@@ -42,5 +69,80 @@ cleari 5
testi 17
testi 6
testi 4
+clearb 7 12
+dump_bb
+setb 1
+dump_bb
+setb 2
+dump_bb
+setb 3
+dump_bb
+setb 4
+dump_bb
+setb 5
+dump_bb
+setb 6
+dump_bb
+setb 7
+dump_bb
+setb 8
+dump_bb
+setb 10
+setb 12
+setb 14
+setb 17
+setb 19
+setb 24
+setb 26
+setb 27
+setb 30
+setb 31
+setb 32
+setb 35
+setb 39
+setb 40
+setb 44
+setb 46
+setb 47
+setb 49
+setb 51
+setb 52
+clearb 2
+clearb 3
+clearb 7
+dump_bb
+ffsb 14 127
+ffsb 15 127
+ffsb 36 127
+ffsb 32 127
+ffsb 52 127
+ffsb 53 127
+ffsb 46 127
+ffsb 45 127
+ffsb 41 127
+ffsb 20 127
+ffsb 1 127
+ffsb 2 127
+ffsb 3 127
+ffsb 4 127
+ffsb 5 127
+ffsb 6 127
+ffsb 7 127
+ffsb 8 127
+ffzb 1 127
+ffzb 2 127
+ffzb 3 127
+ffzb 4 127
+ffzb 5 127
+ffzb 6 127
+ffzb 7 127
+ffzb 8 127
+ffzb 45 127
+ffzb 46 127
+ffzb 47 127
+ffzb 48 127
+ffzb 49 127
+ffzb 50 127
+ffzb 51 127
quit
diff --git a/lib/ext2fs/tst_bitmaps_exp b/lib/ext2fs/tst_bitmaps_exp
index aa64ae72..6b226662 100644
--- a/lib/ext2fs/tst_bitmaps_exp
+++ b/lib/ext2fs/tst_bitmaps_exp
@@ -36,6 +36,37 @@ tst_bitmaps: testb 16
Block 16 is set
tst_bitmaps: dump_bb
block bitmap: 00f80000000000000000000000000000
+bits set: 5
+tst_bitmaps: ffzb 11 16
+First unmarked block is 11
+tst_bitmaps: ffzb 12 16
+ext2fs_find_first_zero_block_bitmap2() returned No such file or directory
+tst_bitmaps: ffzb 12 20
+First unmarked block is 17
+tst_bitmaps: ffsb 0 127
+ext2fs_find_first_set_block_bitmap2() returned Invalid argument
+tst_bitmaps: ffsb 1 128
+ext2fs_find_first_set_block_bitmap2() returned Invalid argument
+tst_bitmaps: ffsb 1 127
+First marked block is 12
+tst_bitmaps: ffsb 1 10
+ext2fs_find_first_set_block_bitmap2() returned No such file or directory
+tst_bitmaps: ffsb 1 11
+ext2fs_find_first_set_block_bitmap2() returned No such file or directory
+tst_bitmaps: ffsb 12 12
+First marked block is 12
+tst_bitmaps: ffsb 13 12
+ext2fs_find_first_set_block_bitmap2() returned Invalid argument
+tst_bitmaps: ffsb 12 15
+First marked block is 12
+tst_bitmaps: clearb 13
+Clearing block 13, was set before
+tst_bitmaps: ffzb 12 20
+First unmarked block is 13
+tst_bitmaps: ffsb 13 18
+First marked block is 14
+tst_bitmaps: setb 13
+Setting block 13, was clear before
tst_bitmaps: clearb 12 7
Clearing blocks 12 to 18
tst_bitmaps: testb 12 7
@@ -52,6 +83,7 @@ tst_bitmaps: setb 12 7
Marking blocks 12 to 18
tst_bitmaps: dump_bb
block bitmap: 00f80300000000000000000000000000
+bits set: 7
tst_bitmaps: seti 2
Setting inode 2, was clear before
tst_bitmaps: seti 5
@@ -70,6 +102,31 @@ tst_bitmaps: testi 1
Inode 1 is clear
tst_bitmaps: dump_ib
inode bitmap: 1e000000
+bits set: 4
+tst_bitmaps: ffzi 1 6
+First unmarked inode is 1
+tst_bitmaps: ffzi 2 5
+ext2fs_find_first_zero_inode_bitmap2() returned No such file or directory
+tst_bitmaps: ffzi 2 6
+First unmarked inode is 6
+tst_bitmaps: ffsi 0 31
+ext2fs_find_first_set_inode_bitmap2() returned Invalid argument
+tst_bitmaps: ffsi 1 33
+ext2fs_find_first_set_inode_bitmap2() returned Invalid argument
+tst_bitmaps: ffsi 1 32
+First marked inode is 2
+tst_bitmaps: ffsi 2 32
+First marked inode is 2
+tst_bitmaps: ffsi 6 32
+ext2fs_find_first_set_inode_bitmap2() returned No such file or directory
+tst_bitmaps: cleari 4
+Clearing inode 4, was set before
+tst_bitmaps: ffzi 2 6
+First unmarked inode is 4
+tst_bitmaps: ffsi 4 32
+First marked inode is 5
+tst_bitmaps: ffsi 5 32
+First marked inode is 5
tst_bitmaps: zeroi
Clearing inode bitmap.
tst_bitmaps: testi 5
@@ -88,5 +145,165 @@ tst_bitmaps: testi 6
Inode 6 is clear
tst_bitmaps: testi 4
Inode 4 is clear
+tst_bitmaps: clearb 7 12
+Clearing blocks 7 to 18
+tst_bitmaps: dump_bb
+block bitmap: 00000000000000000000000000000000
+bits set: 0
+tst_bitmaps: setb 1
+Setting block 1, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 01000000000000000000000000000000
+bits set: 1
+tst_bitmaps: setb 2
+Setting block 2, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 03000000000000000000000000000000
+bits set: 2
+tst_bitmaps: setb 3
+Setting block 3, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 07000000000000000000000000000000
+bits set: 3
+tst_bitmaps: setb 4
+Setting block 4, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 0f000000000000000000000000000000
+bits set: 4
+tst_bitmaps: setb 5
+Setting block 5, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 1f000000000000000000000000000000
+bits set: 5
+tst_bitmaps: setb 6
+Setting block 6, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 3f000000000000000000000000000000
+bits set: 6
+tst_bitmaps: setb 7
+Setting block 7, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 7f000000000000000000000000000000
+bits set: 7
+tst_bitmaps: setb 8
+Setting block 8, was clear before
+tst_bitmaps: dump_bb
+block bitmap: ff000000000000000000000000000000
+bits set: 8
+tst_bitmaps: setb 10
+Setting block 10, was clear before
+tst_bitmaps: setb 12
+Setting block 12, was clear before
+tst_bitmaps: setb 14
+Setting block 14, was clear before
+tst_bitmaps: setb 17
+Setting block 17, was clear before
+tst_bitmaps: setb 19
+Setting block 19, was clear before
+tst_bitmaps: setb 24
+Setting block 24, was clear before
+tst_bitmaps: setb 26
+Setting block 26, was clear before
+tst_bitmaps: setb 27
+Setting block 27, was clear before
+tst_bitmaps: setb 30
+Setting block 30, was clear before
+tst_bitmaps: setb 31
+Setting block 31, was clear before
+tst_bitmaps: setb 32
+Setting block 32, was clear before
+tst_bitmaps: setb 35
+Setting block 35, was clear before
+tst_bitmaps: setb 39
+Setting block 39, was clear before
+tst_bitmaps: setb 40
+Setting block 40, was clear before
+tst_bitmaps: setb 44
+Setting block 44, was clear before
+tst_bitmaps: setb 46
+Setting block 46, was clear before
+tst_bitmaps: setb 47
+Setting block 47, was clear before
+tst_bitmaps: setb 49
+Setting block 49, was clear before
+tst_bitmaps: setb 51
+Setting block 51, was clear before
+tst_bitmaps: setb 52
+Setting block 52, was clear before
+tst_bitmaps: clearb 2
+Clearing block 2, was set before
+tst_bitmaps: clearb 3
+Clearing block 3, was set before
+tst_bitmaps: clearb 7
+Clearing block 7, was set before
+tst_bitmaps: dump_bb
+block bitmap: b92a85e6c4680d000000000000000000
+bits set: 25
+tst_bitmaps: ffsb 14 127
+First marked block is 14
+tst_bitmaps: ffsb 15 127
+First marked block is 17
+tst_bitmaps: ffsb 36 127
+First marked block is 39
+tst_bitmaps: ffsb 32 127
+First marked block is 32
+tst_bitmaps: ffsb 52 127
+First marked block is 52
+tst_bitmaps: ffsb 53 127
+ext2fs_find_first_set_block_bitmap2() returned No such file or directory
+tst_bitmaps: ffsb 46 127
+First marked block is 46
+tst_bitmaps: ffsb 45 127
+First marked block is 46
+tst_bitmaps: ffsb 41 127
+First marked block is 44
+tst_bitmaps: ffsb 20 127
+First marked block is 24
+tst_bitmaps: ffsb 1 127
+First marked block is 1
+tst_bitmaps: ffsb 2 127
+First marked block is 4
+tst_bitmaps: ffsb 3 127
+First marked block is 4
+tst_bitmaps: ffsb 4 127
+First marked block is 4
+tst_bitmaps: ffsb 5 127
+First marked block is 5
+tst_bitmaps: ffsb 6 127
+First marked block is 6
+tst_bitmaps: ffsb 7 127
+First marked block is 8
+tst_bitmaps: ffsb 8 127
+First marked block is 8
+tst_bitmaps: ffzb 1 127
+First unmarked block is 2
+tst_bitmaps: ffzb 2 127
+First unmarked block is 2
+tst_bitmaps: ffzb 3 127
+First unmarked block is 3
+tst_bitmaps: ffzb 4 127
+First unmarked block is 7
+tst_bitmaps: ffzb 5 127
+First unmarked block is 7
+tst_bitmaps: ffzb 6 127
+First unmarked block is 7
+tst_bitmaps: ffzb 7 127
+First unmarked block is 7
+tst_bitmaps: ffzb 8 127
+First unmarked block is 9
+tst_bitmaps: ffzb 45 127
+First unmarked block is 45
+tst_bitmaps: ffzb 46 127
+First unmarked block is 48
+tst_bitmaps: ffzb 47 127
+First unmarked block is 48
+tst_bitmaps: ffzb 48 127
+First unmarked block is 48
+tst_bitmaps: ffzb 49 127
+First unmarked block is 50
+tst_bitmaps: ffzb 50 127
+First unmarked block is 50
+tst_bitmaps: ffzb 51 127
+First unmarked block is 53
tst_bitmaps: quit
tst_bitmaps:
diff --git a/lib/ext2fs/tst_inode_size.c b/lib/ext2fs/tst_inode_size.c
index 3e43d9f4..e20ec981 100644
--- a/lib/ext2fs/tst_inode_size.c
+++ b/lib/ext2fs/tst_inode_size.c
@@ -18,7 +18,10 @@
struct ext2_inode_large inode;
+#ifndef offsetof
#define offsetof(type, member) __builtin_offsetof(type, member)
+#endif
+
#define check_field(x, s) cur_offset = do_field(#x, s, sizeof(inode.x), \
offsetof(struct ext2_inode_large, x), \
cur_offset)
diff --git a/lib/ext2fs/tst_iscan.c b/lib/ext2fs/tst_iscan.c
index 6f783c38..70bfbecc 100644
--- a/lib/ext2fs/tst_iscan.c
+++ b/lib/ext2fs/tst_iscan.c
@@ -26,7 +26,7 @@
#include "ext2_fs.h"
#include "ext2fs.h"
-blk_t test_vec[] = { 8, 12, 24, 34, 43, 44, 100, 0 };
+blk64_t test_vec[] = { 8, 12, 24, 34, 43, 44, 100, 0 };
ext2_filsys test_fs;
ext2fs_block_bitmap bad_block_map, touched_map;
@@ -182,7 +182,7 @@ static void check_map(void)
for (i=0; test_vec[i]; i++) {
if (ext2fs_test_block_bitmap2(touched_map, test_vec[i])) {
- printf("Bad block was touched --- %u\n", test_vec[i]);
+ printf("Bad block was touched --- %llu\n", test_vec[i]);
failed++;
first_no_comma = 1;
}
diff --git a/lib/ext2fs/tst_super_size.c b/lib/ext2fs/tst_super_size.c
index 76e6e6fe..f9cec8af 100644
--- a/lib/ext2fs/tst_super_size.c
+++ b/lib/ext2fs/tst_super_size.c
@@ -21,7 +21,10 @@
struct sb_struct sb;
+#ifndef offsetof
#define offsetof(type, member) __builtin_offsetof (type, member)
+#endif
+
#define check_field(x, s) cur_offset = do_field(#x, s, sizeof(sb.x), \
offsetof(struct sb_struct, x), \
cur_offset)
@@ -132,7 +135,8 @@ int main(int argc, char **argv)
check_field(s_usr_quota_inum, 4);
check_field(s_grp_quota_inum, 4);
check_field(s_overhead_blocks, 4);
- check_field(s_reserved, 108 * 4);
+ check_field(s_backup_bgs, 8);
+ check_field(s_reserved, 106 * 4);
check_field(s_checksum, 4);
do_field("Superblock end", 0, 0, cur_offset, 1024);
#endif
diff --git a/lib/ext2fs/undo_io.c b/lib/ext2fs/undo_io.c
index 56b0eeb5..0e05c933 100644
--- a/lib/ext2fs/undo_io.c
+++ b/lib/ext2fs/undo_io.c
@@ -71,42 +71,7 @@ struct undo_private_data {
ext2_loff_t offset;
};
-static errcode_t undo_open(const char *name, int flags, io_channel *channel);
-static errcode_t undo_close(io_channel channel);
-static errcode_t undo_set_blksize(io_channel channel, int blksize);
-static errcode_t undo_read_blk64(io_channel channel, unsigned long long block,
- int count, void *data);
-static errcode_t undo_write_blk64(io_channel channel, unsigned long long block,
- int count, const void *data);
-static errcode_t undo_read_blk(io_channel channel, unsigned long block,
- int count, void *data);
-static errcode_t undo_write_blk(io_channel channel, unsigned long block,
- int count, const void *data);
-static errcode_t undo_flush(io_channel channel);
-static errcode_t undo_write_byte(io_channel channel, unsigned long offset,
- int size, const void *data);
-static errcode_t undo_set_option(io_channel channel, const char *option,
- const char *arg);
-static errcode_t undo_get_stats(io_channel channel, io_stats *stats);
-
-static struct struct_io_manager struct_undo_manager = {
- EXT2_ET_MAGIC_IO_MANAGER,
- "Undo I/O Manager",
- undo_open,
- undo_close,
- undo_set_blksize,
- undo_read_blk,
- undo_write_blk,
- undo_flush,
- undo_write_byte,
- undo_set_option,
- undo_get_stats,
- undo_read_blk64,
- undo_write_blk64,
-};
-
-io_manager undo_io_manager = &struct_undo_manager;
-static io_manager undo_io_backing_manager ;
+static io_manager undo_io_backing_manager;
static char *tdb_file;
static int actual_size;
@@ -621,3 +586,21 @@ static errcode_t undo_get_stats(io_channel channel, io_stats *stats)
return retval;
}
+
+static struct struct_io_manager struct_undo_manager = {
+ EXT2_ET_MAGIC_IO_MANAGER,
+ "Undo I/O Manager",
+ undo_open,
+ undo_close,
+ undo_set_blksize,
+ undo_read_blk,
+ undo_write_blk,
+ undo_flush,
+ undo_write_byte,
+ undo_set_option,
+ undo_get_stats,
+ undo_read_blk64,
+ undo_write_blk64,
+};
+
+io_manager undo_io_manager = &struct_undo_manager;
diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c
index da3f8fde..c3185b6a 100644
--- a/lib/ext2fs/unix_io.c
+++ b/lib/ext2fs/unix_io.c
@@ -1,13 +1,13 @@
/*
* unix_io.c --- This is the Unix (well, really POSIX) implementation
- * of the I/O manager.
+ * of the I/O manager.
*
* Implements a one-block write-through cache.
*
* Includes support for Windows NT support under Cygwin.
*
* Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- * 2002 by Theodore Ts'o.
+ * 2002 by Theodore Ts'o.
*
* %Begin-Header%
* This file may be redistributed under the terms of the GNU Library
@@ -58,10 +58,6 @@
#define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */
#endif
-#if defined(__linux__) && defined(_IO) && !defined(BLKSSZGET)
-#define BLKSSZGET _IO(0x12,104)/* get block device sector size */
-#endif
-
#undef ALIGN_DEBUG
#include "ext2_fs.h"
@@ -75,11 +71,11 @@
if ((struct)->magic != (code)) return (code)
struct unix_cache {
- char *buf;
- unsigned long block;
- int access_time;
- unsigned dirty:1;
- unsigned in_use:1;
+ char *buf;
+ unsigned long long block;
+ int access_time;
+ unsigned dirty:1;
+ unsigned in_use:1;
};
#define CACHE_SIZE 8
@@ -101,51 +97,9 @@ struct unix_private_data {
#define IS_ALIGNED(n, align) ((((unsigned long) n) & \
((unsigned long) ((align)-1))) == 0)
-static errcode_t unix_open(const char *name, int flags, io_channel *channel);
-static errcode_t unix_close(io_channel channel);
-static errcode_t unix_set_blksize(io_channel channel, int blksize);
-static errcode_t unix_read_blk(io_channel channel, unsigned long block,
- int count, void *data);
-static errcode_t unix_write_blk(io_channel channel, unsigned long block,
- int count, const void *data);
-static errcode_t unix_flush(io_channel channel);
-static errcode_t unix_write_byte(io_channel channel, unsigned long offset,
- int size, const void *data);
-static errcode_t unix_set_option(io_channel channel, const char *option,
- const char *arg);
-static errcode_t unix_get_stats(io_channel channel, io_stats *stats)
-;
-static void reuse_cache(io_channel channel, struct unix_private_data *data,
- struct unix_cache *cache, unsigned long long block);
-static errcode_t unix_read_blk64(io_channel channel, unsigned long long block,
- int count, void *data);
-static errcode_t unix_write_blk64(io_channel channel, unsigned long long block,
- int count, const void *data);
-static errcode_t unix_discard(io_channel channel, unsigned long long block,
- unsigned long long count);
-
-static struct struct_io_manager struct_unix_manager = {
- EXT2_ET_MAGIC_IO_MANAGER,
- "Unix I/O Manager",
- unix_open,
- unix_close,
- unix_set_blksize,
- unix_read_blk,
- unix_write_blk,
- unix_flush,
- unix_write_byte,
- unix_set_option,
- unix_get_stats,
- unix_read_blk64,
- unix_write_blk64,
- unix_discard,
-};
-
-io_manager unix_io_manager = &struct_unix_manager;
-
static errcode_t unix_get_stats(io_channel channel, io_stats *stats)
{
- errcode_t retval = 0;
+ errcode_t retval = 0;
struct unix_private_data *data;
@@ -180,8 +134,9 @@ static errcode_t raw_read_blk(io_channel channel,
retval = errno ? errno : EXT2_ET_LLSEEK_FAILED;
goto error_out;
}
- if ((data->align == 0) ||
- ((IS_ALIGNED(buf, data->align)) && IS_ALIGNED(size, data->align))) {
+ if ((channel->align == 0) ||
+ (IS_ALIGNED(buf, channel->align) &&
+ IS_ALIGNED(size, channel->align))) {
actual = read(data->dev, buf, size);
if (actual != size) {
short_read:
@@ -250,8 +205,9 @@ static errcode_t raw_write_blk(io_channel channel,
goto error_out;
}
- if ((data->align == 0) ||
- ((IS_ALIGNED(buf, data->align)) && IS_ALIGNED(size, data->align))) {
+ if ((channel->align == 0) ||
+ (IS_ALIGNED(buf, channel->align) &&
+ IS_ALIGNED(size, channel->align))) {
actual = write(data->dev, buf, size);
if (actual != size) {
short_write:
@@ -318,16 +274,14 @@ static errcode_t alloc_cache(io_channel channel,
cache->in_use = 0;
if (cache->buf)
ext2fs_free_mem(&cache->buf);
- retval = ext2fs_get_memalign(channel->block_size,
- data->align, &cache->buf);
+ retval = io_channel_alloc_buf(channel, 0, &cache->buf);
if (retval)
return retval;
}
- if (data->align) {
+ if (channel->align) {
if (data->bounce)
ext2fs_free_mem(&data->bounce);
- retval = ext2fs_get_memalign(channel->block_size, data->align,
- &data->bounce);
+ retval = io_channel_alloc_buf(channel, 0, &data->bounce);
}
return retval;
}
@@ -439,16 +393,48 @@ static errcode_t flush_cached_blocks(io_channel channel,
#endif
#endif
+int ext2fs_open_file(const char *pathname, int flags, mode_t mode)
+{
+ if (mode)
+#if defined(HAVE_OPEN64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
+ return open64(pathname, flags, mode);
+ else
+ return open64(pathname, flags);
+#else
+ return open(pathname, flags, mode);
+ else
+ return open(pathname, flags);
+#endif
+}
+
+int ext2fs_stat(const char *path, ext2fs_struct_stat *buf)
+{
+#if defined(HAVE_FSTAT64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
+ return stat64(path, buf);
+#else
+ return stat(path, buf);
+#endif
+}
+
+int ext2fs_fstat(int fd, ext2fs_struct_stat *buf)
+{
+#if defined(HAVE_FSTAT64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
+ return fstat64(fd, buf);
+#else
+ return fstat(fd, buf);
+#endif
+}
+
static errcode_t unix_open(const char *name, int flags, io_channel *channel)
{
io_channel io = NULL;
struct unix_private_data *data = NULL;
errcode_t retval;
- int open_flags, zeroes = 0;
+ int open_flags;
int f_nocache = 0;
ext2fs_struct_stat st;
#ifdef __linux__
- struct utsname ut;
+ struct utsname ut;
#endif
if (name == 0)
@@ -477,16 +463,21 @@ static errcode_t unix_open(const char *name, int flags, io_channel *channel)
memset(data, 0, sizeof(struct unix_private_data));
data->magic = EXT2_ET_MAGIC_UNIX_IO_CHANNEL;
data->io_stats.num_fields = 2;
+ data->dev = -1;
open_flags = (flags & IO_FLAG_RW) ? O_RDWR : O_RDONLY;
if (flags & IO_FLAG_EXCLUSIVE)
open_flags |= O_EXCL;
#if defined(O_DIRECT)
- if (flags & IO_FLAG_DIRECT_IO)
+ if (flags & IO_FLAG_DIRECT_IO) {
open_flags |= O_DIRECT;
+ io->align = ext2fs_get_dio_alignment(data->dev);
+ }
#elif defined(F_NOCACHE)
- if (flags & IO_FLAG_DIRECT_IO)
+ if (flags & IO_FLAG_DIRECT_IO) {
f_nocache = F_NOCACHE;
+ io->align = 4096;
+ }
#endif
data->flags = flags;
@@ -516,17 +507,13 @@ static errcode_t unix_open(const char *name, int flags, io_channel *channel)
io->flags |= CHANNEL_FLAGS_DISCARD_ZEROES;
}
-#ifdef BLKSSZGET
- if (flags & IO_FLAG_DIRECT_IO) {
- if (ioctl(data->dev, BLKSSZGET, &data->align) != 0)
- data->align = io->block_size;
- }
-#endif
-
#ifdef BLKDISCARDZEROES
- ioctl(data->dev, BLKDISCARDZEROES, &zeroes);
- if (zeroes)
- io->flags |= CHANNEL_FLAGS_DISCARD_ZEROES;
+ {
+ int zeroes = 0;
+ if (ioctl(data->dev, BLKDISCARDZEROES, &zeroes) == 0 &&
+ zeroes)
+ io->flags |= CHANNEL_FLAGS_DISCARD_ZEROES;
+ }
#endif
#if defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
@@ -534,7 +521,8 @@ static errcode_t unix_open(const char *name, int flags, io_channel *channel)
* Some operating systems require that the buffers be aligned,
* regardless of O_DIRECT
*/
- data->align = 512;
+ if (!io->align)
+ io->align = 512;
#endif
@@ -549,7 +537,6 @@ static errcode_t unix_open(const char *name, int flags, io_channel *channel)
/* Is the block device actually writable? */
error = ioctl(data->dev, BLKROGET, &readonly);
if (!error && readonly) {
- close(data->dev);
retval = EPERM;
goto cleanup;
}
@@ -595,11 +582,17 @@ static errcode_t unix_open(const char *name, int flags, io_channel *channel)
cleanup:
if (data) {
+ if (data->dev >= 0)
+ close(data->dev);
free_cache(data);
ext2fs_free_mem(&data);
}
- if (io)
+ if (io) {
+ if (io->name) {
+ ext2fs_free_mem(&io->name);
+ }
ext2fs_free_mem(&io);
+ }
return retval;
}
@@ -810,7 +803,7 @@ static errcode_t unix_write_byte(io_channel channel, unsigned long offset,
data = (struct unix_private_data *) channel->private_data;
EXT2_CHECK_MAGIC(data, EXT2_ET_MAGIC_UNIX_IO_CHANNEL);
- if (data->align != 0) {
+ if (channel->align != 0) {
#ifdef ALIGN_DEBUG
printf("unix_write_byte: O_DIRECT fallback\n");
#endif
@@ -888,7 +881,6 @@ static errcode_t unix_discard(io_channel channel, unsigned long long block,
unsigned long long count)
{
struct unix_private_data *data;
- __uint64_t range[2];
int ret;
EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
@@ -897,8 +889,10 @@ static errcode_t unix_discard(io_channel channel, unsigned long long block,
if (channel->flags & CHANNEL_FLAGS_BLOCK_DEVICE) {
#ifdef BLKDISCARD
- range[0] = (__uint64_t)(block) * channel->block_size;
- range[1] = (__uint64_t)(count) * channel->block_size;
+ __u64 range[2];
+
+ range[0] = (__u64)(block) * channel->block_size;
+ range[1] = (__u64)(count) * channel->block_size;
ret = ioctl(data->dev, BLKDISCARD, &range);
#else
@@ -927,3 +921,22 @@ static errcode_t unix_discard(io_channel channel, unsigned long long block,
unimplemented:
return EXT2_ET_UNIMPLEMENTED;
}
+
+static struct struct_io_manager struct_unix_manager = {
+ EXT2_ET_MAGIC_IO_MANAGER,
+ "Unix I/O Manager",
+ unix_open,
+ unix_close,
+ unix_set_blksize,
+ unix_read_blk,
+ unix_write_blk,
+ unix_flush,
+ unix_write_byte,
+ unix_set_option,
+ unix_get_stats,
+ unix_read_blk64,
+ unix_write_blk64,
+ unix_discard,
+};
+
+io_manager unix_io_manager = &struct_unix_manager;
diff --git a/lib/quota/Makefile.in b/lib/quota/Makefile.in
index 5a12d4f9..92df2681 100644
--- a/lib/quota/Makefile.in
+++ b/lib/quota/Makefile.in
@@ -12,9 +12,6 @@ INSTALL = @INSTALL@
all::
-SMANPAGES=
-
-
OBJS= mkquota.o quotaio.o quotaio_v2.o quotaio_tree.o dict.o
SRCS= $(srcdir)/mkquota.c \
@@ -31,7 +28,7 @@ LIBDIR= quota
#ELF_IMAGE = libquota
#ELF_MYDIR = quota
#ELF_INSTALL_DIR = $(root_libdir)
-#ELF_OTHER_LIBS = -L../.. -lext2fs
+#ELF_OTHER_LIBS = -lext2fs
#BSDLIB_VERSION = 1.0
#BSDLIB_IMAGE = libquota
@@ -47,17 +44,12 @@ LIBDIR= quota
.c.o:
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
@CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
#ELF_CMT# $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
#BSDLIB_CMT# $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $<
-all:: $(SMANPAGES) quota.pc
-
-quota.pc: $(srcdir)/quota.pc.in $(top_builddir)/config.status
- $(E) " CONFIG.STATUS $@"
- $(Q) cd $(top_builddir); CONFIG_FILES=lib/quota/quota.pc ./config.status
-
dict.o:
$(E) " CC $<"
$(Q) $(CC) -c $(ALL_CFLAGS) $(top_srcdir)/e2fsck/dict.c -o $@
@@ -71,32 +63,10 @@ dict.o:
#BSDLIB_CMT# $(top_srcdir)/e2fsck/dict.c
installdirs::
- $(E) " MKINSTALLDIRS $(libdir) $(includedir)/quota $(man3dir)"
- $(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
- $(DESTDIR)$(includedir)/quota $(DESTDIR)$(man3dir) \
- $(DESTDIR)$(libdir)/pkgconfig
-
-install:: all installdirs
- $(E) " INSTALL_DATA $(libdir)/libquota.a"
- $(Q) $(INSTALL_DATA) libquota.a $(DESTDIR)$(libdir)/libquota.a
- -$(Q) $(RANLIB) $(DESTDIR)$(libdir)/libquota.a
- $(Q) $(CHMOD) $(LIBMODE) $(DESTDIR)$(libdir)/libquota.a
- $(E) " INSTALL_DATA $(includedir)/quota/mkquota.h"
- $(Q) $(INSTALL_DATA) $(srcdir)/mkquota.h $(DESTDIR)$(includedir)/quota/mkquota.h
- $(Q) for i in $(SMANPAGES); do \
- $(RM) -f $(DESTDIR)$(man3dir)/$$i.gz; \
- echo " INSTALL_DATA $(man3dir)/$$i"; \
- $(INSTALL_DATA) $$i $(DESTDIR)$(man3dir)/$$i; \
- done
- $(E) " INSTALL_DATA $(libdir)/pkgconfig/quota.pc"
- $(Q) $(INSTALL_DATA) quota.pc $(DESTDIR)$(libdir)/pkgconfig/quota.pc
+
+install:: all
uninstall::
- $(RM) -f $(DESTDIR)$(libdir)/libquota.a \
- $(DESTDIR)$(libdir)/pkgconfig/quota.pc
- for i in $(SMANPAGES); do \
- $(RM) -f $(DESTDIR)$(man3dir)/$$i; \
- done
clean::
$(RM) -f \#* *.s *.o *.a *~ *.bak core profiled/* checker/*
@@ -107,7 +77,7 @@ clean::
mostlyclean:: clean
distclean:: clean
- $(RM) -f .depend Makefile quota.pc \
+ $(RM) -f .depend Makefile \
$(srcdir)/TAGS $(srcdir)/Makefile.in.old
#
@@ -130,33 +100,36 @@ mkquota.o: $(srcdir)/mkquota.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(top_srcdir)/lib/e2p/e2p.h $(srcdir)/quota.h $(srcdir)/quotaio.h \
- $(srcdir)/dqblk_v2.h $(srcdir)/quotaio_tree.h $(srcdir)/quotaio_v2.h \
- $(srcdir)/mkquota.h $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/common.h
+ $(top_srcdir)/lib/e2p/e2p.h $(srcdir)/quotaio.h $(srcdir)/dqblk_v2.h \
+ $(srcdir)/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
+ $(srcdir)/quotaio_v2.h $(srcdir)/common.h
quotaio.o: $(srcdir)/quotaio.c $(top_builddir)/lib/config.h \
- $(top_builddir)/lib/dirpaths.h $(srcdir)/common.h $(srcdir)/quotaio.h \
- $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
- $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
- $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/common.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/quotaio.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/quota.h $(srcdir)/dqblk_v2.h $(srcdir)/quotaio_tree.h
+ $(srcdir)/dqblk_v2.h $(srcdir)/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
quotaio_tree.o: $(srcdir)/quotaio_tree.c $(top_builddir)/lib/config.h \
- $(top_builddir)/lib/dirpaths.h $(srcdir)/common.h $(srcdir)/quotaio_tree.h \
- $(srcdir)/quota.h $(top_builddir)/lib/ext2fs/ext2_types.h \
- $(srcdir)/quotaio.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
- $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/common.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/quotaio_tree.h \
+ $(srcdir)/quotaio.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/dqblk_v2.h
+ $(srcdir)/dqblk_v2.h $(top_srcdir)/lib/../e2fsck/dict.h
quotaio_v2.o: $(srcdir)/quotaio_v2.c $(top_builddir)/lib/config.h \
- $(top_builddir)/lib/dirpaths.h $(srcdir)/common.h $(srcdir)/quotaio_v2.h \
- $(srcdir)/quota.h $(top_builddir)/lib/ext2fs/ext2_types.h \
- $(srcdir)/dqblk_v2.h $(srcdir)/quotaio_tree.h $(srcdir)/quotaio.h \
- $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
- $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/common.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/quotaio_v2.h \
+ $(srcdir)/quotaio.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(srcdir)/dqblk_v2.h $(srcdir)/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h
dict.o: $(srcdir)/../../e2fsck/dict.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/../../e2fsck/dict.h
diff --git a/lib/quota/common.h b/lib/quota/common.h
index b5e83316..f1ad79f2 100644
--- a/lib/quota/common.h
+++ b/lib/quota/common.h
@@ -7,20 +7,28 @@
#ifndef __QUOTA_COMMON_H__
#define __QUOTA_COMMON_H__
+#if EXT2_FLAT_INCLUDES
+#include "e2_types.h"
+#else
+#include <ext2fs/ext2_types.h>
+#endif /* EXT2_FLAT_INCLUDES */
+
+/* #define DEBUG_QUOTA 1 */
+
#ifndef __attribute__
# if !defined __GNUC__ || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
# define __attribute__(x)
# endif
#endif
-#define log_err(format, ...) fprintf(stderr, \
- "[ERROR] %s:%d:%s:: " format "\n", \
- __FILE__, __LINE__, __func__, __VA_ARGS__)
+#define log_err(format, arg ...) \
+ fprintf(stderr, "[ERROR] %s:%d:%s:: " format "\n", \
+ __FILE__, __LINE__, __func__, ## arg)
#ifdef DEBUG_QUOTA
-# define log_debug(format, ...) fprintf(stderr, \
- "[DEBUG] %s:%d:%s:: " format "\n", \
- __FILE__, __LINE__, __func__, __VA_ARGS__)
+# define log_debug(format, arg ...) \
+ fprintf(stderr, "[DEBUG] %s:%d:%s:: " format "\n", \
+ __FILE__, __LINE__, __func__, ## arg)
#else
# define log_debug(format, ...)
#endif
diff --git a/lib/quota/dqblk_v2.h b/lib/quota/dqblk_v2.h
index 18055c69..d12512a6 100644
--- a/lib/quota/dqblk_v2.h
+++ b/lib/quota/dqblk_v2.h
@@ -7,28 +7,16 @@
#ifndef __QUOTA_DQBLK_V2_H__
#define __QUOTA_DQBLK_V2_H__
-#include <sys/types.h>
#include "quotaio_tree.h"
-#define Q_V2_GETQUOTA 0x0D00 /* Get limits and usage */
-#define Q_V2_SETQUOTA 0x0E00 /* Set limits and usage */
-#define Q_V2_SETUSE 0x0F00 /* Set only usage */
-#define Q_V2_SETQLIM 0x0700 /* Set only limits */
-#define Q_V2_GETINFO 0x0900 /* Get information about quota */
-#define Q_V2_SETINFO 0x0A00 /* Set information about quota */
-#define Q_V2_SETGRACE 0x0B00 /* Set just grace times in quotafile
- * information */
-#define Q_V2_SETFLAGS 0x0C00 /* Set just flags in quotafile information */
-#define Q_V2_GETSTATS 0x1100 /* get collected stats (before proc was used) */
-
/* Structure for format specific information */
struct v2_mem_dqinfo {
struct qtree_mem_dqinfo dqi_qtree;
- uint dqi_flags; /* Flags set in quotafile */
- uint dqi_used_entries; /* Number of entries in file -
- updated by scan_dquots */
- uint dqi_data_blocks; /* Number of data blocks in file -
- updated by scan_dquots */
+ unsigned int dqi_flags; /* Flags set in quotafile */
+ unsigned int dqi_used_entries; /* Number of entries in file -
+ updated by scan_dquots */
+ unsigned int dqi_data_blocks; /* Number of data blocks in file -
+ updated by scan_dquots */
};
struct v2_mem_dqblk {
diff --git a/lib/quota/mkquota.c b/lib/quota/mkquota.c
index fbfde927..58803d04 100644
--- a/lib/quota/mkquota.c
+++ b/lib/quota/mkquota.c
@@ -15,17 +15,16 @@
#include "ext2fs/ext2fs.h"
#include "e2p/e2p.h"
-#include "quota.h"
#include "quotaio.h"
#include "quotaio_v2.h"
#include "quotaio_tree.h"
-#include "mkquota.h"
#include "common.h"
/* Needed for architectures where sizeof(int) != sizeof(void *) */
#define UINT_TO_VOIDPTR(val) ((void *)(intptr_t)(val))
#define VOIDPTR_TO_UINT(ptr) ((unsigned int)(intptr_t)(ptr))
+#if DEBUG_QUOTA
static void print_inode(struct ext2_inode *inode)
{
if (!inode)
@@ -46,17 +45,21 @@ static void print_inode(struct ext2_inode *inode)
return;
}
-int quota_is_on(ext2_filsys fs, int type)
+static void print_dquot(const char *desc, struct dquot *dq)
{
- char tmp[1024];
- qid_t id = (type == USRQUOTA) ? getuid() : getgid();
-
-#ifdef HAVE_QUOTACTL
- if (!quotactl(QCMD(Q_V2_GETQUOTA, type), fs->device_name, id, tmp))
- return 1;
-#endif
- return 0;
+ if (desc)
+ fprintf(stderr, "%s: ", desc);
+ fprintf(stderr, "%u %lld:%lld:%lld %lld:%lld:%lld\n",
+ dq->dq_id, dq->dq_dqb.dqb_curspace,
+ dq->dq_dqb.dqb_bsoftlimit, dq->dq_dqb.dqb_bhardlimit,
+ dq->dq_dqb.dqb_curinodes,
+ dq->dq_dqb.dqb_isoftlimit, dq->dq_dqb.dqb_ihardlimit);
}
+#else
+static void print_dquot(const char *desc, struct dquot *dq)
+{
+}
+#endif
/*
* Returns 0 if not able to find the quota file, otherwise returns its
@@ -71,7 +74,7 @@ int quota_file_exists(ext2_filsys fs, int qtype, int fmt)
if (qtype >= MAXQUOTAS)
return -EINVAL;
- quota_get_qf_name(qtype, fmt, qf_name);
+ quota_get_qf_name(qtype, QFMT_VFS_V1, qf_name);
ret = ext2fs_lookup(fs, EXT2_ROOT_INO, qf_name, strlen(qf_name), 0,
&ino);
@@ -100,8 +103,13 @@ void quota_set_sb_inum(ext2_filsys fs, ext2_ino_t ino, int qtype)
errcode_t quota_remove_inode(ext2_filsys fs, int qtype)
{
ext2_ino_t qf_ino;
+ errcode_t retval;
- ext2fs_read_bitmaps(fs);
+ retval = ext2fs_read_bitmaps(fs);
+ if (retval) {
+ log_err("Couldn't read bitmaps: %s", error_message(retval));
+ return retval;
+ }
qf_ino = (qtype == USRQUOTA) ? fs->super->s_usr_quota_inum :
fs->super->s_grp_quota_inum;
quota_set_sb_inum(fs, 0, qtype);
@@ -110,7 +118,12 @@ errcode_t quota_remove_inode(ext2_filsys fs, int qtype)
quota_inode_truncate(fs, qf_ino);
ext2fs_mark_super_dirty(fs);
- ext2fs_write_bitmaps(fs);
+ fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
+ retval = ext2fs_write_bitmaps(fs);
+ if (retval) {
+ log_err("Couldn't write bitmaps: %s", error_message(retval));
+ return retval;
+ }
return 0;
}
@@ -122,6 +135,7 @@ static void write_dquots(dict_t *dict, struct quota_handle *qh)
for (n = dict_first(dict); n; n = dict_next(dict, n)) {
dq = dnode_get(n);
if (dq) {
+ print_dquot("write", dq);
dq->dq_h = qh;
update_grace_times(dq);
qh->qh_ops->commit_dquot(dq);
@@ -134,7 +148,7 @@ errcode_t quota_write_inode(quota_ctx_t qctx, int qtype)
int retval = 0, i;
dict_t *dict;
ext2_filsys fs;
- struct quota_handle *h;
+ struct quota_handle *h = NULL;
int fmt = QFMT_VFS_V1;
if (!qctx)
@@ -143,11 +157,16 @@ errcode_t quota_write_inode(quota_ctx_t qctx, int qtype)
fs = qctx->fs;
retval = ext2fs_get_mem(sizeof(struct quota_handle), &h);
if (retval) {
- log_err("Unable to allocate quota handle", "");
+ log_err("Unable to allocate quota handle: %s",
+ error_message(retval));
goto out;
}
- ext2fs_read_bitmaps(fs);
+ retval = ext2fs_read_bitmaps(fs);
+ if (retval) {
+ log_err("Couldn't read bitmaps: %s", error_message(retval));
+ goto out;
+ }
for (i = 0; i < MAXQUOTAS; i++) {
if ((qtype != -1) && (i != qtype))
@@ -159,12 +178,12 @@ errcode_t quota_write_inode(quota_ctx_t qctx, int qtype)
retval = quota_file_create(h, fs, i, fmt);
if (retval < 0) {
- log_err("Cannot initialize io on quotafile", "");
+ log_err("Cannot initialize io on quotafile");
continue;
}
write_dquots(dict, h);
- retval = quota_file_close(h);
+ retval = quota_file_close(qctx, h);
if (retval < 0) {
log_err("Cannot finish IO on new quotafile: %s",
strerror(errno));
@@ -181,7 +200,11 @@ errcode_t quota_write_inode(quota_ctx_t qctx, int qtype)
fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
}
- ext2fs_write_bitmaps(fs);
+ retval = ext2fs_write_bitmaps(fs);
+ if (retval) {
+ log_err("Couldn't write bitmaps: %s", error_message(retval));
+ goto out;
+ }
out:
if (h)
ext2fs_free_mem(&h);
@@ -199,7 +222,12 @@ static int dict_uint_cmp(const void *a, const void *b)
c = VOIDPTR_TO_UINT(a);
d = VOIDPTR_TO_UINT(b);
- return c - d;
+ if (c == d)
+ return 0;
+ else if (c > d)
+ return 1;
+ else
+ return -1;
}
static inline qid_t get_qid(struct ext2_inode *inode, int qtype)
@@ -223,23 +251,26 @@ static void quota_dnode_free(dnode_t *node,
*/
errcode_t quota_init_context(quota_ctx_t *qctx, ext2_filsys fs, int qtype)
{
- int i, err = 0;
+ errcode_t err;
dict_t *dict;
quota_ctx_t ctx;
+ int i;
err = ext2fs_get_mem(sizeof(struct quota_ctx), &ctx);
if (err) {
- log_err("Failed to allocate quota context", "");
+ log_err("Failed to allocate quota context");
return err;
}
memset(ctx, 0, sizeof(struct quota_ctx));
for (i = 0; i < MAXQUOTAS; i++) {
+ ctx->quota_file[i] = NULL;
if ((qtype != -1) && (i != qtype))
continue;
err = ext2fs_get_mem(sizeof(dict_t), &dict);
if (err) {
- log_err("Failed to allocate dictionary", "");
+ log_err("Failed to allocate dictionary");
+ quota_release_context(&ctx);
return err;
}
ctx->quota_dict[i] = dict;
@@ -254,6 +285,7 @@ errcode_t quota_init_context(quota_ctx_t *qctx, ext2_filsys fs, int qtype)
void quota_release_context(quota_ctx_t *qctx)
{
+ errcode_t err;
dict_t *dict;
int i;
quota_ctx_t ctx;
@@ -269,6 +301,14 @@ void quota_release_context(quota_ctx_t *qctx)
dict_free_nodes(dict);
free(dict);
}
+ if (ctx->quota_file[i]) {
+ err = quota_file_close(ctx, ctx->quota_file[i]);
+ if (err) {
+ log_err("Cannot close quotafile: %s",
+ strerror(errno));
+ ext2fs_free_mem(&ctx->quota_file[i]);
+ }
+ }
}
*qctx = NULL;
free(ctx);
@@ -284,7 +324,7 @@ static struct dquot *get_dq(dict_t *dict, __u32 key)
dq = dnode_get(n);
else {
if (ext2fs_get_mem(sizeof(struct dquot), &dq)) {
- log_err("Unable to allocate dquot", "");
+ log_err("Unable to allocate dquot");
return NULL;
}
memset(dq, 0, sizeof(struct dquot));
@@ -399,7 +439,9 @@ errcode_t quota_compute_usage(quota_ctx_t qctx)
}
if (ino == 0)
break;
- if (inode.i_links_count) {
+ if (inode.i_links_count &&
+ (ino == EXT2_ROOT_INO ||
+ ino >= EXT2_FIRST_INODE(fs->super))) {
space = ext2fs_inode_i_blocks(fs, &inode) << 9;
quota_data_add(qctx, &inode, ino, space);
quota_data_inodes(qctx, &inode, ino, +1);
@@ -412,29 +454,49 @@ errcode_t quota_compute_usage(quota_ctx_t qctx)
}
struct scan_dquots_data {
- quota_ctx_t qctx;
- int limit_only; /* read limit only */
+ dict_t *quota_dict;
+ int update_limits; /* update limits from disk */
+ int update_usage;
+ int usage_is_inconsistent;
};
static int scan_dquots_callback(struct dquot *dquot, void *cb_data)
{
- struct scan_dquots_data *scan_data =
- (struct scan_dquots_data *)cb_data;
- quota_ctx_t qctx = scan_data->qctx;
+ struct scan_dquots_data *scan_data = cb_data;
+ dict_t *quota_dict = scan_data->quota_dict;
struct dquot *dq;
- dq = get_dq(qctx->quota_dict[dquot->dq_h->qh_type], dquot->dq_id);
-
+ dq = get_dq(quota_dict, dquot->dq_id);
dq->dq_id = dquot->dq_id;
- if (scan_data->limit_only) {
- dq->dq_dqb.u.v2_mdqb.dqb_off = dquot->dq_dqb.u.v2_mdqb.dqb_off;
+ dq->dq_flags |= DQF_SEEN;
+
+ print_dquot("mem", dq);
+ print_dquot("dsk", dquot);
+
+ /* Check if there is inconsistancy. */
+ if (dq->dq_dqb.dqb_curspace != dquot->dq_dqb.dqb_curspace ||
+ dq->dq_dqb.dqb_curinodes != dquot->dq_dqb.dqb_curinodes) {
+ scan_data->usage_is_inconsistent = 1;
+ fprintf(stderr, "[QUOTA WARNING] Usage inconsistent for ID %d:"
+ "actual (%llu, %llu) != expected (%llu, %llu)\n",
+ dq->dq_id, (long long)dq->dq_dqb.dqb_curspace,
+ (long long)dq->dq_dqb.dqb_curinodes,
+ (long long)dquot->dq_dqb.dqb_curspace,
+ (long long)dquot->dq_dqb.dqb_curinodes);
+ }
+
+ if (scan_data->update_limits) {
dq->dq_dqb.dqb_ihardlimit = dquot->dq_dqb.dqb_ihardlimit;
dq->dq_dqb.dqb_isoftlimit = dquot->dq_dqb.dqb_isoftlimit;
dq->dq_dqb.dqb_bhardlimit = dquot->dq_dqb.dqb_bhardlimit;
dq->dq_dqb.dqb_bsoftlimit = dquot->dq_dqb.dqb_bsoftlimit;
- } else {
- dq->dq_dqb = dquot->dq_dqb;
}
+
+ if (scan_data->update_usage) {
+ dq->dq_dqb.dqb_curspace = dquot->dq_dqb.dqb_curspace;
+ dq->dq_dqb.dqb_curinodes = dquot->dq_dqb.dqb_curinodes;
+ }
+
return 0;
}
@@ -442,12 +504,13 @@ static int scan_dquots_callback(struct dquot *dquot, void *cb_data)
* Read all dquots from quota file into memory
*/
static errcode_t quota_read_all_dquots(struct quota_handle *qh,
- quota_ctx_t qctx, int limit_only)
+ quota_ctx_t qctx, int update_limits)
{
struct scan_dquots_data scan_data;
- scan_data.qctx = qctx;
- scan_data.limit_only = limit_only;
+ scan_data.quota_dict = qctx->quota_dict[qh->qh_type];
+ scan_data.update_limits = update_limits;
+ scan_data.update_usage = 0;
return qh->qh_ops->scan_dquots(qh, scan_dquots_callback, &scan_data);
}
@@ -455,6 +518,7 @@ static errcode_t quota_read_all_dquots(struct quota_handle *qh,
/*
* Write all memory dquots into quota file
*/
+#if 0 /* currently unused, but may be useful in the future? */
static errcode_t quota_write_all_dquots(struct quota_handle *qh,
quota_ctx_t qctx)
{
@@ -469,11 +533,12 @@ static errcode_t quota_write_all_dquots(struct quota_handle *qh,
ext2fs_write_bitmaps(qctx->fs);
return 0;
}
+#endif
/*
- * Update usage of in quota file, limits keep unchaged
+ * Updates the in-memory quota limits from the given quota inode.
*/
-errcode_t quota_update_inode(quota_ctx_t qctx, ext2_ino_t qf_ino, int type)
+errcode_t quota_update_limits(quota_ctx_t qctx, ext2_ino_t qf_ino, int type)
{
struct quota_handle *qh;
errcode_t err;
@@ -483,20 +548,19 @@ errcode_t quota_update_inode(quota_ctx_t qctx, ext2_ino_t qf_ino, int type)
err = ext2fs_get_mem(sizeof(struct quota_handle), &qh);
if (err) {
- log_err("Unable to allocate quota handle", "");
+ log_err("Unable to allocate quota handle");
return err;
}
- err = quota_file_open(qh, qctx->fs, qf_ino, type, -1, EXT2_FILE_WRITE);
+ err = quota_file_open(qctx, qh, qf_ino, type, -1, 0);
if (err) {
- log_err("Open quota file failed", "");
+ log_err("Open quota file failed");
goto out;
}
quota_read_all_dquots(qh, qctx, 1);
- quota_write_all_dquots(qh, qctx);
- err = quota_file_close(qh);
+ err = quota_file_close(qctx, qh);
if (err) {
log_err("Cannot finish IO on new quotafile: %s",
strerror(errno));
@@ -507,3 +571,61 @@ out:
ext2fs_free_mem(&qh);
return err;
}
+
+/*
+ * Compares the measured quota in qctx->quota_dict with that in the quota inode
+ * on disk and updates the limits in qctx->quota_dict. 'usage_inconsistent' is
+ * set to 1 if the supplied and on-disk quota usage values are not identical.
+ */
+errcode_t quota_compare_and_update(quota_ctx_t qctx, int qtype,
+ int *usage_inconsistent)
+{
+ ext2_filsys fs = qctx->fs;
+ struct quota_handle qh;
+ struct scan_dquots_data scan_data;
+ struct dquot *dq;
+ dnode_t *n;
+ dict_t *dict = qctx->quota_dict[qtype];
+ errcode_t err = 0;
+
+ if (!dict)
+ goto out;
+
+ err = quota_file_open(qctx, &qh, 0, qtype, -1, 0);
+ if (err) {
+ log_err("Open quota file failed");
+ goto out;
+ }
+
+ scan_data.quota_dict = qctx->quota_dict[qtype];
+ scan_data.update_limits = 1;
+ scan_data.update_usage = 0;
+ scan_data.usage_is_inconsistent = 0;
+ err = qh.qh_ops->scan_dquots(&qh, scan_dquots_callback, &scan_data);
+ if (err) {
+ log_err("Error scanning dquots");
+ goto out_close_qh;
+ }
+
+ for (n = dict_first(dict); n; n = dict_next(dict, n)) {
+ dq = dnode_get(n);
+ if (!dq)
+ continue;
+ if ((dq->dq_flags & DQF_SEEN) == 0) {
+ fprintf(stderr, "[QUOTA WARNING] "
+ "Missing quota entry ID %d\n", dq->dq_id);
+ scan_data.usage_is_inconsistent = 1;
+ }
+ }
+ *usage_inconsistent = scan_data.usage_is_inconsistent;
+
+out_close_qh:
+ err = quota_file_close(qctx, &qh);
+ if (err) {
+ log_err("Cannot close quotafile: %s", error_message(errno));
+ if (qh.qh_qf.e2_file)
+ ext2fs_file_close(qh.qh_qf.e2_file);
+ }
+out:
+ return err;
+}
diff --git a/lib/quota/mkquota.h b/lib/quota/mkquota.h
deleted file mode 100644
index a5fa74ba..00000000
--- a/lib/quota/mkquota.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/** mkquota.h
- *
- * Interface to the quota library.
- *
- * The quota library provides interface for creating and updating the quota
- * files and the ext4 superblock fields. It supports the new VFS_V1 quota
- * format. The quota library also provides support for keeping track of quotas
- * in memory.
- * The typical way to use the quota library is as follows:
- * {
- * quota_ctx_t qctx;
- *
- * quota_init_context(&qctx, fs, -1);
- * {
- * quota_compute_usage(qctx, -1);
- * AND/OR
- * quota_data_add/quota_data_sub/quota_data_inodes();
- * }
- * quota_write_inode(qctx, USRQUOTA);
- * quota_write_inode(qctx, GRPQUOTA);
- * quota_release_context(&qctx);
- * }
- *
- * This initial version does not support reading the quota files. This support
- * will be added in near future.
- *
- * Aditya Kali <adityakali@google.com>
- */
-
-#ifndef __QUOTA_QUOTAIO_H__
-#define __QUOTA_QUOTAIO_H__
-
-#include "ext2fs/ext2_fs.h"
-#include "ext2fs/ext2fs.h"
-#include "quota.h"
-#include "../e2fsck/dict.h"
-
-typedef struct quota_ctx *quota_ctx_t;
-
-struct quota_ctx {
- ext2_filsys fs;
- dict_t *quota_dict[MAXQUOTAS];
-};
-
-/* In mkquota.c */
-errcode_t quota_init_context(quota_ctx_t *qctx, ext2_filsys fs, int qtype);
-void quota_data_inodes(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
- int adjust);
-void quota_data_add(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
- qsize_t space);
-void quota_data_sub(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
- qsize_t space);
-errcode_t quota_write_inode(quota_ctx_t qctx, int qtype);
-errcode_t quota_update_inode(quota_ctx_t qctx, ext2_ino_t qf_ino, int type);
-errcode_t quota_compute_usage(quota_ctx_t qctx);
-void quota_release_context(quota_ctx_t *qctx);
-
-errcode_t quota_remove_inode(ext2_filsys fs, int qtype);
-int quota_is_on(ext2_filsys fs, int type);
-int quota_file_exists(ext2_filsys fs, int qtype, int fmt);
-void quota_set_sb_inum(ext2_filsys fs, ext2_ino_t ino, int qtype);
-
-#endif /* __QUOTA_QUOTAIO_H__ */
diff --git a/lib/quota/quota.h b/lib/quota/quota.h
deleted file mode 100644
index a943ec61..00000000
--- a/lib/quota/quota.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 1982, 1986 Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Robert Elz at The University of Melbourne.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _LINUX_QUOTA_
-#define _LINUX_QUOTA_
-
-#include <errno.h>
-#include <sys/types.h>
-#include <ext2fs/ext2_types.h>
-
-#define __DQUOT_VERSION__ "dquot_6.5.2"
-
-typedef u_int32_t qid_t; /* Type in which we store ids in memory */
-typedef int64_t qsize_t; /* Type in which we store size limitations */
-
-#define MAXQUOTAS 2
-#define USRQUOTA 0 /* element used for user quotas */
-#define GRPQUOTA 1 /* element used for group quotas */
-
-/*
- * Definitions for the default names of the quotas files.
- */
-#define INITQFNAMES { \
- "user", /* USRQUOTA */ \
- "group", /* GRPQUOTA */ \
- "undefined", \
-};
-
-/*
- * Definitions of magics and versions of current quota files
- */
-#define INITQMAGICS {\
- 0xd9c01f11, /* USRQUOTA */\
- 0xd9c01927 /* GRPQUOTA */\
-}
-
-/* Size of blocks in which are counted size limits in generic utility parts */
-#define QUOTABLOCK_BITS 10
-#define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS)
-
-/* Conversion routines from and to quota blocks */
-#define qb2kb(x) ((x) << (QUOTABLOCK_BITS-10))
-#define kb2qb(x) ((x) >> (QUOTABLOCK_BITS-10))
-#define toqb(x) (((x) + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS)
-
-/*
- * Command definitions for the 'quotactl' system call.
- * The commands are broken into a main command defined below
- * and a subcommand that is used to convey the type of
- * quota that is being manipulated (see above).
- */
-#define SUBCMDMASK 0x00ff
-#define SUBCMDSHIFT 8
-#define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
-
-#define Q_SYNC 0x800001 /* sync disk copy of a filesystems quotas */
-#define Q_QUOTAON 0x800002 /* turn quotas on */
-#define Q_QUOTAOFF 0x800003 /* turn quotas off */
-#define Q_GETFMT 0x800004 /* get quota format used on given filesystem */
-#define Q_GETINFO 0x800005 /* get information about quota files */
-#define Q_SETINFO 0x800006 /* set information about quota files */
-#define Q_GETQUOTA 0x800007 /* get user quota structure */
-#define Q_SETQUOTA 0x800008 /* set user quota structure */
-
-/* Quota format type IDs */
-#define QFMT_VFS_OLD 1
-#define QFMT_VFS_V0 2
-#define QFMT_OCFS2 3
-#define QFMT_VFS_V1 4
-
-/* Size of block in which space limits are passed through the quota
- * interface */
-#define QIF_DQBLKSIZE_BITS 10
-#define QIF_DQBLKSIZE (1 << QIF_DQBLKSIZE_BITS)
-
-/*
- * Structure used for setting quota information about file via quotactl
- * Following flags are used to specify which fields are valid
- */
-#define IIF_BGRACE 1
-#define IIF_IGRACE 2
-#define IIF_FLAGS 4
-#define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
-
-struct if_dqinfo {
- __u64 dqi_bgrace;
- __u64 dqi_igrace;
- __u32 dqi_flags;
- __u32 dqi_valid;
-};
-
-/*
- * Definitions for quota netlink interface
- */
-#define QUOTA_NL_NOWARN 0
-#define QUOTA_NL_IHARDWARN 1 /* Inode hardlimit reached */
-#define QUOTA_NL_ISOFTLONGWARN 2 /* Inode grace time expired */
-#define QUOTA_NL_ISOFTWARN 3 /* Inode softlimit reached */
-#define QUOTA_NL_BHARDWARN 4 /* Block hardlimit reached */
-#define QUOTA_NL_BSOFTLONGWARN 5 /* Block grace time expired */
-#define QUOTA_NL_BSOFTWARN 6 /* Block softlimit reached */
-#define QUOTA_NL_IHARDBELOW 7 /* Usage got below inode hardlimit */
-#define QUOTA_NL_ISOFTBELOW 8 /* Usage got below inode softlimit */
-#define QUOTA_NL_BHARDBELOW 9 /* Usage got below block hardlimit */
-#define QUOTA_NL_BSOFTBELOW 10 /* Usage got below block softlimit */
-
-enum {
- QUOTA_NL_C_UNSPEC,
- QUOTA_NL_C_WARNING,
- __QUOTA_NL_C_MAX,
-};
-#define QUOTA_NL_C_MAX (__QUOTA_NL_C_MAX - 1)
-
-enum {
- QUOTA_NL_A_UNSPEC,
- QUOTA_NL_A_QTYPE,
- QUOTA_NL_A_EXCESS_ID,
- QUOTA_NL_A_WARNING,
- QUOTA_NL_A_DEV_MAJOR,
- QUOTA_NL_A_DEV_MINOR,
- QUOTA_NL_A_CAUSED_ID,
- __QUOTA_NL_A_MAX,
-};
-#define QUOTA_NL_A_MAX (__QUOTA_NL_A_MAX - 1)
-
-#endif /* _QUOTA_ */
diff --git a/lib/quota/quota.pc.in b/lib/quota/quota.pc.in
deleted file mode 100644
index bcc3c441..00000000
--- a/lib/quota/quota.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: quota
-Description: Quota management library
-Version: @E2FSPROGS_VERSION@
-Requires:
-Cflags: -I${includedir}/quota
-Libs: -L${libdir} -lquota
diff --git a/lib/quota/quotaio.c b/lib/quota/quotaio.c
index 481d5f57..65fccaa9 100644
--- a/lib/quota/quotaio.c
+++ b/lib/quota/quotaio.c
@@ -11,6 +11,7 @@
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
+#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/file.h>
@@ -18,7 +19,7 @@
#include "common.h"
#include "quotaio.h"
-static const char extensions[MAXQUOTAS + 2][20] = INITQFNAMES;
+static const char * const extensions[MAXQUOTAS] = {"user", "group"};
static const char * const basenames[] = {
"", /* undefined */
"quota", /* QFMT_VFS_OLD */
@@ -27,18 +28,10 @@ static const char * const basenames[] = {
"aquota" /* QFMT_VFS_V1 */
};
-static const char * const fmtnames[] = {
- "vfsold",
- "vfsv0",
- "vfsv1",
- "rpc",
- "xfs"
-};
-
/* Header in all newer quotafiles */
struct disk_dqheader {
- u_int32_t dqh_magic;
- u_int32_t dqh_version;
+ __u32 dqh_magic;
+ __u32 dqh_version;
} __attribute__ ((packed));
/**
@@ -65,7 +58,6 @@ const char *quota_get_qf_name(int type, int fmt, char *buf)
const char *quota_get_qf_path(const char *mntpt, int qtype, int fmt,
char *path_buf, size_t path_buf_size)
{
- struct stat qf_stat;
char qf_name[QUOTA_NAME_LEN];
if (!mntpt || !path_buf || !path_buf_size)
@@ -106,26 +98,12 @@ void update_grace_times(struct dquot *q)
}
}
-static int release_blocks_proc(ext2_filsys fs, blk64_t *blocknr,
- e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)),
- blk64_t ref_block EXT2FS_ATTR((unused)),
- int ref_offset EXT2FS_ATTR((unused)),
- void *private EXT2FS_ATTR((unused)))
-{
- blk64_t block;
-
- block = *blocknr;
- ext2fs_block_alloc_stats2(fs, block, -1);
- return 0;
-}
-
static int compute_num_blocks_proc(ext2_filsys fs, blk64_t *blocknr,
e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)),
blk64_t ref_block EXT2FS_ATTR((unused)),
int ref_offset EXT2FS_ATTR((unused)),
void *private)
{
- blk64_t block;
blk64_t *num_blocks = private;
*num_blocks += 1;
@@ -136,19 +114,22 @@ errcode_t quota_inode_truncate(ext2_filsys fs, ext2_ino_t ino)
{
struct ext2_inode inode;
errcode_t err;
- int i;
if ((err = ext2fs_read_inode(fs, ino, &inode)))
return err;
- inode.i_dtime = fs->now ? fs->now : time(0);
- if (!ext2fs_inode_has_valid_blocks2(fs, &inode))
- return 0;
-
- ext2fs_block_iterate3(fs, ino, BLOCK_FLAG_READ_ONLY, NULL,
- release_blocks_proc, NULL);
-
- memset(&inode, 0, sizeof(struct ext2_inode));
+ if ((ino == EXT4_USR_QUOTA_INO) || (ino == EXT4_GRP_QUOTA_INO)) {
+ inode.i_dtime = fs->now ? fs->now : time(0);
+ if (!ext2fs_inode_has_valid_blocks2(fs, &inode))
+ return 0;
+ err = ext2fs_punch(fs, ino, &inode, NULL, 0, ~0ULL);
+ if (err)
+ return err;
+ fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
+ memset(&inode, 0, sizeof(struct ext2_inode));
+ } else {
+ inode.i_flags &= ~EXT2_IMMUTABLE_FL;
+ }
err = ext2fs_write_inode(fs, ino, &inode);
return err;
}
@@ -216,11 +197,16 @@ static unsigned int quota_read_nomount(struct quota_file *qf,
/*
* Detect quota format and initialize quota IO
*/
-errcode_t quota_file_open(struct quota_handle *h, ext2_filsys fs,
+errcode_t quota_file_open(quota_ctx_t qctx, struct quota_handle *h,
ext2_ino_t qf_ino, int type, int fmt, int flags)
{
+ ext2_filsys fs = qctx->fs;
ext2_file_t e2_file;
errcode_t err;
+ int allocated_handle = 0;
+
+ if (type >= MAXQUOTAS)
+ return EINVAL;
if (fmt == -1)
fmt = QFMT_VFS_V1;
@@ -229,18 +215,42 @@ errcode_t quota_file_open(struct quota_handle *h, ext2_filsys fs,
if (err)
return err;
+ if (qf_ino == 0) {
+ if (type == USRQUOTA)
+ qf_ino = fs->super->s_usr_quota_inum;
+ else
+ qf_ino = fs->super->s_grp_quota_inum;
+ }
+
log_debug("Opening quota ino=%lu, type=%d", qf_ino, type);
err = ext2fs_file_open(fs, qf_ino, flags, &e2_file);
if (err) {
log_err("ext2fs_file_open failed: %s", error_message(err));
return err;
}
- h->qh_qf.e2_file = e2_file;
+ if (!h) {
+ if (qctx->quota_file[type]) {
+ h = qctx->quota_file[type];
+ if (((flags & EXT2_FILE_WRITE) == 0) ||
+ (h->qh_file_flags & EXT2_FILE_WRITE))
+ return 0;
+ (void) quota_file_close(qctx, h);
+ }
+ err = ext2fs_get_mem(sizeof(struct quota_handle), &h);
+ if (err) {
+ log_err("Unable to allocate quota handle");
+ return err;
+ }
+ allocated_handle = 1;
+ }
+
+ h->qh_qf.e2_file = e2_file;
h->qh_qf.fs = fs;
h->qh_qf.ino = qf_ino;
h->e2fs_write = quota_write_nomount;
h->e2fs_read = quota_read_nomount;
+ h->qh_file_flags = flags;
h->qh_io_flags = 0;
h->qh_type = type;
h->qh_fmt = fmt;
@@ -249,18 +259,23 @@ errcode_t quota_file_open(struct quota_handle *h, ext2_filsys fs,
if (h->qh_ops->check_file &&
(h->qh_ops->check_file(h, type, fmt) == 0)) {
- log_err("qh_ops->check_file failed", "");
- ext2fs_file_close(e2_file);
- return -1;
+ log_err("qh_ops->check_file failed");
+ goto errout;
}
if (h->qh_ops->init_io && (h->qh_ops->init_io(h) < 0)) {
- log_err("qh_ops->init_io failed", "");
- ext2fs_file_close(e2_file);
- return -1;
+ log_err("qh_ops->init_io failed");
+ goto errout;
}
+ if (allocated_handle)
+ qctx->quota_file[type] = h;
return 0;
+errout:
+ ext2fs_file_close(e2_file);
+ if (allocated_handle)
+ ext2fs_free_mem(&h);
+ return -1;
}
static errcode_t quota_inode_init_new(ext2_filsys fs, ext2_ino_t ino)
@@ -270,7 +285,7 @@ static errcode_t quota_inode_init_new(ext2_filsys fs, ext2_ino_t ino)
err = ext2fs_read_inode(fs, ino, &inode);
if (err) {
- log_err("ex2fs_read_inode failed", "");
+ log_err("ex2fs_read_inode failed");
return err;
}
@@ -322,16 +337,16 @@ errcode_t quota_file_create(struct quota_handle *h, ext2_filsys fs, int type, in
err = quota_inode_init_new(fs, qf_inum);
if (err) {
- log_err("init_new_quota_inode failed", "");
+ log_err("init_new_quota_inode failed");
goto out_err;
}
h->qh_qf.ino = qf_inum;
+ h->qh_file_flags = EXT2_FILE_WRITE | EXT2_FILE_CREATE;
h->e2fs_write = quota_write_nomount;
h->e2fs_read = quota_read_nomount;
log_debug("Creating quota ino=%lu, type=%d", qf_inum, type);
- err = ext2fs_file_open(fs, qf_inum,
- EXT2_FILE_WRITE | EXT2_FILE_CREATE, &e2_file);
+ err = ext2fs_file_open(fs, qf_inum, h->qh_file_flags, &e2_file);
if (err) {
log_err("ext2fs_file_open failed: %d", err);
goto out_err;
@@ -345,7 +360,7 @@ errcode_t quota_file_create(struct quota_handle *h, ext2_filsys fs, int type, in
h->qh_ops = &quotafile_ops_2;
if (h->qh_ops->new_io && (h->qh_ops->new_io(h) < 0)) {
- log_err("qh_ops->new_io failed", "");
+ log_err("qh_ops->new_io failed");
goto out_err1;
}
@@ -364,7 +379,7 @@ out_err:
/*
* Close quotafile and release handle
*/
-errcode_t quota_file_close(struct quota_handle *h)
+errcode_t quota_file_close(quota_ctx_t qctx, struct quota_handle *h)
{
if (h->qh_io_flags & IOFL_INFODIRTY) {
if (h->qh_ops->write_info && h->qh_ops->write_info(h) < 0)
@@ -375,12 +390,18 @@ errcode_t quota_file_close(struct quota_handle *h)
if (h->qh_ops->end_io && h->qh_ops->end_io(h) < 0)
return -1;
if (h->qh_qf.e2_file) {
+ __u64 new_size, size;
+
+ new_size = compute_inode_size(h->qh_qf.fs, h->qh_qf.ino);
ext2fs_file_flush(h->qh_qf.e2_file);
- ext2fs_file_set_size2(h->qh_qf.e2_file,
- compute_inode_size(h->qh_qf.fs, h->qh_qf.ino));
+ if (ext2fs_file_get_lsize(h->qh_qf.e2_file, &size))
+ new_size = 0;
+ if (size != new_size)
+ ext2fs_file_set_size2(h->qh_qf.e2_file, new_size);
ext2fs_file_close(h->qh_qf.e2_file);
}
-
+ if (qctx->quota_file[h->qh_type] == h)
+ ext2fs_free_mem(&qctx->quota_file[h->qh_type]);
return 0;
}
@@ -392,7 +413,7 @@ struct dquot *get_empty_dquot(void)
struct dquot *dquot;
if (ext2fs_get_memzero(sizeof(struct dquot), &dquot)) {
- log_err("Failed to allocate dquot", "");
+ log_err("Failed to allocate dquot");
return NULL;
}
diff --git a/lib/quota/quotaio.h b/lib/quota/quotaio.h
index 91a1ff27..7ca7830e 100644
--- a/lib/quota/quotaio.h
+++ b/lib/quota/quotaio.h
@@ -1,6 +1,32 @@
/** quotaio.h
*
+ * Interface to the quota library.
+ *
+ * The quota library provides interface for creating and updating the quota
+ * files and the ext4 superblock fields. It supports the new VFS_V1 quota
+ * format. The quota library also provides support for keeping track of quotas
+ * in memory.
+ * The typical way to use the quota library is as follows:
+ * {
+ * quota_ctx_t qctx;
+ *
+ * quota_init_context(&qctx, fs, -1);
+ * {
+ * quota_compute_usage(qctx, -1);
+ * AND/OR
+ * quota_data_add/quota_data_sub/quota_data_inodes();
+ * }
+ * quota_write_inode(qctx, USRQUOTA);
+ * quota_write_inode(qctx, GRPQUOTA);
+ * quota_release_context(&qctx);
+ * }
+ *
+ * This initial version does not support reading the quota files. This support
+ * will be added in near future.
+ *
+ * Aditya Kali <adityakali@google.com>
* Header of IO operations for quota utilities
+ *
* Jan Kara <jack@suse.cz>
*/
@@ -11,14 +37,44 @@
#include <sys/types.h>
#include <sys/stat.h>
+#include "ext2fs/ext2_fs.h"
#include "ext2fs/ext2fs.h"
-#include "quota.h"
#include "dqblk_v2.h"
+#include "../e2fsck/dict.h"
+
+typedef int64_t qsize_t; /* Type in which we store size limitations */
+
+#define MAXQUOTAS 2
+#define USRQUOTA 0
+#define GRPQUOTA 1
+
+typedef struct quota_ctx *quota_ctx_t;
+
+struct quota_ctx {
+ ext2_filsys fs;
+ dict_t *quota_dict[MAXQUOTAS];
+ struct quota_handle *quota_file[MAXQUOTAS];
+};
+
+/*
+ * Definitions of magics and versions of current quota files
+ */
+#define INITQMAGICS {\
+ 0xd9c01f11, /* USRQUOTA */\
+ 0xd9c01927 /* GRPQUOTA */\
+}
+
+/* Size of blocks in which are counted size limits in generic utility parts */
+#define QUOTABLOCK_BITS 10
+#define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS)
+#define toqb(x) (((x) + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS)
+
+/* Quota format type IDs */
+#define QFMT_VFS_OLD 1
+#define QFMT_VFS_V0 2
+#define QFMT_VFS_V1 4
/*
- * Definitions for disk quotas imposed on the average user
- * (big brother finally hits Linux).
- *
* The following constants define the default amount of time given a user
* before the soft limits are treated as hard limits (usually resulting
* in an allocation failure). The timer is started when the user crosses
@@ -27,11 +83,7 @@
#define MAX_IQ_TIME 604800 /* (7*24*60*60) 1 week */
#define MAX_DQ_TIME 604800 /* (7*24*60*60) 1 week */
-#define IOFL_QUOTAON 0x01 /* Is quota enabled in kernel? */
-#define IOFL_INFODIRTY 0x02 /* Did info change? */
-#define IOFL_RO 0x04 /* Just RO access? */
-#define IOFL_NFS_MIXED_PATHS 0x08 /* Should we trim leading slashes
- from NFSv4 mountpoints? */
+#define IOFL_INFODIRTY 0x01 /* Did info change? */
struct quotafile_ops;
@@ -54,6 +106,7 @@ struct quota_file {
struct quota_handle {
int qh_type; /* Type of quotafile */
int qh_fmt; /* Quotafile format */
+ int qh_file_flags;
int qh_io_flags; /* IO flags for file */
struct quota_file qh_qf;
unsigned int (*e2fs_read)(struct quota_file *qf, ext2_loff_t offset,
@@ -64,19 +117,6 @@ struct quota_handle {
struct util_dqinfo qh_info; /* Generic quotafile info */
};
-/* Statistics gathered from kernel */
-struct util_dqstats {
- u_int32_t lookups;
- u_int32_t drops;
- u_int32_t reads;
- u_int32_t writes;
- u_int32_t cache_hits;
- u_int32_t allocated_dquots;
- u_int32_t free_dquots;
- u_int32_t syncs;
- u_int32_t version;
-};
-
/* Utility quota block */
struct util_dqblk {
qsize_t dqb_ihardlimit;
@@ -101,6 +141,8 @@ struct dquot {
struct util_dqblk dq_dqb; /* Parsed data of dquot */
};
+#define DQF_SEEN 0x0001
+
/* Structure of quotafile operations */
struct quotafile_ops {
/* Check whether quotafile is in our format */
@@ -129,17 +171,9 @@ struct quotafile_ops {
/* This might go into a special header file but that sounds a bit silly... */
extern struct quotafile_ops quotafile_ops_meta;
-static inline void mark_quotafile_info_dirty(struct quota_handle *h)
-{
- h->qh_io_flags |= IOFL_INFODIRTY;
-}
-
-#define QIO_ENABLED(h) ((h)->qh_io_flags & IOFL_QUOTAON)
-#define QIO_RO(h) ((h)->qh_io_flags & IOFL_RO)
-
/* Open existing quotafile of given type (and verify its format) on given
* filesystem. */
-errcode_t quota_file_open(struct quota_handle *h, ext2_filsys fs,
+errcode_t quota_file_open(quota_ctx_t qctx, struct quota_handle *h,
ext2_ino_t qf_ino, int type, int fmt, int flags);
@@ -148,7 +182,7 @@ errcode_t quota_file_create(struct quota_handle *h, ext2_filsys fs,
int type, int fmt);
/* Close quotafile */
-errcode_t quota_file_close(struct quota_handle *h);
+errcode_t quota_file_close(quota_ctx_t qctx, struct quota_handle *h);
/* Get empty quota structure */
struct dquot *get_empty_dquot(void);
@@ -167,4 +201,25 @@ const char *quota_get_qf_name(int type, int fmt, char *buf);
const char *quota_get_qf_path(const char *mntpt, int qtype, int fmt,
char *path_buf, size_t path_buf_size);
+/* In mkquota.c */
+errcode_t quota_init_context(quota_ctx_t *qctx, ext2_filsys fs, int qtype);
+void quota_data_inodes(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
+ int adjust);
+void quota_data_add(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
+ qsize_t space);
+void quota_data_sub(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
+ qsize_t space);
+errcode_t quota_write_inode(quota_ctx_t qctx, int qtype);
+errcode_t quota_update_limits(quota_ctx_t qctx, ext2_ino_t qf_ino, int type);
+errcode_t quota_compute_usage(quota_ctx_t qctx);
+void quota_release_context(quota_ctx_t *qctx);
+
+errcode_t quota_remove_inode(ext2_filsys fs, int qtype);
+int quota_file_exists(ext2_filsys fs, int qtype, int fmt);
+void quota_set_sb_inum(ext2_filsys fs, ext2_ino_t ino, int qtype);
+errcode_t quota_compare_and_update(quota_ctx_t qctx, int qtype,
+ int *usage_inconsistent);
+
+
+
#endif /* GUARD_QUOTAIO_H */
diff --git a/lib/quota/quotaio_tree.c b/lib/quota/quotaio_tree.c
index 9080e77f..4d7a9ab1 100644
--- a/lib/quota/quotaio_tree.c
+++ b/lib/quota/quotaio_tree.c
@@ -24,7 +24,7 @@ static inline dqbuf_t getdqbuf(void)
{
dqbuf_t buf;
if (ext2fs_get_memzero(QT_BLKSIZE, &buf)) {
- log_err("Failed to allocate dqbuf", "");
+ log_err("Failed to allocate dqbuf");
return NULL;
}
@@ -53,8 +53,13 @@ static int get_index(qid_t id, int depth)
return (id >> ((QT_TREEDEPTH - depth - 1) * 8)) & 0xff;
}
+static inline void mark_quotafile_info_dirty(struct quota_handle *h)
+{
+ h->qh_io_flags |= IOFL_INFODIRTY;
+}
+
/* Read given block */
-static void read_blk(struct quota_handle *h, uint blk, dqbuf_t buf)
+static void read_blk(struct quota_handle *h, unsigned int blk, dqbuf_t buf)
{
int err;
@@ -67,7 +72,7 @@ static void read_blk(struct quota_handle *h, uint blk, dqbuf_t buf)
}
/* Write block */
-static int write_blk(struct quota_handle *h, uint blk, dqbuf_t buf)
+static int write_blk(struct quota_handle *h, unsigned int blk, dqbuf_t buf)
{
int err;
@@ -101,7 +106,7 @@ static int get_free_dqblk(struct quota_handle *h)
if (write_blk(h, info->dqi_blocks, buf) < 0) {
freedqbuf(buf);
log_err("Cannot allocate new quota block "
- "(out of disk space).", "");
+ "(out of disk space).");
return -ENOSPC;
}
blk = info->dqi_blocks++;
@@ -112,7 +117,8 @@ static int get_free_dqblk(struct quota_handle *h)
}
/* Put given block to free list */
-static void put_free_dqblk(struct quota_handle *h, dqbuf_t buf, uint blk)
+static void put_free_dqblk(struct quota_handle *h, dqbuf_t buf,
+ unsigned int blk)
{
struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf;
struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree;
@@ -126,11 +132,12 @@ static void put_free_dqblk(struct quota_handle *h, dqbuf_t buf, uint blk)
}
/* Remove given block from the list of blocks with free entries */
-static void remove_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk)
+static void remove_free_dqentry(struct quota_handle *h, dqbuf_t buf,
+ unsigned int blk)
{
dqbuf_t tmpbuf = getdqbuf();
struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf;
- uint nextblk = ext2fs_le32_to_cpu(dh->dqdh_next_free), prevblk =
+ unsigned int nextblk = ext2fs_le32_to_cpu(dh->dqdh_next_free), prevblk =
ext2fs_le32_to_cpu(dh->dqdh_prev_free);
@@ -159,7 +166,8 @@ static void remove_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk)
}
/* Insert given block to the beginning of list with free entries */
-static void insert_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk)
+static void insert_free_dqentry(struct quota_handle *h, dqbuf_t buf,
+ unsigned int blk)
{
dqbuf_t tmpbuf = getdqbuf();
struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf;
@@ -183,8 +191,8 @@ static void insert_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk)
}
/* Find space for dquot */
-static uint find_free_dqentry(struct quota_handle *h, struct dquot *dquot,
- int *err)
+static unsigned int find_free_dqentry(struct quota_handle *h,
+ struct dquot *dquot, int *err)
{
int blk, i;
struct qt_disk_dqdbheader *dh;
@@ -230,8 +238,7 @@ static uint find_free_dqentry(struct quota_handle *h, struct dquot *dquot,
ddquot += info->dqi_entry_size;
if (i == qtree_dqstr_in_blk(info))
- log_err("find_free_dqentry(): Data block full but it "
- "shouldn't.", "");
+ log_err("find_free_dqentry(): Data block full unexpectedly.");
write_blk(h, blk, buf);
dquot->dq_dqb.u.v2_mdqb.dqb_off =
@@ -243,12 +250,12 @@ static uint find_free_dqentry(struct quota_handle *h, struct dquot *dquot,
/* Insert reference to structure into the trie */
static int do_insert_tree(struct quota_handle *h, struct dquot *dquot,
- uint * treeblk, int depth)
+ unsigned int * treeblk, int depth)
{
dqbuf_t buf;
int newson = 0, newact = 0;
- u_int32_t *ref;
- uint newblk;
+ __u32 *ref;
+ unsigned int newblk;
int ret = 0;
log_debug("inserting in tree: treeblk=%u, depth=%d", *treeblk, depth);
@@ -267,7 +274,7 @@ static int do_insert_tree(struct quota_handle *h, struct dquot *dquot,
read_blk(h, *treeblk, buf);
}
- ref = (u_int32_t *) buf;
+ ref = (__u32 *) buf;
newblk = ext2fs_le32_to_cpu(ref[get_index(dquot->dq_id, depth)]);
if (!newblk)
newson = 1;
@@ -297,11 +304,11 @@ out_buf:
/* Wrapper for inserting quota structure into tree */
static void dq_insert_tree(struct quota_handle *h, struct dquot *dquot)
{
- uint tmp = QT_TREEOFF;
+ unsigned int tmp = QT_TREEOFF;
if (do_insert_tree(h, dquot, &tmp, 0) < 0)
log_err("Cannot write quota (id %u): %s",
- (uint) dquot->dq_id, strerror(errno));
+ (unsigned int) dquot->dq_id, strerror(errno));
}
/* Write dquot to file */
@@ -319,9 +326,10 @@ void qtree_write_dquot(struct dquot *dquot)
if (ret) {
errno = ENOMEM;
log_err("Quota write failed (id %u): %s",
- (uint)dquot->dq_id, strerror(errno));
+ (unsigned int)dquot->dq_id, strerror(errno));
return;
}
+ memset(ddquot, 0, info->dqi_entry_size);
if (!dquot->dq_dqb.u.v2_mdqb.dqb_off)
dq_insert_tree(dquot->dq_h, dquot);
@@ -336,13 +344,14 @@ void qtree_write_dquot(struct dquot *dquot)
if (ret > 0)
errno = ENOSPC;
log_err("Quota write failed (id %u): %s",
- (uint)dquot->dq_id, strerror(errno));
+ (unsigned int)dquot->dq_id, strerror(errno));
}
ext2fs_free_mem(&ddquot);
}
/* Free dquot entry in data block */
-static void free_dqentry(struct quota_handle *h, struct dquot *dquot, uint blk)
+static void free_dqentry(struct quota_handle *h, struct dquot *dquot,
+ unsigned int blk)
{
struct qt_disk_dqdbheader *dh;
struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree;
@@ -354,7 +363,7 @@ static void free_dqentry(struct quota_handle *h, struct dquot *dquot, uint blk)
if (dquot->dq_dqb.u.v2_mdqb.dqb_off >> QT_BLKSIZE_BITS != blk)
log_err("Quota structure has offset to other block (%u) "
"than it should (%u).", blk,
- (uint) (dquot->dq_dqb.u.v2_mdqb.dqb_off >>
+ (unsigned int) (dquot->dq_dqb.u.v2_mdqb.dqb_off >>
QT_BLKSIZE_BITS));
read_blk(h, blk, buf);
@@ -384,11 +393,11 @@ static void free_dqentry(struct quota_handle *h, struct dquot *dquot, uint blk)
/* Remove reference to dquot from tree */
static void remove_tree(struct quota_handle *h, struct dquot *dquot,
- uint * blk, int depth)
+ unsigned int * blk, int depth)
{
dqbuf_t buf = getdqbuf();
- uint newblk;
- u_int32_t *ref = (u_int32_t *) buf;
+ unsigned int newblk;
+ __u32 *ref = (__u32 *) buf;
if (!buf)
return;
@@ -424,7 +433,7 @@ static void remove_tree(struct quota_handle *h, struct dquot *dquot,
/* Delete dquot from tree */
void qtree_delete_dquot(struct dquot *dquot)
{
- uint tmp = QT_TREEOFF;
+ unsigned int tmp = QT_TREEOFF;
if (!dquot->dq_dqb.u.v2_mdqb.dqb_off) /* Even not allocated? */
return;
@@ -433,7 +442,7 @@ void qtree_delete_dquot(struct dquot *dquot)
/* Find entry in block */
static ext2_loff_t find_block_dqentry(struct quota_handle *h,
- struct dquot *dquot, uint blk)
+ struct dquot *dquot, unsigned int blk)
{
struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree;
dqbuf_t buf = getdqbuf();
@@ -460,11 +469,11 @@ static ext2_loff_t find_block_dqentry(struct quota_handle *h,
/* Find entry for given id in the tree */
static ext2_loff_t find_tree_dqentry(struct quota_handle *h,
struct dquot *dquot,
- uint blk, int depth)
+ unsigned int blk, int depth)
{
dqbuf_t buf = getdqbuf();
ext2_loff_t ret = 0;
- u_int32_t *ref = (u_int32_t *) buf;
+ __u32 *ref = (__u32 *) buf;
if (!buf)
return -ENOMEM;
@@ -536,7 +545,7 @@ struct dquot *qtree_read_dquot(struct quota_handle *h, qid_t id)
#define set_bit(bmp, ind) ((bmp)[(ind) >> 3] |= (1 << ((ind) & 7)))
#define get_bit(bmp, ind) ((bmp)[(ind) >> 3] & (1 << ((ind) & 7)))
-static int report_block(struct dquot *dquot, uint blk, char *bitmap,
+static int report_block(struct dquot *dquot, unsigned int blk, char *bitmap,
int (*process_dquot) (struct dquot *, void *),
void *data)
{
@@ -570,7 +579,7 @@ static int report_block(struct dquot *dquot, uint blk, char *bitmap,
return entries;
}
-static void check_reference(struct quota_handle *h, uint blk)
+static void check_reference(struct quota_handle *h, unsigned int blk)
{
if (blk >= h->qh_info.u.v2_mdqi.dqi_qtree.dqi_blocks)
log_err("Illegal reference (%u >= %u) in %s quota file. "
@@ -581,13 +590,14 @@ static void check_reference(struct quota_handle *h, uint blk)
type2name(h->qh_type));
}
-static int report_tree(struct dquot *dquot, uint blk, int depth, char *bitmap,
+static int report_tree(struct dquot *dquot, unsigned int blk, int depth,
+ char *bitmap,
int (*process_dquot) (struct dquot *, void *),
void *data)
{
int entries = 0, i;
dqbuf_t buf = getdqbuf();
- u_int32_t *ref = (u_int32_t *) buf;
+ __u32 *ref = (__u32 *) buf;
if (!buf)
return 0;
@@ -616,9 +626,9 @@ static int report_tree(struct dquot *dquot, uint blk, int depth, char *bitmap,
return entries;
}
-static uint find_set_bits(char *bmp, int blocks)
+static unsigned int find_set_bits(char *bmp, int blocks)
{
- uint i, used = 0;
+ unsigned int i, used = 0;
for (i = 0; i < blocks; i++)
if (get_bit(bmp, i))
diff --git a/lib/quota/quotaio_tree.h b/lib/quota/quotaio_tree.h
index 37c15cef..be34edbc 100644
--- a/lib/quota/quotaio_tree.h
+++ b/lib/quota/quotaio_tree.h
@@ -6,7 +6,8 @@
#define _LINUX_QUOTA_TREE_H
#include <sys/types.h>
-#include "quota.h"
+
+typedef __u32 qid_t; /* Type in which we store ids in memory */
#define QT_TREEOFF 1 /* Offset of tree in file in blocks */
#define QT_TREEDEPTH 4 /* Depth of quota tree */
@@ -19,13 +20,13 @@
* so there will be space for exactly 21 quota-entries in a block
*/
struct qt_disk_dqdbheader {
- u_int32_t dqdh_next_free; /* Number of next block with free
+ __u32 dqdh_next_free; /* Number of next block with free
* entry */
- u_int32_t dqdh_prev_free; /* Number of previous block with free
+ __u32 dqdh_prev_free; /* Number of previous block with free
* entry */
- u_int16_t dqdh_entries; /* Number of valid entries in block */
- u_int16_t dqdh_pad1;
- u_int32_t dqdh_pad2;
+ __u16 dqdh_entries; /* Number of valid entries in block */
+ __u16 dqdh_pad1;
+ __u32 dqdh_pad2;
} __attribute__ ((packed));
struct dquot;
diff --git a/lib/quota/quotaio_v2.c b/lib/quota/quotaio_v2.c
index e6587068..e7bf29c3 100644
--- a/lib/quota/quotaio_v2.c
+++ b/lib/quota/quotaio_v2.c
@@ -18,8 +18,6 @@
#include "quotaio.h"
#include "quotaio_tree.h"
-typedef char *dqbuf_t;
-
static int v2_check_file(struct quota_handle *h, int type, int fmt);
static int v2_init_io(struct quota_handle *h);
static int v2_new_io(struct quota_handle *h);
@@ -43,9 +41,6 @@ struct quotafile_ops quotafile_ops_2 = {
.report = v2_report,
};
-#define getdqbuf() smalloc(V2_DQBLKSIZE)
-#define freedqbuf(buf) free(buf)
-
/*
* Copy dquot from disk to memory
*/
@@ -140,34 +135,6 @@ static inline void v2_mem2diskdqinfo(struct v2_disk_dqinfo *d,
ext2fs_cpu_to_le32(m->u.v2_mdqi.dqi_qtree.dqi_free_entry);
}
-/* Convert kernel quotablock format to utility one */
-static inline void v2_kern2utildqblk(struct util_dqblk *u,
- struct v2_kern_dqblk *k)
-{
- u->dqb_ihardlimit = k->dqb_ihardlimit;
- u->dqb_isoftlimit = k->dqb_isoftlimit;
- u->dqb_bhardlimit = k->dqb_bhardlimit;
- u->dqb_bsoftlimit = k->dqb_bsoftlimit;
- u->dqb_curinodes = k->dqb_curinodes;
- u->dqb_curspace = k->dqb_curspace;
- u->dqb_itime = k->dqb_itime;
- u->dqb_btime = k->dqb_btime;
-}
-
-/* Convert utility quotablock format to kernel one */
-static inline void v2_util2kerndqblk(struct v2_kern_dqblk *k,
- struct util_dqblk *u)
-{
- k->dqb_ihardlimit = u->dqb_ihardlimit;
- k->dqb_isoftlimit = u->dqb_isoftlimit;
- k->dqb_bhardlimit = u->dqb_bhardlimit;
- k->dqb_bsoftlimit = u->dqb_bsoftlimit;
- k->dqb_curinodes = u->dqb_curinodes;
- k->dqb_curspace = u->dqb_curspace;
- k->dqb_itime = u->dqb_itime;
- k->dqb_btime = u->dqb_btime;
-}
-
static int v2_read_header(struct quota_handle *h, struct v2_disk_dqheader *dqh)
{
if (h->e2fs_read(&h->qh_qf, 0, dqh, sizeof(struct v2_disk_dqheader)) !=
@@ -184,27 +151,19 @@ static int v2_check_file(struct quota_handle *h, int type, int fmt)
{
struct v2_disk_dqheader dqh;
int file_magics[] = INITQMAGICS;
- int known_versions[] = INIT_V2_VERSIONS;
- int version;
- if (!v2_read_header(h, &dqh))
+ if (fmt != QFMT_VFS_V1)
return 0;
- if (fmt == QFMT_VFS_V0)
- version = 0;
- else if (fmt == QFMT_VFS_V1)
- version = 1;
- else
+
+ if (!v2_read_header(h, &dqh))
return 0;
if (ext2fs_le32_to_cpu(dqh.dqh_magic) != file_magics[type]) {
if (ext2fs_be32_to_cpu(dqh.dqh_magic) == file_magics[type])
- log_err("Your quota file is stored in wrong "
- "endianity.", "");
+ log_err("Your quota file is stored in wrong endianity");
return 0;
}
- if (ext2fs_le32_to_cpu(dqh.dqh_version) > known_versions[type])
- return 0;
- if (version != ext2fs_le32_to_cpu(dqh.dqh_version))
+ if (V2_VERSION != ext2fs_le32_to_cpu(dqh.dqh_version))
return 0;
return 1;
}
@@ -236,14 +195,13 @@ static int v2_new_io(struct quota_handle *h)
int file_magics[] = INITQMAGICS;
struct v2_disk_dqheader ddqheader;
struct v2_disk_dqinfo ddqinfo;
- int version = 1;
if (h->qh_fmt != QFMT_VFS_V1)
return -1;
/* Write basic quota header */
ddqheader.dqh_magic = ext2fs_cpu_to_le32(file_magics[h->qh_type]);
- ddqheader.dqh_version = ext2fs_cpu_to_le32(version);
+ ddqheader.dqh_version = ext2fs_cpu_to_le32(V2_VERSION);
if (h->e2fs_write(&h->qh_qf, 0, &ddqheader, sizeof(ddqheader)) !=
sizeof(ddqheader))
return -1;
@@ -320,6 +278,6 @@ static int v2_scan_dquots(struct quota_handle *h,
*/
static int v2_report(struct quota_handle *h, int verbose)
{
- log_err("Not Implemented.", "");
+ log_err("Not Implemented.");
return -1;
}
diff --git a/lib/quota/quotaio_v2.h b/lib/quota/quotaio_v2.h
index 072e36fc..646c698b 100644
--- a/lib/quota/quotaio_v2.h
+++ b/lib/quota/quotaio_v2.h
@@ -8,15 +8,16 @@
#define GUARD_QUOTAIO_V2_H
#include <sys/types.h>
-#include "quota.h"
+#include "quotaio.h"
/* Offset of info header in file */
#define V2_DQINFOOFF sizeof(struct v2_disk_dqheader)
-#define INIT_V2_VERSIONS { 1, 1}
+/* Supported version of quota-tree format */
+#define V2_VERSION 1
struct v2_disk_dqheader {
- u_int32_t dqh_magic; /* Magic number identifying file */
- u_int32_t dqh_version; /* File version */
+ __u32 dqh_magic; /* Magic number identifying file */
+ __u32 dqh_version; /* File version */
} __attribute__ ((packed));
/* Flags for version specific files */
@@ -24,80 +25,30 @@ struct v2_disk_dqheader {
/* Header with type and version specific information */
struct v2_disk_dqinfo {
- u_int32_t dqi_bgrace; /* Time before block soft limit becomes
+ __u32 dqi_bgrace; /* Time before block soft limit becomes
* hard limit */
- u_int32_t dqi_igrace; /* Time before inode soft limit becomes
+ __u32 dqi_igrace; /* Time before inode soft limit becomes
* hard limit */
- u_int32_t dqi_flags; /* Flags for quotafile (DQF_*) */
- u_int32_t dqi_blocks; /* Number of blocks in file */
- u_int32_t dqi_free_blk; /* Number of first free block in the list */
- u_int32_t dqi_free_entry; /* Number of block with at least one
+ __u32 dqi_flags; /* Flags for quotafile (DQF_*) */
+ __u32 dqi_blocks; /* Number of blocks in file */
+ __u32 dqi_free_blk; /* Number of first free block in the list */
+ __u32 dqi_free_entry; /* Number of block with at least one
* free entry */
} __attribute__ ((packed));
-/* Structure of quota for one user on disk */
-struct v2r0_disk_dqblk {
- u_int32_t dqb_id; /* id this quota applies to */
- u_int32_t dqb_ihardlimit; /* absolute limit on allocated inodes */
- u_int32_t dqb_isoftlimit; /* preferred inode limit */
- u_int32_t dqb_curinodes; /* current # allocated inodes */
- u_int32_t dqb_bhardlimit; /* absolute limit on disk space
- * (in QUOTABLOCK_SIZE) */
- u_int32_t dqb_bsoftlimit; /* preferred limit on disk space
- * (in QUOTABLOCK_SIZE) */
- u_int64_t dqb_curspace; /* current space occupied (in bytes) */
- u_int64_t dqb_btime; /* time limit for excessive disk use */
- u_int64_t dqb_itime; /* time limit for excessive inode use */
-} __attribute__ ((packed));
-
struct v2r1_disk_dqblk {
- u_int32_t dqb_id; /* id this quota applies to */
- u_int32_t dqb_pad;
- u_int64_t dqb_ihardlimit; /* absolute limit on allocated inodes */
- u_int64_t dqb_isoftlimit; /* preferred inode limit */
- u_int64_t dqb_curinodes; /* current # allocated inodes */
- u_int64_t dqb_bhardlimit; /* absolute limit on disk space
+ __u32 dqb_id; /* id this quota applies to */
+ __u32 dqb_pad;
+ __u64 dqb_ihardlimit; /* absolute limit on allocated inodes */
+ __u64 dqb_isoftlimit; /* preferred inode limit */
+ __u64 dqb_curinodes; /* current # allocated inodes */
+ __u64 dqb_bhardlimit; /* absolute limit on disk space
* (in QUOTABLOCK_SIZE) */
- u_int64_t dqb_bsoftlimit; /* preferred limit on disk space
+ __u64 dqb_bsoftlimit; /* preferred limit on disk space
* (in QUOTABLOCK_SIZE) */
- u_int64_t dqb_curspace; /* current space occupied (in bytes) */
- u_int64_t dqb_btime; /* time limit for excessive disk use */
- u_int64_t dqb_itime; /* time limit for excessive inode use */
+ __u64 dqb_curspace; /* current space occupied (in bytes) */
+ __u64 dqb_btime; /* time limit for excessive disk use */
+ __u64 dqb_itime; /* time limit for excessive inode use */
} __attribute__ ((packed));
-/* Structure of quota for communication with kernel */
-struct v2_kern_dqblk {
- unsigned int dqb_ihardlimit;
- unsigned int dqb_isoftlimit;
- unsigned int dqb_curinodes;
- unsigned int dqb_bhardlimit;
- unsigned int dqb_bsoftlimit;
- qsize_t dqb_curspace;
- time_t dqb_btime;
- time_t dqb_itime;
-};
-
-/* Structure of quotafile info for communication with kernel (obsolete) */
-struct v2_kern_dqinfo {
- unsigned int dqi_bgrace;
- unsigned int dqi_igrace;
- unsigned int dqi_flags;
- unsigned int dqi_blocks;
- unsigned int dqi_free_blk;
- unsigned int dqi_free_entry;
-};
-
-/* Structure with gathered statistics from kernel */
-struct v2_dqstats {
- u_int32_t lookups;
- u_int32_t drops;
- u_int32_t reads;
- u_int32_t writes;
- u_int32_t cache_hits;
- u_int32_t allocated_dquots;
- u_int32_t free_dquots;
- u_int32_t syncs;
- u_int32_t version;
-};
-
#endif
diff --git a/lib/ss/Makefile.in b/lib/ss/Makefile.in
index 19413cc2..8f85bf1b 100644
--- a/lib/ss/Makefile.in
+++ b/lib/ss/Makefile.in
@@ -20,7 +20,7 @@ ELF_SO_VERSION = 2
ELF_IMAGE = libss
ELF_MYDIR = ss
ELF_INSTALL_DIR = $(root_libdir)
-ELF_OTHER_LIBS = -L../.. -lcom_err $(DLOPEN_LIB)
+ELF_OTHER_LIBS = -lcom_err $(DLOPEN_LIB)
BSDLIB_VERSION = 1.0
BSDLIB_IMAGE = libss
@@ -34,6 +34,7 @@ MK_CMDS=_SS_DIR_OVERRIDE=. ./mk_cmds
.c.o:
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $<
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
@CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -DSHARED_ELF_LIB -fPIC -o elfshared/$*.o -c $<
@@ -127,7 +128,7 @@ installdirs::
$(E) " MKINSTALLDIRS $(libdir) $(includedir)/ss $(datadir)/ss $(bindir)"
$(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
$(DESTDIR)$(includedir)/ss $(DESTDIR)$(datadir)/ss \
- $(DESTDIR)$(bindir) $(DESTDIR)$(libdir)/pkgconfig
+ $(DESTDIR)$(bindir) $(DESTDIR)$(pkgconfigdir)
install:: libss.a $(INSTALL_HFILES) installdirs ss_err.h mk_cmds ss.pc
$(E) " INSTALL_DATA $(DESTDIR)$(libdir)/libss.a"
@@ -149,19 +150,19 @@ install:: libss.a $(INSTALL_HFILES) installdirs ss_err.h mk_cmds ss.pc
$(Q) $(INSTALL) mk_cmds $(DESTDIR)$(bindir)/mk_cmds
$(E) " INSTALL_DATA $(man1dir)/mk_cmds.1"
$(Q) $(INSTALL_DATA) $(srcdir)/mk_cmds.1 $(DESTDIR)$(man1dir)/mk_cmds.1
- $(E) " INSTALL_DATA $(libdir)/pkgconfig/ss.pc"
- $(Q) $(INSTALL_DATA) ss.pc $(DESTDIR)$(libdir)/pkgconfig/ss.pc
+ $(E) " INSTALL_DATA $(pkgconfigdir)/ss.pc"
+ $(Q) $(INSTALL_DATA) ss.pc $(DESTDIR)$(pkgconfigdir)/ss.pc
uninstall::
$(RM) -f $(DESTDIR)$(libdir)/libss.a $(DESTDIR)$(bindir)/mk_cmds \
- $(DESTDIR)$(libdir)/pkgconfig/ss.pc \
+ $(DESTDIR)$(pkgconfigdir)/ss.pc \
$(DESTDIR)$(man1dir)/mk_cmds.1
$(RM) -rf $(DESTDIR)$(includedir)/ss $(DESTDIR)$(datadir)/ss
test_ss: test_ss.o test_cmd.o $(DEPLIBSS) $(DEPLIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o $@ test_ss.o test_cmd.o $(ALL_CFLAGS) \
- $(LIBSS) $(LIBCOM_ERR)
+ $(LIBSS) $(LIBCOM_ERR) $(SYSLIBS)
check:: all test_ss
$(E) " RUN TEST test_ss"
diff --git a/lib/ss/error.c b/lib/ss/error.c
index 781ba82d..8d345a9f 100644
--- a/lib/ss/error.c
+++ b/lib/ss/error.c
@@ -20,8 +20,7 @@
#include <stdarg.h>
-char * ss_name(sci_idx)
- int sci_idx;
+char *ss_name(int sci_idx)
{
register char *ret_val;
register ss_data *infop;
@@ -70,10 +69,7 @@ void ss_error (int sci_idx, long code, const char * fmt, ...)
va_end(pvar);
}
-void ss_perror (sci_idx, code, msg) /* for compatibility */
- int sci_idx;
- long code;
- char const *msg;
+void ss_perror(int sci_idx, long code, char const *msg) /* for compatibility */
{
ss_error (sci_idx, code, "%s", msg);
}
diff --git a/lib/ss/execute_cmd.c b/lib/ss/execute_cmd.c
index 53c10c9c..d443a468 100644
--- a/lib/ss/execute_cmd.c
+++ b/lib/ss/execute_cmd.c
@@ -82,11 +82,8 @@ static struct _ss_request_entry * get_request (tbl, idx)
* Notes:
*/
-static int check_request_table (rqtbl, argc, argv, sci_idx)
- register ss_request_table *rqtbl;
- int argc;
- char *argv[];
- int sci_idx;
+static int check_request_table(register ss_request_table *rqtbl, int argc,
+ char *argv[], int sci_idx)
{
#ifdef __SABER__
struct _ss_request_entry *request;
@@ -135,10 +132,7 @@ static int check_request_table (rqtbl, argc, argv, sci_idx)
* Notes:
*/
-static int really_execute_command (sci_idx, argc, argv)
- int sci_idx;
- int argc;
- char **argv[];
+static int really_execute_command(int sci_idx, int argc, char **argv[])
{
register ss_request_table **rqtbl;
register ss_data *info;
@@ -168,9 +162,7 @@ static int really_execute_command (sci_idx, argc, argv)
* Notes:
*/
-int ss_execute_command(sci_idx, argv)
- int sci_idx;
- register char *argv[];
+int ss_execute_command(int sci_idx, register char *argv[])
{
register int i, argc;
char **argp;
@@ -202,9 +194,7 @@ int ss_execute_command(sci_idx, argv)
* Notes:
*/
-int ss_execute_line (sci_idx, line_ptr)
- int sci_idx;
- char *line_ptr;
+int ss_execute_line(int sci_idx, char *line_ptr)
{
char **argv;
int argc, ret;
diff --git a/lib/ss/help.c b/lib/ss/help.c
index 6a61e70a..5204401b 100644
--- a/lib/ss/help.c
+++ b/lib/ss/help.c
@@ -36,11 +36,7 @@ extern int errno;
#endif
#include "ss_internal.h"
-void ss_help (argc, argv, sci_idx, info_ptr)
- int argc;
- char const * const *argv;
- int sci_idx;
- pointer info_ptr;
+void ss_help(int argc, char const * const *argv, int sci_idx, pointer info_ptr)
{
char *buffer;
char const *request_name;
@@ -110,13 +106,14 @@ void ss_help (argc, argv, sci_idx, info_ptr)
switch (child = fork()) {
case -1:
ss_perror(sci_idx, errno, "Can't fork for pager");
+ (void) close(fd);
return;
case 0:
(void) dup2(fd, 0); /* put file on stdin */
ss_page_stdin();
default:
(void) close(fd); /* what can we do if it fails? */
- while (wait(0) != child) {
+ while (wait(NULL) != child) {
/* do nothing if wrong pid */
};
}
@@ -128,10 +125,7 @@ void ss_help (argc, argv, sci_idx, info_ptr)
#include <dirent.h>
#endif
-void ss_add_info_dir(sci_idx, info_dir, code_ptr)
- int sci_idx;
- char *info_dir;
- int *code_ptr;
+void ss_add_info_dir(int sci_idx, char *info_dir, int *code_ptr)
{
register ss_data *info;
DIR *d;
@@ -165,10 +159,7 @@ void ss_add_info_dir(sci_idx, info_dir, code_ptr)
*code_ptr = 0;
}
-void ss_delete_info_dir(sci_idx, info_dir, code_ptr)
- int sci_idx;
- char *info_dir;
- int *code_ptr;
+void ss_delete_info_dir(int sci_idx, char *info_dir, int *code_ptr)
{
register char **i_d;
register char **info_dirs;
diff --git a/lib/ss/invocation.c b/lib/ss/invocation.c
index a7110500..457e7a2c 100644
--- a/lib/ss/invocation.c
+++ b/lib/ss/invocation.c
@@ -20,13 +20,11 @@
#ifdef HAVE_DLOPEN
#include <dlfcn.h>
#endif
+#include <errno.h>
-int ss_create_invocation(subsystem_name, version_string, info_ptr,
- request_table_ptr, code_ptr)
- const char *subsystem_name, *version_string;
- void *info_ptr;
- ss_request_table *request_table_ptr;
- int *code_ptr;
+int ss_create_invocation(const char *subsystem_name, const char *version_string,
+ void *info_ptr, ss_request_table *request_table_ptr,
+ int *code_ptr)
{
register int sci_idx;
register ss_data *new_table;
@@ -46,6 +44,11 @@ int ss_create_invocation(subsystem_name, version_string, info_ptr,
;
table = (ss_data **) realloc((char *)table,
((unsigned)sci_idx+2)*size);
+ if (table == NULL) {
+ *code_ptr = ENOMEM;
+ free(new_table);
+ return 0;
+ }
table[sci_idx+1] = (ss_data *) NULL;
table[sci_idx] = new_table;
@@ -85,8 +88,7 @@ int ss_create_invocation(subsystem_name, version_string, info_ptr,
}
void
-ss_delete_invocation(sci_idx)
- int sci_idx;
+ss_delete_invocation(int sci_idx)
{
register ss_data *t;
int ignored_code;
diff --git a/lib/ss/list_rqs.c b/lib/ss/list_rqs.c
index 38e6aef0..021a3835 100644
--- a/lib/ss/list_rqs.c
+++ b/lib/ss/list_rqs.c
@@ -18,20 +18,15 @@
typedef void sigret_t;
-static char const twentyfive_spaces[26] =
- " ";
-static char const NL[2] = "\n";
-
void ss_list_requests(int argc __SS_ATTR((unused)),
const char * const *argv __SS_ATTR((unused)),
int sci_idx, void *infop __SS_ATTR((unused)))
{
ss_request_entry *entry;
char const * const *name;
- int spacing;
+ int i, spacing;
ss_request_table **table;
- char buffer[BUFSIZ];
FILE *output;
int fd;
sigset_t omask, igmask;
@@ -45,6 +40,11 @@ void ss_list_requests(int argc __SS_ATTR((unused)),
sigprocmask(SIG_BLOCK, &igmask, &omask);
func = signal(SIGINT, SIG_IGN);
fd = ss_pager_create();
+ if (fd < 0) {
+ perror("ss_pager_create");
+ (void) signal(SIGINT, func);
+ return;
+ }
output = fdopen(fd, "w");
sigprocmask(SIG_SETMASK, &omask, (sigset_t *) 0);
@@ -55,27 +55,24 @@ void ss_list_requests(int argc __SS_ATTR((unused)),
entry = (*table)->requests;
for (; entry->command_names; entry++) {
spacing = -2;
- buffer[0] = '\0';
if (entry->flags & SS_OPT_DONT_LIST)
continue;
for (name = entry->command_names; *name; name++) {
int len = strlen(*name);
- strncat(buffer, *name, len);
+ fputs(*name, output);
spacing += len + 2;
if (name[1]) {
- strcat(buffer, ", ");
+ fputs(", ", output);
}
}
if (spacing > 23) {
- strcat(buffer, NL);
- fputs(buffer, output);
+ fputc('\n', output);
spacing = 0;
- buffer[0] = '\0';
}
- strncat(buffer, twentyfive_spaces, 25-spacing);
- strcat(buffer, entry->info_string);
- strcat(buffer, NL);
- fputs(buffer, output);
+ for (i = 0; i < 25 - spacing; i++)
+ fputc(' ', output);
+ fputs(entry->info_string, output);
+ fputc('\n', output);
}
}
fclose(output);
diff --git a/lib/ss/pager.c b/lib/ss/pager.c
index 2b3a4665..330249ec 100644
--- a/lib/ss/pager.c
+++ b/lib/ss/pager.c
@@ -15,6 +15,9 @@
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
@@ -39,7 +42,6 @@ extern int errno;
#endif
static char MORE[] = "more";
-extern char *_ss_pager_name;
extern char *getenv PROTOTYPE((const char *));
char *ss_safe_getenv(const char *arg)
@@ -56,7 +58,9 @@ char *ss_safe_getenv(const char *arg)
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
@@ -126,7 +130,7 @@ static int write_all(int fd, char *buf, size_t count)
return c;
}
-void ss_page_stdin()
+void ss_page_stdin(void)
{
int i;
sigset_t mask;
diff --git a/lib/ss/parse.c b/lib/ss/parse.c
index b70ad165..7c6c6791 100644
--- a/lib/ss/parse.c
+++ b/lib/ss/parse.c
@@ -43,12 +43,9 @@ enum parse_mode { WHITESPACE, TOKEN, QUOTED_STRING };
#define NEW_ARGV(old,n) (char **)realloc((char *)old,\
(unsigned)(n+2)*sizeof(char*))
-char **ss_parse (sci_idx, line_ptr, argc_ptr)
- int sci_idx;
- register char *line_ptr;
- int *argc_ptr;
+char **ss_parse(int sci_idx, register char *line_ptr, int *argc_ptr)
{
- register char **argv, *cp;
+ register char **argv, **new_argv, *cp;
register int argc;
register enum parse_mode parse_mode;
@@ -81,7 +78,13 @@ char **ss_parse (sci_idx, line_ptr, argc_ptr)
/* go to quoted-string mode */
parse_mode = QUOTED_STRING;
cp = line_ptr++;
- argv = NEW_ARGV (argv, argc);
+ new_argv = NEW_ARGV (argv, argc);
+ if (new_argv == NULL) {
+ free(argv);
+ *argc_ptr = 0;
+ return NULL;
+ }
+ argv = new_argv;
argv[argc++] = cp;
argv[argc] = NULL;
}
@@ -89,7 +92,13 @@ char **ss_parse (sci_idx, line_ptr, argc_ptr)
/* random-token mode */
parse_mode = TOKEN;
cp = line_ptr;
- argv = NEW_ARGV (argv, argc);
+ new_argv = NEW_ARGV (argv, argc);
+ if (new_argv == NULL) {
+ free(argv);
+ *argc_ptr = 0;
+ return NULL;
+ }
+ argv = new_argv;
argv[argc++] = line_ptr;
argv[argc] = NULL;
}
diff --git a/lib/ss/request_tbl.c b/lib/ss/request_tbl.c
index b0b6f959..135cb28b 100644
--- a/lib/ss/request_tbl.c
+++ b/lib/ss/request_tbl.c
@@ -20,11 +20,7 @@
#define ssrt ss_request_table /* for some readable code... */
-void ss_add_request_table(sci_idx, rqtbl_ptr, position, code_ptr)
- int sci_idx;
- ssrt *rqtbl_ptr;
- int position; /* 1 -> becomes second... */
- int *code_ptr;
+void ss_add_request_table(int sci_idx, ssrt *rqtbl_ptr, int position, int *code_ptr)
{
register ss_data *info;
register int i, size;
@@ -35,7 +31,7 @@ void ss_add_request_table(sci_idx, rqtbl_ptr, position, code_ptr)
;
/* size == C subscript of NULL == #elements */
size += 2; /* new element, and NULL */
- t = (ssrt **)realloc(info->rqt_tables, (unsigned)size*sizeof(ssrt));
+ t = (ssrt **)realloc(info->rqt_tables, (unsigned)size*sizeof(ssrt *));
if (t == (ssrt **)NULL) {
*code_ptr = errno;
return;
@@ -53,10 +49,7 @@ void ss_add_request_table(sci_idx, rqtbl_ptr, position, code_ptr)
*code_ptr = 0;
}
-void ss_delete_request_table(sci_idx, rqtbl_ptr, code_ptr)
- int sci_idx;
- ssrt *rqtbl_ptr;
- int *code_ptr;
+void ss_delete_request_table(int sci_idx, ssrt *rqtbl_ptr, int *code_ptr)
{
register ss_data *info;
register ssrt **rt1, **rt2;
diff --git a/lib/ss/ss.pc.in b/lib/ss/ss.pc.in
index cf893611..5c9eccb1 100644
--- a/lib/ss/ss.pc.in
+++ b/lib/ss/ss.pc.in
@@ -7,6 +7,6 @@ Name: ss
Description: Subsystem command parsing library
Version: @E2FSPROGS_VERSION@
Requires.private: com_err
-Cflags: -I${includedir}/ss
+Cflags: -I${includedir}/ss -I${includedir}
Libs: -L${libdir} -lss
Libs.private: @DLOPEN_LIB@
diff --git a/lib/ss/ss_internal.h b/lib/ss/ss_internal.h
index 15d618ee..19a6be7a 100644
--- a/lib/ss/ss_internal.h
+++ b/lib/ss/ss_internal.h
@@ -94,6 +94,7 @@ char **ss_rl_completion(const char *text, int start, int end);
extern ss_data **_ss_table;
extern char *ss_et_msgs[];
+extern char *_ss_pager_name;
#ifdef USE_SIGPROCMASK
/* fake sigmask, sigblock, sigsetmask */
diff --git a/lib/uuid/Makefile.in b/lib/uuid/Makefile.in
index b85c7203..a23e6520 100644
--- a/lib/uuid/Makefile.in
+++ b/lib/uuid/Makefile.in
@@ -62,6 +62,7 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
.c.o:
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
@CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
@@ -76,7 +77,7 @@ uuid.h: $(srcdir)/uuid.h.in
$(top_builddir)/lib/uuid/uuid_types.h: $(srcdir)/uuid_types.h.in $(top_builddir)/config.status
cd $(top_builddir); CONFIG_FILES=$(my_dir)/uuid_types.h ./config.status
-tst_uuid.o: $(srcdir)/tst_uuid.c
+tst_uuid.o: $(srcdir)/tst_uuid.c uuid.h
$(E) " CC $@"
$(Q) $(CC) $(ALL_CFLAGS) -c $(srcdir)/tst_uuid.c -o tst_uuid.o
@@ -86,8 +87,8 @@ tst_uuid: tst_uuid.o $(DEPSTATIC_LIBUUID)
uuid_time: $(srcdir)/uuid_time.c $(DEPLIBUUID)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_CFLAGS) -DDEBUG -o uuid_time $(srcdir)/uuid_time.c \
- $(LIBUUID)
+ $(Q) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -DDEBUG -o uuid_time \
+ $(srcdir)/uuid_time.c $(LIBUUID)
uuid.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid.3.in
$(E) " SUBST $@"
@@ -133,7 +134,7 @@ installdirs::
$(E) " MKINSTALLDIRS $(libdir) $(includedir)/uuid $(man3dir)"
$(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
$(DESTDIR)$(includedir)/uuid $(DESTDIR)$(man3dir) \
- $(DESTDIR)$(libdir)/pkgconfig
+ $(DESTDIR)$(pkgconfigdir)
install:: all installdirs
$(E) " INSTALL_DATA $(libdir)/libuuid.a"
@@ -155,12 +156,12 @@ install:: all installdirs
$(E) " LINK $(man3dir)/uuid_generate_time.3"
$(Q) (cd $(DESTDIR)$(man3dir); \
$(LN) $(LINK_INSTALL_FLAGS) uuid_generate.3 uuid_generate_time.3)
- $(E) " INSTALL_DATA $(libdir)/pkgconfig/uuid.pc"
- $(Q) $(INSTALL_DATA) uuid.pc $(DESTDIR)$(libdir)/pkgconfig/uuid.pc
+ $(E) " INSTALL_DATA $(pkgconfigdir)/uuid.pc"
+ $(Q) $(INSTALL_DATA) uuid.pc $(DESTDIR)$(pkgconfigdir)/uuid.pc
uninstall::
$(RM) -f $(DESTDIR)$(libdir)/libuuid.a \
- $(DESTDIR)$(libdir)/pkgconfig/uuid.pc
+ $(DESTDIR)$(pkgconfigdir)/uuid.pc
for i in $(SMANPAGES); do \
$(RM) -f $(DESTDIR)$(man3dir)/$$i; \
done
diff --git a/lib/uuid/gen_uuid.c b/lib/uuid/gen_uuid.c
index 42d7563d..22b45134 100644
--- a/lib/uuid/gen_uuid.c
+++ b/lib/uuid/gen_uuid.c
@@ -176,8 +176,7 @@ static void get_random_bytes(void *buf, int nbytes)
{
int i, n = nbytes, fd = get_random_fd();
int lose_counter = 0;
- unsigned char *cp = (unsigned char *) buf;
- unsigned short tmp_seed[3];
+ unsigned char *cp = buf;
if (fd >= 0) {
while (n > 0) {
@@ -200,12 +199,16 @@ static void get_random_bytes(void *buf, int nbytes)
for (cp = buf, i = 0; i < nbytes; i++)
*cp++ ^= (rand() >> 7) & 0xFF;
#ifdef DO_JRAND_MIX
- memcpy(tmp_seed, jrand_seed, sizeof(tmp_seed));
- jrand_seed[2] = jrand_seed[2] ^ syscall(__NR_gettid);
- for (cp = buf, i = 0; i < nbytes; i++)
- *cp++ ^= (jrand48(tmp_seed) >> 7) & 0xFF;
- memcpy(jrand_seed, tmp_seed,
- sizeof(jrand_seed)-sizeof(unsigned short));
+ {
+ unsigned short tmp_seed[3];
+
+ memcpy(tmp_seed, jrand_seed, sizeof(tmp_seed));
+ jrand_seed[2] = jrand_seed[2] ^ syscall(__NR_gettid);
+ for (cp = buf, i = 0; i < nbytes; i++)
+ *cp++ ^= (jrand48(tmp_seed) >> 7) & 0xFF;
+ memcpy(jrand_seed, tmp_seed,
+ sizeof(jrand_seed) - sizeof(unsigned short));
+ }
#endif
return;
@@ -323,10 +326,12 @@ static int get_clock(uint32_t *clock_high, uint32_t *clock_low,
state_fd = open("/var/lib/libuuid/clock.txt",
O_RDWR|O_CREAT, 0660);
(void) umask(save_umask);
- state_f = fdopen(state_fd, "r+");
- if (!state_f) {
- close(state_fd);
- state_fd = -1;
+ if (state_fd >= 0) {
+ state_f = fdopen(state_fd, "r+");
+ if (!state_f) {
+ close(state_fd);
+ state_fd = -1;
+ }
}
}
fl.l_type = F_WRLCK;
@@ -340,7 +345,6 @@ static int get_clock(uint32_t *clock_high, uint32_t *clock_low,
if ((errno == EAGAIN) || (errno == EINTR))
continue;
fclose(state_f);
- close(state_fd);
state_fd = -1;
break;
}
@@ -398,9 +402,10 @@ try_again:
if (state_fd > 0) {
rewind(state_f);
- len = fprintf(state_f,
+ len = fprintf(state_f,
"clock: %04x tv: %016lu %08lu adj: %08d\n",
- clock_seq, last.tv_sec, last.tv_usec, adjustment);
+ clock_seq, last.tv_sec, (long)last.tv_usec,
+ adjustment);
fflush(state_f);
if (ftruncate(state_fd, len) < 0) {
fprintf(state_f, " \n");
@@ -408,7 +413,10 @@ try_again:
}
rewind(state_f);
fl.l_type = F_UNLCK;
- fcntl(state_fd, F_SETLK, &fl);
+ if (fcntl(state_fd, F_SETLK, &fl) < 0) {
+ fclose(state_f);
+ state_fd = -1;
+ }
}
*clock_high = clock_reg >> 32;
diff --git a/lib/uuid/tst_uuid.c b/lib/uuid/tst_uuid.c
index 5884ad92..88d928fe 100644
--- a/lib/uuid/tst_uuid.c
+++ b/lib/uuid/tst_uuid.c
@@ -74,7 +74,7 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
uuid_t buf, tst;
char str[100];
struct timeval tv;
- time_t time_reg;
+ time_t time_reg, time_gen;
unsigned char *cp;
int i;
int failed = 0;
@@ -104,7 +104,8 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
printf("%02x", *cp++);
}
printf("\n");
- type = uuid_type(buf); variant = uuid_variant(buf);
+ type = uuid_type(buf);
+ variant = uuid_variant(buf);
printf("UUID type = %d, UUID variant = %d\n", type, variant);
if (variant != UUID_VARIANT_DCE) {
printf("Incorrect UUID Variant; was expecting DCE!\n");
@@ -117,6 +118,7 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
}
printf("\n");
+ time_gen = time(0);
uuid_generate_time(buf);
uuid_unparse(buf, str);
printf("UUID string = %s\n", str);
@@ -125,7 +127,8 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
printf("%02x", *cp++);
}
printf("\n");
- type = uuid_type(buf); variant = uuid_variant(buf);
+ type = uuid_type(buf);
+ variant = uuid_variant(buf);
printf("UUID type = %d, UUID variant = %d\n", type, variant);
if (variant != UUID_VARIANT_DCE) {
printf("Incorrect UUID Variant; was expecting DCE!\n");
@@ -136,15 +139,28 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
"1 (time-based type)!\\n");
failed++;
}
+
tv.tv_sec = 0;
tv.tv_usec = 0;
time_reg = uuid_time(buf, &tv);
- printf("UUID time is: (%ld, %ld): %s\n", tv.tv_sec, tv.tv_usec,
- ctime(&time_reg));
- uuid_parse(str, tst);
- if (!uuid_compare(buf, tst))
+ printf("UUID generated at %lu reports %lu (%ld.%ld)\n",
+ time_gen, time_reg, tv.tv_sec, (long)tv.tv_usec);
+ /* allow 1s margin in case of rollover between sampling
+ * the current time and when the UUID is generated. */
+ if (time_reg > time_gen + 1) {
+ printf("UUID time comparison failed!\n");
+ failed++;
+ } else {
+ printf("UUID time comparison succeeded.\n");
+ }
+
+ if (uuid_parse(str, tst) < 0) {
+ printf("UUID parse failed\n");
+ failed++;
+ }
+ if (!uuid_compare(buf, tst)) {
printf("UUID parse and compare succeeded.\n");
- else {
+ } else {
printf("UUID parse and compare failed!\n");
failed++;
}
@@ -162,6 +178,7 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
printf("UUID copy and compare failed!\n");
failed++;
}
+
failed += test_uuid("84949cc5-4701-4a84-895b-354c584a981b", 1);
failed += test_uuid("84949CC5-4701-4A84-895B-354C584A981B", 1);
failed += test_uuid("84949cc5-4701-4a84-895b-354c584a981bc", 0);
diff --git a/lib/uuid/uuid.pc.in b/lib/uuid/uuid.pc.in
index 9e38a326..eaa4e4d5 100644
--- a/lib/uuid/uuid.pc.in
+++ b/lib/uuid/uuid.pc.in
@@ -7,5 +7,5 @@ Name: uuid
Description: Universally unique id library
Version: @E2FSPROGS_VERSION@
Requires:
-Cflags: -I${includedir}/uuid
+Cflags: -I${includedir}/uuid -I${includedir}
Libs: -L${libdir} -luuid
diff --git a/lib/uuid/uuid_time.c b/lib/uuid/uuid_time.c
index 4c3536b4..97fd3358 100644
--- a/lib/uuid/uuid_time.c
+++ b/lib/uuid/uuid_time.c
@@ -165,7 +165,7 @@ main(int argc, char **argv)
printf("Warning: not a time-based UUID, so UUID time "
"decoding will likely not work!\n");
}
- printf("UUID time is: (%ld, %ld): %s\n", tv.tv_sec, tv.tv_usec,
+ printf("UUID time is: (%ld, %ld): %s\n", tv.tv_sec, (long)tv.tv_usec,
ctime(&time_reg));
return 0;
diff --git a/misc/Makefile.in b/misc/Makefile.in
index d5fe911b..8d3318be 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -33,7 +33,7 @@ SMANPAGES= tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
logsave.8 filefrag.8 e2freefrag.8 e2undo.8 \
$(UUIDD_MAN) $(E4DEFRAG_MAN) @FSCK_MAN@
-FMANPAGES= mke2fs.conf.5
+FMANPAGES= mke2fs.conf.5 ext4.5
UPROGS= chattr lsattr @UUID_CMT@ uuidgen
UMANPAGES= chattr.1 lsattr.1 @UUID_CMT@ uuidgen.1
@@ -42,7 +42,8 @@ LPROGS= @E2INITRD_PROG@
TUNE2FS_OBJS= tune2fs.o util.o
MKLPF_OBJS= mklost+found.o
-MKE2FS_OBJS= mke2fs.o util.o profile.o prof_err.o default_profile.o
+MKE2FS_OBJS= mke2fs.o util.o profile.o prof_err.o default_profile.o \
+ mk_hugefiles.o
CHATTR_OBJS= chattr.o
LSATTR_OBJS= lsattr.o
UUIDGEN_OBJS= uuidgen.o
@@ -72,10 +73,11 @@ PROFILED_FSCK_OBJS= profiled/fsck.o profiled/base_device.o \
profiled/ismounted.o
PROFILED_BLKID_OBJS= profiled/blkid.o
PROFILED_FILEFRAG_OBJS= profiled/filefrag.o
+PROFILED_E2FREEFRAG_OBJS= profiled/e2freefrag.o
PROFILED_E2UNDO_OBJS= profiled/e2undo.o
PROFILED_E4DEFRAG_OBJS= profiled/e4defrag.o
-SRCS= $(srcdir)/tune2fs.c $(srcdir)/mklost+found.c $(srcdir)/mke2fs.c \
+SRCS= $(srcdir)/tune2fs.c $(srcdir)/mklost+found.c $(srcdir)/mke2fs.c $(srcdir)/mk_hugefiles.c \
$(srcdir)/chattr.c $(srcdir)/lsattr.c $(srcdir)/dumpe2fs.c \
$(srcdir)/badblocks.c $(srcdir)/fsck.c $(srcdir)/util.c \
$(srcdir)/uuidgen.c $(srcdir)/blkid.c $(srcdir)/logsave.c \
@@ -83,12 +85,12 @@ SRCS= $(srcdir)/tune2fs.c $(srcdir)/mklost+found.c $(srcdir)/mke2fs.c \
$(srcdir)/ismounted.c $(srcdir)/../e2fsck/profile.c \
$(srcdir)/e2undo.c $(srcdir)/e2freefrag.c
-LIBS= $(LIBEXT2FS) $(LIBCOM_ERR)
+LIBS= $(LIBEXT2FS) $(LIBCOM_ERR)
DEPLIBS= $(LIBEXT2FS) $(DEPLIBCOM_ERR)
PROFILED_LIBS= $(PROFILED_LIBEXT2FS) $(PROFILED_LIBCOM_ERR)
PROFILED_DEPLIBS= $(PROFILED_LIBEXT2FS) $(DEPPROFILED_LIBCOM_ERR)
-STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
+STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
LIBS_E2P= $(LIBE2P) $(LIBCOM_ERR)
@@ -99,6 +101,7 @@ COMPILE_ET=$(top_builddir)/lib/et/compile_et --build-tree
.c.o:
$(E) " CC $<"
$(Q) $(CC) -c $(ALL_CFLAGS) $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
all:: profiled $(SPROGS) $(UPROGS) $(USPROGS) $(SMANPAGES) $(UMANPAGES) \
@@ -107,7 +110,7 @@ all:: profiled $(SPROGS) $(UPROGS) $(USPROGS) $(SMANPAGES) $(UMANPAGES) \
@PROFILE_CMT@all:: tune2fs.profiled blkid.profiled e2image.profiled \
e2undo.profiled mke2fs.profiled dumpe2fs.profiled fsck.profiled \
logsave.profiled filefrag.profiled uuidgen.profiled uuidd.profiled \
- e2image.profiled e4defrag.profiled
+ e2image.profiled e4defrag.profiled e2freefrag.profiled
profiled:
@PROFILE_CMT@ $(E) " MKDIR $@"
@@ -140,7 +143,7 @@ profile.o:
findsuper: findsuper.o
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o findsuper findsuper.o $(LIBS)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o findsuper findsuper.o $(LIBS) $(SYSLIBS)
partinfo: partinfo.o
$(E) " LD $@"
@@ -149,77 +152,80 @@ partinfo: partinfo.o
e2initrd_helper: e2initrd_helper.o $(DEPLIBS) $(DEPLIBBLKID) $(LIBEXT2FS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o e2initrd_helper e2initrd_helper.o $(LIBS) \
- $(LIBBLKID) $(LIBEXT2FS) $(LIBINTL)
+ $(LIBBLKID) $(LIBEXT2FS) $(LIBINTL) $(SYSLIBS)
tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBBLKID) \
$(DEPLIBUUID) $(DEPLIBQUOTA) $(LIBEXT2FS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o tune2fs $(TUNE2FS_OBJS) $(LIBS) \
$(LIBBLKID) $(LIBUUID) $(LIBQUOTA) $(LIBEXT2FS) $(LIBS_E2P) \
- $(LIBINTL)
+ $(LIBINTL) $(SYSLIBS)
tune2fs.static: $(TUNE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBBLKID)
$(E) " LD $@"
$(Q) $(CC) $(LDFLAGS_STATIC) -o tune2fs.static $(TUNE2FS_OBJS) \
$(STATIC_LIBS) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \
- $(STATIC_LIBQUOTA) $(STATIC_LIBE2P) $(LIBINTL)
+ $(STATIC_LIBQUOTA) $(STATIC_LIBE2P) $(LIBINTL) $(SYSLIBS)
-tune2fs.profiled: $(PROFILED_TUNE2FS_OBJS) $(PROFILED_DEPLIBS) \
+tune2fs.profiled: $(TUNE2FS_OBJS) $(PROFILED_DEPLIBS) \
$(PROFILED_E2P) $(DEPPROFILED_LIBBLKID) $(DEPPROFILED_LIBUUID) \
$(DEPPROFILED_LIBQUOTA)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o tune2fs.profiled \
$(PROFILED_TUNE2FS_OBJS) $(PROFILED_LIBBLKID) \
$(PROFILED_LIBUUID) $(PROFILED_LIBQUOTA) $(PROFILED_LIBE2P) \
- $(LIBINTL) $(PROFILED_LIBS)
+ $(LIBINTL) $(PROFILED_LIBS) $(SYSLIBS)
blkid: $(BLKID_OBJS) $(DEPLIBBLKID) $(LIBEXT2FS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o blkid $(BLKID_OBJS) $(LIBBLKID) $(LIBINTL) \
- $(LIBEXT2FS)
+ $(LIBEXT2FS) $(SYSLIBS)
blkid.static: $(BLKID_OBJS) $(STATIC_DEPLIBS) $(DEPSTATIC_LIBBLKID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o blkid.static $(BLKID_OBJS) $(STATIC_LIBS) \
- $(STATIC_LIBBLKID) $(LIBINTL)
+ $(STATIC_LIBBLKID) $(LIBINTL) $(SYSLIBS)
-blkid.profiled: $(PROFILED_BLKID_OBJS) $(DEPPROFILED_LIBBLKID) \
+blkid.profiled: $(BLKID_OBJS) $(DEPPROFILED_LIBBLKID) \
$(PROFILED_LIBEXT2FS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o blkid.profiled $(PROFILED_BLKID_OBJS) \
- $(PROFILED_LIBBLKID) $(LIBINTL) $(PROFILED_LIBEXT2FS)
+ $(PROFILED_LIBBLKID) $(LIBINTL) $(PROFILED_LIBEXT2FS) $(SYSLIBS)
e2image: $(E2IMAGE_OBJS) $(DEPLIBS)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o e2image $(E2IMAGE_OBJS) $(LIBS) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o e2image $(E2IMAGE_OBJS) $(LIBS) \
+ $(LIBINTL) $(SYSLIBS)
-e2image.profiled: $(PROFILED_E2IMAGE_OBJS) $(PROFILED_DEPLIBS)
+e2image.profiled: $(E2IMAGE_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e2image.profiled \
- $(PROFILED_E2IMAGE_OBJS) $(PROFILED_LIBS) $(LIBINTL)
+ $(PROFILED_E2IMAGE_OBJS) $(PROFILED_LIBS) $(LIBINTL) $(SYSLIBS)
e2undo: $(E2UNDO_OBJS) $(DEPLIBS)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o e2undo $(E2UNDO_OBJS) $(LIBS) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o e2undo $(E2UNDO_OBJS) $(LIBS) \
+ $(LIBINTL) $(SYSLIBS)
-e2undo.profiled: $(PROFILED_E2UNDO_OBJS) $(PROFILED_DEPLIBS)
+e2undo.profiled: $(E2UNDO_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e2undo.profiled \
- $(PROFILED_E2UNDO_OBJS) $(PROFILED_LIBS) $(LIBINTL)
+ $(PROFILED_E2UNDO_OBJS) $(PROFILED_LIBS) $(LIBINTL) $(SYSLIBS)
e4defrag: $(E4DEFRAG_OBJS) $(DEPLIBS)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o e4defrag $(E4DEFRAG_OBJS) $(LIBS)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o e4defrag $(E4DEFRAG_OBJS) $(LIBS) \
+ $(SYSLIBS)
-e4defrag.profiled: $(PROFILED_E4DEFRAG_OBJS) $(PROFILED_DEPLIBS)
+e4defrag.profiled: $(E4DEFRAG_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e4defrag.profiled \
- $(PROFILED_E4DEFRAG_OBJS) $(PROFILED_LIBS)
+ $(PROFILED_E4DEFRAG_OBJS) $(PROFILED_LIBS) $(SYSLIBS)
base_device: base_device.c
$(E) " LD $@"
$(Q) $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(srcdir)/base_device.c \
- -DDEBUG -o base_device
+ -DDEBUG -o base_device $(SYSLIBS)
check:: base_device
./base_device < $(srcdir)/base_device.tst > base_device.out
@@ -227,103 +233,120 @@ check:: base_device
mklost+found: $(MKLPF_OBJS)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o mklost+found $(MKLPF_OBJS) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o mklost+found $(MKLPF_OBJS) \
+ $(LIBINTL) $(SYSLIBS)
mke2fs: $(MKE2FS_OBJS) $(DEPLIBS) $(LIBE2P) $(DEPLIBBLKID) $(DEPLIBUUID) \
$(DEPLIBQUOTA) $(LIBEXT2FS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o mke2fs $(MKE2FS_OBJS) $(LIBS) $(LIBBLKID) \
- $(LIBUUID) $(LIBQUOTA) $(LIBEXT2FS) $(LIBE2P) $(LIBINTL)
+ $(LIBUUID) $(LIBQUOTA) $(LIBEXT2FS) $(LIBE2P) $(LIBINTL) \
+ $(SYSLIBS)
mke2fs.static: $(MKE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBUUID) \
$(DEPSTATIC_LIBQUOTA) $(DEPSTATIC_LIBBLKID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -static -o mke2fs.static $(MKE2FS_OBJS) \
$(STATIC_LIBQUOTA) $(STATIC_LIBS) $(STATIC_LIBE2P) \
- $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(LIBINTL)
+ $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(LIBINTL) $(SYSLIBS)
-mke2fs.profiled: $(PROFILED_MKE2FS_OBJS) $(PROFILED_DEPLIBS) \
+mke2fs.profiled: $(MKE2FS_OBJS) $(PROFILED_DEPLIBS) \
$(PROFILED_LIBE2P) $(PROFILED_DEPLIBBLKID) $(PROFILED_DEPLIBUUID) \
$(PROFILED_LIBQUOTA)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o mke2fs.profiled \
$(PROFILED_MKE2FS_OBJS) $(PROFILED_LIBBLKID) \
- $(PROFILED_LIBUUID) $(PROFILED_LIBQUOTA) $(PROFILED_LIBE2P) $(LIBINTL) \
- $(PROFILED_LIBS)
+ $(PROFILED_LIBUUID) $(PROFILED_LIBQUOTA) $(PROFILED_LIBE2P) \
+ $(LIBINTL) $(PROFILED_LIBS) $(SYSLIBS)
chattr: $(CHATTR_OBJS) $(DEPLIBS_E2P)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o chattr $(CHATTR_OBJS) $(LIBS_E2P) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o chattr $(CHATTR_OBJS) $(LIBS_E2P) \
+ $(LIBINTL) $(SYSLIBS)
lsattr: $(LSATTR_OBJS) $(DEPLIBS_E2P)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o lsattr $(LSATTR_OBJS) $(LIBS_E2P) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o lsattr $(LSATTR_OBJS) $(LIBS_E2P) \
+ $(LIBINTL) $(SYSLIBS)
uuidgen: $(UUIDGEN_OBJS) $(DEPLIBUUID)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o uuidgen $(UUIDGEN_OBJS) $(LIBUUID) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o uuidgen $(UUIDGEN_OBJS) $(LIBUUID) \
+ $(LIBINTL) $(SYSLIBS)
-uuidgen.profiled: $(PROFILED_UUIDGEN_OBJS) $(PROFILED_DEPLIBUUID)
+uuidgen.profiled: $(UUIDGEN_OBJS) $(PROFILED_DEPLIBUUID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o uuidgen.profiled \
- $(PROFILED_UUIDGEN_OBJS) $(PROFILED_LIBUUID) $(LIBINTL)
+ $(PROFILED_UUIDGEN_OBJS) $(PROFILED_LIBUUID) $(LIBINTL) \
+ $(SYSLIBS)
uuidd: $(UUIDD_OBJS) $(DEPLIBUUID)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o uuidd $(UUIDD_OBJS) $(LIBUUID) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o uuidd $(UUIDD_OBJS) $(LIBUUID) \
+ $(LIBINTL) $(SYSLIBS)
-uuidd.profiled: $(PROFILED_UUIDD_OBJS) $(PROFILED_DEPLIBUUID)
+uuidd.profiled: $(UUIDD_OBJS) $(PROFILED_DEPLIBUUID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o uuidd.profiled $(PROFILED_UUIDD_OBJS) \
- $(PROFILED_LIBUUID) $(LIBINTL)
+ $(PROFILED_LIBUUID) $(LIBINTL) $(SYSLIBS)
dumpe2fs: $(DUMPE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBUUID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o dumpe2fs $(DUMPE2FS_OBJS) $(LIBS) \
- $(LIBS_E2P) $(LIBUUID) $(LIBINTL)
+ $(LIBS_E2P) $(LIBUUID) $(LIBINTL) $(SYSLIBS)
-dumpe2fs.profiled: $(PROFILED_DUMPE2FS_OBJS) $(PROFILED_DEPLIBS) \
+dumpe2fs.profiled: $(DUMPE2FS_OBJS) $(PROFILED_DEPLIBS) \
$(PROFILED_LIBE2P) $(PROFILED_DEPLIBUUID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o dumpe2fs.profiled \
$(PROFILED_DUMPE2FS_OBJS) $(PROFILED_LIBS) \
- $(PROFILED_LIBE2P) $(PROFILED_LIBUUID) $(LIBINTL)
+ $(PROFILED_LIBE2P) $(PROFILED_LIBUUID) $(LIBINTL) $(SYSLIBS)
fsck: $(FSCK_OBJS) $(DEPLIBBLKID)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) \
+ $(LIBINTL) $(SYSLIBS)
-fsck.profiled: $(PROFILED_FSCK_OBJS) $(PROFILED_DEPLIBBLKID)
+fsck.profiled: $(FSCK_OBJS) $(PROFILED_DEPLIBBLKID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o fsck.profiled $(PROFILED_FSCK_OBJS) \
- $(PROFILED_LIBBLKID) $(LIBINTL)
+ $(PROFILED_LIBBLKID) $(LIBINTL) $(SYSLIBS)
badblocks: $(BADBLOCKS_OBJS) $(DEPLIBS)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o badblocks $(BADBLOCKS_OBJS) $(LIBS) $(LIBINTL)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o badblocks $(BADBLOCKS_OBJS) $(LIBS) \
+ $(LIBINTL) $(SYSLIBS)
-badblocks.profiled: $(PROFILED_BADBLOCKS_OBJS) $(PROFILED_DEPLIBS)
+badblocks.profiled: $(BADBLOCKS_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o badblocks.profiled \
- $(PROFILED_BADBLOCKS_OBJS) $(PROFILED_LIBS) $(LIBINTL)
+ $(PROFILED_BADBLOCKS_OBJS) $(PROFILED_LIBS) $(LIBINTL) \
+ $(SYSLIBS)
logsave: logsave.o
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o logsave logsave.o
+ $(Q) $(CC) $(ALL_LDFLAGS) -o logsave logsave.o $(SYSLIBS)
-logsave.profiled: profiled/logsave.o
+logsave.profiled: logsave.o
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o logsave.profiled profiled/logsave.o
+ $(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o logsave.profiled \
+ profiled/logsave.o $(SYSLIBS)
e2freefrag: $(E2FREEFRAG_OBJS)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o e2freefrag $(E2FREEFRAG_OBJS) $(LIBS)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o e2freefrag $(E2FREEFRAG_OBJS) \
+ $(LIBS) $(SYSLIBS)
+
+e2freefrag.profiled: $(E2FREEFRAG_OBJS) $(PROFILED_DEPLIBS)
+ $(E) " LD $@"
+ $(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e2freefrag.profiled \
+ $(PROFILED_E2FREEFRAG_OBJS) $(PROFILED_LIBS) $(SYSLIBS)
filefrag: $(FILEFRAG_OBJS)
$(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS)
+ $(Q) $(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS) $(SYSLIBS)
-filefrag.profiled: $(PROFILED_FILEFRAG_OBJS)
+filefrag.profiled: $(FILEFRAG_OBJS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o filefrag.profiled \
$(PROFILED_FILEFRAG_OBJS)
@@ -331,7 +354,7 @@ filefrag.profiled: $(PROFILED_FILEFRAG_OBJS)
tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
$(E) " LD $@"
$(CC) -o tst_ismounted $(srcdir)/ismounted.c -DDEBUG $(ALL_CFLAGS) \
- $(LIBCOM_ERR)
+ $(LIBCOM_ERR) $(SYSLIBS)
tune2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/tune2fs.8.in
$(E) " SUBST $@"
@@ -349,6 +372,10 @@ mke2fs.conf.5: $(DEP_SUBSTITUTE) $(srcdir)/mke2fs.conf.5.in
$(E) " SUBST $@"
$(Q) $(SUBSTITUTE_UPTIME) $(srcdir)/mke2fs.conf.5.in mke2fs.conf.5
+ext4.5: $(DEP_SUBSTITUTE) $(srcdir)/ext4.5.in
+ $(E) " SUBST $@"
+ $(Q) $(SUBSTITUTE_UPTIME) $(srcdir)/$@.in $@
+
e2label.8: $(DEP_SUBSTITUTE) $(srcdir)/e2label.8.in
$(E) " SUBST $@"
$(Q) $(SUBSTITUTE_UPTIME) $(srcdir)/e2label.8.in e2label.8
@@ -410,7 +437,7 @@ blkid.1: $(DEP_SUBSTITUTE) $(srcdir)/blkid.1.in
$(Q) $(SUBSTITUTE_UPTIME) $(srcdir)/blkid.1.in blkid.1
e2freefrag.8: $(DEP_SUBSTITUTE) $(srcdir)/e2freefrag.8.in
- @echo " SUBST $@"
+ $(E) " SUBST $@"
@$(SUBSTITUTE_UPTIME) $(srcdir)/e2freefrag.8.in e2freefrag.8
filefrag.8: $(DEP_SUBSTITUTE) $(srcdir)/filefrag.8.in
@@ -427,44 +454,44 @@ installdirs:
install: all $(SMANPAGES) $(UMANPAGES) installdirs
$(Q) for i in $(SPROGS); do \
- echo " INSTALL $(root_sbindir)/$$i"; \
+ $(ES) " INSTALL $(root_sbindir)/$$i"; \
$(INSTALL_PROGRAM) $$i $(DESTDIR)$(root_sbindir)/$$i; \
done
$(Q) for i in $(USPROGS); do \
- echo " INSTALL $(sbindir)/$$i"; \
+ $(ES) " INSTALL $(sbindir)/$$i"; \
$(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir)/$$i; \
done
$(Q) for i in ext2 ext3 ext4 ext4dev; do \
- echo " LINK $(root_sbindir)/mkfs.$$i"; \
+ $(ES) " LINK $(root_sbindir)/mkfs.$$i"; \
(cd $(DESTDIR)$(root_sbindir); \
$(LN) $(LINK_INSTALL_FLAGS) mke2fs mkfs.$$i); \
done
$(Q) (cd $(DESTDIR)$(root_sbindir); \
$(LN) $(LINK_INSTALL_FLAGS) tune2fs e2label)
$(Q) if test -n "$(FINDFS_LINK)"; then \
- echo " LINK $(root_sbindir)/findfs"; \
+ $(ES) " LINK $(root_sbindir)/findfs"; \
(cd $(DESTDIR)$(root_sbindir); \
$(LN) $(LINK_INSTALL_FLAGS) tune2fs $(FINDFS_LINK)); \
fi
$(Q) for i in $(UPROGS); do \
- echo " INSTALL $(bindir)/$$i"; \
+ $(ES) " INSTALL $(bindir)/$$i"; \
$(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \
done
$(Q) for i in $(LPROGS); do \
- echo " INSTALL $(libdir)/$$i"; \
+ $(ES) " INSTALL $(libdir)/$$i"; \
$(INSTALL_PROGRAM) $$i $(DESTDIR)$(libdir)/$$i; \
done
$(Q) for i in $(SMANPAGES); do \
for j in $(COMPRESS_EXT); do \
$(RM) -f $(DESTDIR)$(man8dir)/$$i.$$j; \
done; \
- echo " INSTALL_DATA $(man8dir)/$$i"; \
+ $(ES) " INSTALL_DATA $(man8dir)/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(man8dir)/$$i; \
done
$(Q) $(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8.gz \
$(DESTDIR)$(man8dir)/mkfs.ext3.8.gz
$(Q) for i in ext2 ext3 ext4 ext4dev; do \
- echo " LINK mkfs.$$i.8"; \
+ $(ES) " LINK mkfs.$$i.8"; \
(cd $(DESTDIR)$(man8dir); \
$(LN) $(LINK_INSTALL_FLAGS) mke2fs.8 mkfs.$$i.8); \
done
@@ -472,29 +499,34 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
for j in $(COMPRESS_EXT); do \
$(RM) -f $(DESTDIR)$(man1dir)/$$i.$$j; \
done; \
- echo " INSTALL_DATA $(man1dir)/$$i"; \
+ $(ES) " INSTALL_DATA $(man1dir)/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(man1dir)/$$i; \
done
$(Q) for i in $(FMANPAGES); do \
for j in $(COMPRESS_EXT); do \
$(RM) -f $(DESTDIR)$(man5dir)/$$i.$$j; \
done; \
- echo " INSTALL_DATA $(man5dir)/$$i"; \
+ $(ES) " INSTALL_DATA $(man5dir)/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \
done
+ $(Q) for i in ext2 ext3; do \
+ $(ES) " LINK $$i.5"; \
+ (cd $(DESTDIR)$(man5dir); \
+ $(LN) $(LINK_INSTALL_FLAGS) ext4.5 $$i.5); \
+ done
$(Q) if test -f $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; then \
if cmp -s $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
mke2fs.conf; then \
true; \
else \
if grep -q ext4dev $(DESTDIR)$(root_sysconfdir)/mke2fs.conf ; then \
- echo " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
+ $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
$(INSTALL_DATA) mke2fs.conf \
$(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new; \
echo "Warning: installing mke2fs.conf in $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
echo "Check to see if you need to update your $(root_sysconfdir)/mke2fs.conf"; \
else \
- echo " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
+ $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
mv $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
$(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old; \
$(INSTALL_DATA) mke2fs.conf \
@@ -506,18 +538,18 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
echo " "; \
fi; \
else \
- echo " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
+ $(ES) " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
$(INSTALL_DATA) mke2fs.conf \
$(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \
fi
install-strip: install
$(Q) for i in $(SPROGS); do \
- echo " STRIP $(root_sbindir)/$$i"; \
+ $(E) " STRIP $(root_sbindir)/$$i"; \
$(STRIP) $(DESTDIR)$(root_sbindir)/$$i; \
done
$(Q) for i in $(USPROGS); do \
- echo " STRIP $(sbindir)/$$i"; \
+ $(E) " STRIP $(sbindir)/$$i"; \
$(STRIP) $(DESTDIR)$(sbindir)/$$i; \
done
@@ -544,7 +576,12 @@ uninstall:
$(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8 \
$(DESTDIR)$(man8dir)/mkfs.ext3.8 \
$(DESTDIR)$(man8dir)/mkfs.ext4.8 \
- $(DESTDIR)$(man8dir)/mkfs.ext4dev.8
+ $(DESTDIR)$(man8dir)/mkfs.ext4dev.8 \
+ $(DESTDIR)$(man8dir)/fsck.ext2.8 \
+ $(DESTDIR)$(man8dir)/fsck.ext3.8 \
+ $(DESTDIR)$(man8dir)/fsck.ext4.8 \
+ $(DESTDIR)$(man8dir)/fsck.ext4dev.8
+
for i in $(UMANPAGES); do \
$(RM) -f $(DESTDIR)$(man1dir)/$$i; \
done
@@ -554,11 +591,15 @@ uninstall:
for i in $(FMANPAGES); do \
$(RM) -f $(DESTDIR)$(man5dir)/$$i; \
done
+ $(Q) for i in ext2 ext3; do \
+ $(ES) " LINK $$i.5"; \
+ $(RM) -f $(DESTDIR)$(man5dir)/$$i.5; \
+ done
if cmp -s mke2fs.conf $(DESTDIR)/$(root_sysconfdir)/mke2fs.conf; then \
$(RM) $(DESTDIR)/$(root_sysconfdir)/mke2fs.conf; \
fi
-clean:
+clean::
$(RM) -f $(SPROGS) $(USPROGS) $(UPROGS) $(UMANPAGES) $(SMANPAGES) \
$(FMANPAGES) profile.h \
base_device base_device.out mke2fs.static filefrag e2freefrag \
@@ -588,9 +629,9 @@ tune2fs.o: $(srcdir)/tune2fs.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/e2p/e2p.h $(srcdir)/jfs_user.h \
$(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \
$(top_srcdir)/lib/ext2fs/kernel-list.h $(srcdir)/util.h \
- $(top_srcdir)/lib/quota/mkquota.h $(top_srcdir)/lib/quota/quota.h \
- $(top_srcdir)/lib/../e2fsck/dict.h $(top_srcdir)/version.h \
- $(srcdir)/nls-enable.h
+ $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
+ $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h \
+ $(top_srcdir)/version.h $(srcdir)/nls-enable.h
mklost+found.o: $(srcdir)/mklost+found.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/version.h \
@@ -604,8 +645,19 @@ mke2fs.o: $(srcdir)/mke2fs.c $(top_builddir)/lib/config.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
$(srcdir)/util.h profile.h prof_err.h $(top_srcdir)/version.h \
- $(srcdir)/nls-enable.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quota.h $(top_srcdir)/lib/../e2fsck/dict.h
+ $(srcdir)/nls-enable.h $(top_srcdir)/lib/quota/quotaio.h \
+ $(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
+ $(top_srcdir)/lib/../e2fsck/dict.h $(srcdir)/mke2fs.h
+mk_hugefiles.o: $(srcdir)/mk_hugefiles.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fsP.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(srcdir)/util.h profile.h prof_err.h $(srcdir)/nls-enable.h \
+ $(srcdir)/mke2fs.h
chattr.o: $(srcdir)/chattr.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
$(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/et/com_err.h \
@@ -654,7 +706,11 @@ blkid.o: $(srcdir)/blkid.c $(top_builddir)/lib/config.h \
logsave.o: $(srcdir)/logsave.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h
filefrag.o: $(srcdir)/filefrag.c $(top_builddir)/lib/config.h \
- $(top_builddir)/lib/dirpaths.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/ext2fs/fiemap.h
base_device.o: $(srcdir)/base_device.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/fsck.h
diff --git a/misc/badblocks.c b/misc/badblocks.c
index 890d5107..e5024f6c 100644
--- a/misc/badblocks.c
+++ b/misc/badblocks.c
@@ -33,10 +33,6 @@
#define _GNU_SOURCE /* for O_DIRECT */
#endif
-#ifndef O_LARGEFILE
-#define O_LARGEFILE 0
-#endif
-
#include "config.h"
#include <errno.h>
#include <fcntl.h>
@@ -65,27 +61,30 @@ extern int optind;
#include "ext2fs/ext2fs.h"
#include "nls-enable.h"
-const char * program_name = "badblocks";
-const char * done_string = N_("done \n");
+#ifndef O_LARGEFILE
+#define O_LARGEFILE 0
+#endif
-static int v_flag = 0; /* verbose */
-static int w_flag = 0; /* do r/w test: 0=no, 1=yes,
+static const char * program_name = "badblocks";
+static const char * done_string = N_("done \n");
+
+static int v_flag; /* verbose */
+static int w_flag; /* do r/w test: 0=no, 1=yes,
* 2=non-destructive */
-static int s_flag = 0; /* show progress of test */
-static int force = 0; /* force check of mounted device */
-static int t_flag = 0; /* number of test patterns */
-static int t_max = 0; /* allocated test patterns */
-static unsigned int *t_patts = NULL; /* test patterns */
-static int current_O_DIRECT = 0; /* Current status of O_DIRECT flag */
-static int use_buffered_io = 0;
-static int exclusive_ok = 0;
-static unsigned int max_bb = 0; /* Abort test if more than this number of bad blocks has been encountered */
-static unsigned int d_flag = 0; /* delay factor between reads */
+static int s_flag; /* show progress of test */
+static int force; /* force check of mounted device */
+static int t_flag; /* number of test patterns */
+static int t_max; /* allocated test patterns */
+static unsigned int *t_patts; /* test patterns */
+static int use_buffered_io;
+static int exclusive_ok;
+static unsigned int max_bb; /* Abort test if more than this number of bad blocks has been encountered */
+static unsigned int d_flag; /* delay factor between reads */
static struct timeval time_start;
#define T_INC 32
-unsigned int sys_page_size = 4096;
+static unsigned int sys_page_size = 4096;
static void usage(void)
{
@@ -286,6 +285,7 @@ static void set_o_direct(int dev, unsigned char *buffer, size_t size,
ext2_loff_t offset)
{
#ifdef O_DIRECT
+ static int current_O_DIRECT; /* Current status of O_DIRECT flag */
int new_flag = O_DIRECT;
int flag;
@@ -300,7 +300,8 @@ static void set_o_direct(int dev, unsigned char *buffer, size_t size,
flag = fcntl(dev, F_GETFL);
if (flag > 0) {
flag = (flag & ~O_DIRECT) | new_flag;
- fcntl(dev, F_SETFL, flag);
+ if (fcntl(dev, F_SETFL, flag) < 0)
+ perror("set_o_direct");
}
current_O_DIRECT = new_flag;
}
@@ -369,7 +370,7 @@ static int do_read (int dev, unsigned char * buffer, int try, int block_size,
/* Seek to the correct loc. */
if (ext2fs_llseek (dev, (ext2_loff_t) current_block * block_size,
SEEK_SET) != (ext2_loff_t) current_block * block_size)
- com_err (program_name, errno, _("during seek"));
+ com_err (program_name, errno, "%s", _("during seek"));
/* Try the read */
if (d_flag)
@@ -442,7 +443,7 @@ static int do_write(int dev, unsigned char * buffer, int try, int block_size,
/* Seek to the correct loc. */
if (ext2fs_llseek (dev, (ext2_loff_t) current_block * block_size,
SEEK_SET) != (ext2_loff_t) current_block * block_size)
- com_err (program_name, errno, _("during seek"));
+ com_err (program_name, errno, "%s", _("during seek"));
/* Try the write */
got = write (dev, buffer, try * block_size);
@@ -466,7 +467,8 @@ static void flush_bufs(void)
#endif
retval = ext2fs_sync_device(host_dev, 1);
if (retval)
- com_err(program_name, retval, _("during ext2fs_sync_device"));
+ com_err(program_name, retval, "%s",
+ _("during ext2fs_sync_device"));
}
static unsigned int test_ro (int dev, blk_t last_block,
@@ -485,8 +487,8 @@ static unsigned int test_ro (int dev, blk_t last_block,
errcode = ext2fs_badblocks_list_iterate_begin(bb_list,&bb_iter);
if (errcode) {
- com_err (program_name, errcode,
- _("while beginning bad block list iteration"));
+ com_err(program_name, errcode, "%s",
+ _("while beginning bad block list iteration"));
exit (1);
}
do {
@@ -500,13 +502,14 @@ static unsigned int test_ro (int dev, blk_t last_block,
}
if (!blkbuf)
{
- com_err (program_name, ENOMEM, _("while allocating buffers"));
+ com_err(program_name, ENOMEM, "%s",
+ _("while allocating buffers"));
exit (1);
}
if (v_flag) {
- fprintf (stderr, _("Checking blocks %lu to %lu\n"),
- (unsigned long) first_block,
- (unsigned long) last_block - 1);
+ fprintf(stderr, _("Checking blocks %lu to %lu\n"),
+ (unsigned long)first_block,
+ (unsigned long)last_block - 1);
}
if (t_flag) {
fputs(_("Checking for bad blocks in read-only mode\n"), stderr);
@@ -557,7 +560,7 @@ static unsigned int test_ro (int dev, blk_t last_block,
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing - got +
blocks_at_once;
continue;
@@ -599,7 +602,8 @@ static unsigned int test_rw (int dev, blk_t last_block,
read_buffer = buffer + blocks_at_once * block_size;
if (!buffer) {
- com_err (program_name, ENOMEM, _("while allocating buffers"));
+ com_err(program_name, ENOMEM, "%s",
+ _("while allocating buffers"));
exit (1);
}
@@ -647,7 +651,7 @@ static unsigned int test_rw (int dev, blk_t last_block,
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing -
got + blocks_at_once;
continue;
@@ -686,13 +690,13 @@ static unsigned int test_rw (int dev, blk_t last_block,
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing -
got + blocks_at_once;
continue;
} else if (currently_testing == recover_block) {
try = blocks_at_once;
- recover_block = ~0;
+ recover_block = ~0U;
}
for (i=0; i < got; i++) {
if (memcmp(read_buffer + i * block_size,
@@ -739,14 +743,14 @@ static unsigned int test_nd (int dev, blk_t last_block,
errcode_t errcode;
unsigned long buf_used;
static unsigned int bb_count;
- int granularity = blocks_at_once;
- blk_t recover_block = ~0;
+ unsigned int granularity = blocks_at_once;
+ blk_t recover_block = ~0U;
bb_count = 0;
errcode = ext2fs_badblocks_list_iterate_begin(bb_list,&bb_iter);
if (errcode) {
- com_err (program_name, errcode,
- _("while beginning bad block list iteration"));
+ com_err(program_name, errcode, "%s",
+ _("while beginning bad block list iteration"));
exit (1);
}
do {
@@ -754,9 +758,10 @@ static unsigned int test_nd (int dev, blk_t last_block,
} while (next_bad && next_bad < first_block);
blkbuf = allocate_buffer(3 * blocks_at_once * block_size);
- test_record = malloc (blocks_at_once*sizeof(struct saved_blk_record));
+ test_record = malloc(blocks_at_once * sizeof(struct saved_blk_record));
if (!blkbuf || !test_record) {
- com_err(program_name, ENOMEM, _("while allocating buffers"));
+ com_err(program_name, ENOMEM, "%s",
+ _("while allocating buffers"));
exit (1);
}
@@ -839,7 +844,7 @@ static unsigned int test_nd (int dev, blk_t last_block,
got = do_read (dev, save_ptr, try, block_size,
currently_testing);
if (got == 0) {
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing +
blocks_at_once;
if (granularity != 1) {
@@ -874,7 +879,7 @@ static unsigned int test_nd (int dev, blk_t last_block,
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing -
got + blocks_at_once;
continue;
@@ -1047,6 +1052,7 @@ int main (int argc, char ** argv)
unsigned int);
int open_flag;
long sysval;
+ blk64_t inblk;
setbuf(stdout, NULL);
setbuf(stderr, NULL);
@@ -1159,15 +1165,15 @@ int main (int argc, char ** argv)
}
if (!w_flag) {
if (t_flag > 1) {
- com_err(program_name, 0,
- _("Maximum of one test_pattern may be specified "
- "in read-only mode"));
+ com_err(program_name, 0, "%s",
+ _("Maximum of one test_pattern may be "
+ "specified in read-only mode"));
exit(1);
}
if (t_patts && (t_patts[0] == (unsigned int) ~0)) {
- com_err(program_name, 0,
- _("Random test_pattern is not allowed "
- "in read-only mode"));
+ com_err(program_name, 0, "%s",
+ _("Random test_pattern is not allowed "
+ "in read-only mode"));
exit(1);
}
}
@@ -1179,13 +1185,13 @@ int main (int argc, char ** argv)
block_size,
&last_block);
if (errcode == EXT2_ET_UNIMPLEMENTED) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("Couldn't determine device size; you "
"must specify\nthe size manually\n"));
exit(1);
}
if (errcode) {
- com_err(program_name, errcode,
+ com_err(program_name, errcode, "%s",
_("while trying to determine device size"));
exit(1);
}
@@ -1200,10 +1206,17 @@ int main (int argc, char ** argv)
first_block = parse_uint(argv[optind], _("first block"));
} else first_block = 0;
if (first_block >= last_block) {
- com_err (program_name, 0, _("invalid starting block (%lu): must be less than %lu"),
- (unsigned long) first_block, (unsigned long) last_block);
+ com_err (program_name, 0, _("invalid starting block (%llu): must be less than %llu"),
+ first_block, last_block);
exit (1);
}
+ /* ext2 badblocks file can't handle large values */
+ if (last_block >> 32) {
+ com_err(program_name, EOVERFLOW,
+ _("invalid end block (%llu): must be 32-bit value"),
+ last_block);
+ exit(1);
+ }
if (w_flag)
check_mount(device_name);
@@ -1255,23 +1268,35 @@ int main (int argc, char ** argv)
errcode = ext2fs_badblocks_list_create(&bb_list,0);
if (errcode) {
- com_err (program_name, errcode,
- _("while creating in-memory bad blocks list"));
+ com_err(program_name, errcode, "%s",
+ _("while creating in-memory bad blocks list"));
exit (1);
}
if (in) {
for(;;) {
- switch(fscanf (in, "%u\n", &next_bad)) {
+ switch (fscanf(in, "%llu\n", &inblk)) {
case 0:
- com_err (program_name, 0, "input file - bad format");
+ com_err(program_name, 0, "%s",
+ _("input file - bad format"));
exit (1);
case EOF:
break;
default:
+ if (inblk >> 32) {
+ com_err(program_name,
+ EOVERFLOW, "%s",
+ _("while adding to in-memory "
+ "bad block list"));
+ exit(1);
+ }
+ next_bad = inblk;
errcode = ext2fs_badblocks_list_add(bb_list,next_bad);
if (errcode) {
- com_err (program_name, errcode, _("while adding to in-memory bad block list"));
+ com_err(program_name, errcode,
+ "%s",
+ _("while adding to in-memory "
+ "bad block list"));
exit (1);
}
continue;
diff --git a/misc/blkid.c b/misc/blkid.c
index a4a8db0b..96fffae4 100644
--- a/misc/blkid.c
+++ b/misc/blkid.c
@@ -38,7 +38,7 @@ extern int optind;
#include "ext2fs/ext2fs.h"
#include "blkid/blkid.h"
-const char *progname = "blkid";
+static const char *progname = "blkid";
static void print_version(FILE *out)
{
@@ -100,19 +100,27 @@ static int get_terminal_width(void)
struct winsize w_win;
#endif
const char *cp;
+ int width = 80;
#ifdef TIOCGSIZE
- if (ioctl (0, TIOCGSIZE, &t_win) == 0)
- return (t_win.ts_cols);
+ if (ioctl (0, TIOCGSIZE, &t_win) == 0) {
+ width = t_win.ts_cols;
+ goto got_it;
+ }
#endif
#ifdef TIOCGWINSZ
- if (ioctl (0, TIOCGWINSZ, &w_win) == 0)
- return (w_win.ws_col);
+ if (ioctl (0, TIOCGWINSZ, &w_win) == 0) {
+ width = w_win.ws_col;
+ goto got_it;
+ }
#endif
cp = getenv("COLUMNS");
if (cp)
- return strtol(cp, NULL, 10);
- return 80;
+ width = atoi(cp);
+got_it:
+ if (width > 4096)
+ return 4096; /* sanity check */
+ return width;
}
static int pretty_print_word(const char *str, int max_len,
@@ -127,9 +135,9 @@ static int pretty_print_word(const char *str, int max_len,
len = 0;
} else if (len > max_len)
ret = len - max_len;
- do
+ do {
fputc(' ', stdout);
- while (len++ < max_len);
+ } while (len++ < max_len);
return ret;
}
@@ -142,20 +150,21 @@ static void pretty_print_line(const char *device, const char *fs_type,
static int term_width = -1;
int len, w;
- if (term_width < 0)
+ if (term_width < 0) {
term_width = get_terminal_width();
- if (term_width > 80) {
- term_width -= 80;
- w = term_width / 10;
- if (w > 8)
- w = 8;
- term_width -= 2*w;
- label_len += w;
- fs_type_len += w;
- w = term_width/2;
- device_len += w;
- mtpt_len +=w;
+ if (term_width > 80) {
+ term_width -= 80;
+ w = term_width / 10;
+ if (w > 8)
+ w = 8;
+ term_width -= 2*w;
+ label_len += w;
+ fs_type_len += w;
+ w = term_width/2;
+ device_len += w;
+ mtpt_len +=w;
+ }
}
len = pretty_print_word(device, device_len, 0, 1);
@@ -284,10 +293,7 @@ int main(int argc, char **argv)
while ((c = getopt (argc, argv, "c:f:ghlLo:s:t:w:v")) != EOF)
switch (c) {
case 'c':
- if (optarg && !*optarg)
- read = NULL;
- else
- read = optarg;
+ read = optarg;
if (!write)
write = read;
break;
@@ -340,13 +346,11 @@ int main(int argc, char **argv)
version = 1;
break;
case 'w':
- if (optarg && !*optarg)
- write = NULL;
- else
- write = optarg;
+ write = optarg;
break;
case 'h':
err = 0;
+ /* fallthrough */
default:
usage(err);
}
diff --git a/misc/chattr.1.in b/misc/chattr.1.in
index 92f6d703..2a3640c6 100644
--- a/misc/chattr.1.in
+++ b/misc/chattr.1.in
@@ -19,17 +19,18 @@ chattr \- change file attributes on a Linux file system
.B chattr
changes the file attributes on a Linux file system.
.PP
-The format of a symbolic mode is +-=[acdeijstuADST].
+The format of a symbolic mode is +-=[acdeijstuACDST].
.PP
The operator `+' causes the selected attributes to be added to the
existing attributes of the files; `-' causes them to be removed; and
`=' causes them to be the only attributes that the files have.
.PP
-The letters `acdeijstuADST' select the new attributes for the files:
+The letters `acdeijstuACDST' select the new attributes for the files:
append only (a), compressed (c), no dump (d), extent format (e), immutable (i),
-data journalling (j), secure deletion (s), no tail-merging (t),
-undeletable (u), no atime updates (A), synchronous directory updates (D),
-synchronous updates (S), and top of directory hierarchy (T).
+data journalling (j), secure deletion (s), no tail-merging (t),
+undeletable (u), no atime updates (A), no copy on write (C),
+synchronous directory updates (D), synchronous updates (S),
+and top of directory hierarchy (T).
.PP
The following attributes are read-only, and may be listed by
.BR lsattr (1)
@@ -55,15 +56,24 @@ not modified. This avoids a certain amount of disk I/O for laptop
systems.
.PP
A file with the `a' attribute set can only be open in append mode for writing.
-Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE
+Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE
capability can set or clear this attribute.
.PP
A file with the `c' attribute set is automatically compressed on the disk
by the kernel. A read from this file returns uncompressed data. A write to
-this file compresses data before storing them on the disk. Note: please
+this file compresses data before storing them on the disk. Note: please
make sure to read the bugs and limitations section at the end of this
document.
.PP
+A file with the 'C' attribute set will not be subject to copy-on-write
+updates. This flag is only supported on file systems which perform
+copy-on-write. (Note: For btrfs, the 'C' flag should be
+set on new or empty files. If it is set on a file which already has
+data blocks, it is undefined when the blocks assigned to the file will
+be fully stable. If the 'C' flag is set on a directory, it will have no
+effect on the directory, but new files created in that directory will
+the No_COW attribute.)
+.PP
When a directory with the `D' attribute set is modified,
the changes are written synchronously on the disk; this is equivalent to
the `dirsync' mount option applied to a subset of the files.
@@ -72,9 +82,9 @@ A file with the `d' attribute set is not candidate for backup when the
.BR dump (8)
program is run.
.PP
-The 'E' attribute is used by the experimental compression patches to
+The 'E' attribute is used by the experimental compression patches to
indicate that a compressed file has a compression error. It may not be
-set or reset using
+set or reset using
.BR chattr (1),
although it can be displayed by
.BR lsattr (1).
@@ -84,7 +94,7 @@ the blocks on disk. It may not be removed using
.BR chattr (1).
.PP
The 'I' attribute is used by the htree code to indicate that a directory
-is being 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).
@@ -102,11 +112,11 @@ to the file. Only the superuser or a process possessing the
CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
.PP
A file with the `j' attribute has all of its data written to the ext3
-journal before being written to the file itself, if the filesystem is
-mounted with the "data=ordered" or "data=writeback" options. When the
+or ext4 journal before being written to the file itself, if the filesystem
+is mounted with the "data=ordered" or "data=writeback" options. When the
filesystem is mounted with the "data=journal" option all file data
-is already journalled and this attribute has no effect.
-Only the superuser or a process possessing the CAP_SYS_RESOURCE
+is already journalled and this attribute has no effect. Only
+the superuser or a process possessing the CAP_SYS_RESOURCE
capability can set or clear this attribute.
.PP
When a file with the `s' attribute set is deleted, its blocks are zeroed
@@ -117,7 +127,7 @@ When a file with the `S' attribute set is modified,
the changes are written synchronously on the disk; this is equivalent to
the `sync' mount option applied to a subset of the files.
.PP
-A directory with the 'T' attribute will be deemed to be the top of
+A directory with the 'T' attribute will be deemed to be the top of
directory hierarchies for the purposes of the Orlov block allocator.
This is a hint to the block allocator used by ext3 and ext4 that the
subdirectories under this directory are not related, and thus should be
@@ -129,7 +139,7 @@ group subdirectories closer together where possible.
.PP
A file with the 't' attribute will not have a partial block fragment at
the end of the file merged with other files (for those filesystems which
-support tail-merging). This is necessary for applications such as LILO
+support tail-merging). This is necessary for applications such as LILO
which read the filesystem directly, and which don't understand tail-merged
files. Note: As of this writing, the ext2 or ext3 filesystems do not
(yet, except in very experimental patches) support tail-merging.
@@ -139,15 +149,15 @@ saved. This allows the user to ask for its undeletion. Note: please
make sure to read the bugs and limitations section at the end of this
document.
.PP
-The 'X' attribute is used by the experimental compression patches to
+The 'X' attribute is used by the experimental compression patches to
indicate that a raw contents of a compressed file can be accessed
-directly. It currently may not be set or reset using
+directly. It currently may not be set or reset using
.BR chattr (1),
although it can be displayed by
.BR lsattr (1).
.PP
-The 'Z' attribute is used by the experimental compression patches to
-indicate a compressed file is dirty. It may not be set or reset using
+The 'Z' attribute is used by the experimental compression patches to
+indicate a compressed file is dirty. It may not be set or reset using
.BR chattr (1),
although it can be displayed by
.BR lsattr (1).
@@ -157,12 +167,11 @@ although it can be displayed by
was written by Remy Card <Remy.Card@linux.org>. It is currently being
maintained by Theodore Ts'o <tytso@alum.mit.edu>.
.SH BUGS AND LIMITATIONS
-The `c', 's', and `u' attributes are not honored
-by the ext2 and ext3 filesystems as implemented in the current mainline
-Linux kernels. These attributes may be implemented
-in future versions of the ext2 and ext3 filesystems.
+The `c', 's', and `u' attributes are not honored
+by the ext2, ext3, and ext4 filesystems as implemented in the current
+mainline Linux kernels.
.PP
-The `j' option is only useful if the filesystem is mounted as ext3.
+The `j' option is only useful if the filesystem is mounted as ext3 or ext4.
.PP
The `D' option is only useful on Linux kernel 2.5.19 and later.
.SH AVAILABILITY
diff --git a/misc/chattr.c b/misc/chattr.c
index 8a2d61f9..39a60169 100644
--- a/misc/chattr.c
+++ b/misc/chattr.c
@@ -83,7 +83,7 @@ static unsigned long sf;
static void usage(void)
{
fprintf(stderr,
- _("Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"),
+ _("Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"),
program_name);
exit(1);
}
@@ -107,6 +107,7 @@ static const struct flags_char flags_array[] = {
{ EXT2_UNRM_FL, 'u' },
{ EXT2_NOTAIL_FL, 't' },
{ EXT2_TOPDIR_FL, 'T' },
+ { FS_NOCOW_FL, 'C' },
{ 0, 0 }
};
@@ -193,7 +194,6 @@ static int change_attributes(const char * name)
{
unsigned long flags;
STRUCT_STAT st;
- int extent_file = 0;
if (LSTAT (name, &st) == -1) {
if (!silent)
@@ -208,16 +208,7 @@ static int change_attributes(const char * name)
_("while reading flags on %s"), name);
return -1;
}
- if (flags & EXT4_EXTENTS_FL)
- extent_file = 1;
if (set) {
- if (extent_file && !(sf & EXT4_EXTENTS_FL)) {
- if (!silent)
- com_err(program_name, 0,
- _("Clearing extent flag not supported on %s"),
- name);
- return -1;
- }
if (verbose) {
printf (_("Flags of %s set as "), name);
print_flags (stdout, sf, 0);
@@ -230,13 +221,6 @@ static int change_attributes(const char * name)
flags &= ~rf;
if (add)
flags |= af;
- if (extent_file && !(flags & EXT4_EXTENTS_FL)) {
- if (!silent)
- com_err(program_name, 0,
- _("Clearing extent flag not supported on %s"),
- name);
- return -1;
- }
if (verbose) {
printf(_("Flags of %s set as "), name);
print_flags(stdout, flags, 0);
@@ -279,8 +263,9 @@ static int chattr_dir_proc (const char * dir_name, struct dirent * de,
path = malloc(strlen (dir_name) + 1 + strlen (de->d_name) + 1);
if (!path) {
- fprintf(stderr, _("Couldn't allocate path variable "
- "in chattr_dir_proc"));
+ fprintf(stderr, "%s",
+ _("Couldn't allocate path variable "
+ "in chattr_dir_proc"));
return -1;
}
sprintf(path, "%s/%s", dir_name, de->d_name);
diff --git a/misc/dumpe2fs.8.in b/misc/dumpe2fs.8.in
index a4937891..befaf948 100644
--- a/misc/dumpe2fs.8.in
+++ b/misc/dumpe2fs.8.in
@@ -82,5 +82,6 @@ http://e2fsprogs.sourceforge.net.
.SH SEE ALSO
.BR e2fsck (8),
.BR mke2fs (8),
-.BR tune2fs (8)
+.BR tune2fs (8).
+.BR ext4 (5)
diff --git a/misc/dumpe2fs.c b/misc/dumpe2fs.c
index b91c3831..d4bde8e5 100644
--- a/misc/dumpe2fs.c
+++ b/misc/dumpe2fs.c
@@ -45,9 +45,10 @@ extern int optind;
#define in_use(m, x) (ext2fs_test_bit ((x), (m)))
-const char * program_name = "dumpe2fs";
-char * device_name = NULL;
-int hex_format = 0;
+static const char * program_name = "dumpe2fs";
+static char * device_name = NULL;
+static int hex_format = 0;
+static int blocks64 = 0;
static void usage(void)
{
@@ -56,19 +57,25 @@ static void usage(void)
exit (1);
}
-static void print_number(unsigned long num)
+static void print_number(unsigned long long num)
{
- if (hex_format)
- printf("0x%04lx", num);
- else
- printf("%lu", num);
+ if (hex_format) {
+ if (blocks64)
+ printf("0x%08llx", num);
+ else
+ printf("0x%04llx", num);
+ } else
+ printf("%llu", num);
}
static void print_range(unsigned long long a, unsigned long long b)
{
- if (hex_format)
- printf("0x%llx-0x%llx", a, b);
- else
+ if (hex_format) {
+ if (blocks64)
+ printf("0x%08llx-0x%08llx", a, b);
+ else
+ printf("0x%04llx-0x%04llx", a, b);
+ } else
printf("%llu-%llu", a, b);
}
@@ -137,9 +144,9 @@ static void print_bg_rel_offset(ext2_filsys fs, blk64_t block, int itable,
printf(" (+%u)", (unsigned)(block - first_block));
} else if (fs->super->s_feature_incompat &
EXT4_FEATURE_INCOMPAT_FLEX_BG) {
- dgrp_t flex_grp = ext2fs_group_of_blk(fs, block);
+ dgrp_t flex_grp = ext2fs_group_of_blk2(fs, block);
printf(" (bg #%u + %u)", flex_grp,
- (unsigned)(block-ext2fs_group_first_block(fs,flex_grp)));
+ (unsigned)(block-ext2fs_group_first_block2(fs,flex_grp)));
}
}
@@ -155,6 +162,7 @@ static void list_desc (ext2_filsys fs)
int has_super;
blk64_t blk_itr = EXT2FS_B2C(fs, fs->super->s_first_data_block);
ext2_ino_t ino_itr = 1;
+ errcode_t retval;
if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_BIGALLOC))
@@ -207,18 +215,18 @@ static void list_desc (ext2_filsys fs)
print_number(super_blk);
}
if (old_desc_blk) {
- printf(_(", Group descriptors at "));
+ printf("%s", _(", Group descriptors at "));
print_range(old_desc_blk,
old_desc_blk + old_desc_blocks - 1);
if (reserved_gdt) {
- printf(_("\n Reserved GDT blocks at "));
+ printf("%s", _("\n Reserved GDT blocks at "));
print_range(old_desc_blk + old_desc_blocks,
old_desc_blk + old_desc_blocks +
reserved_gdt - 1);
}
} else if (new_desc_blk) {
fputc(has_super ? ',' : ' ', stdout);
- printf(_(" Group descriptor at "));
+ printf("%s", _(" Group descriptor at "));
print_number(new_desc_blk);
has_super++;
}
@@ -249,21 +257,30 @@ static void list_desc (ext2_filsys fs)
ext2fs_bg_itable_unused(fs, i));
if (block_bitmap) {
fputs(_(" Free blocks: "), stdout);
- ext2fs_get_block_bitmap_range2(fs->block_map,
+ retval = ext2fs_get_block_bitmap_range2(fs->block_map,
blk_itr, block_nbytes << 3, block_bitmap);
- print_free(i, block_bitmap,
- fs->super->s_clusters_per_group,
- fs->super->s_first_data_block,
- EXT2FS_CLUSTER_RATIO(fs));
+ if (retval)
+ com_err("list_desc", retval,
+ "while reading block bitmap");
+ else
+ print_free(i, block_bitmap,
+ fs->super->s_clusters_per_group,
+ fs->super->s_first_data_block,
+ EXT2FS_CLUSTER_RATIO(fs));
fputc('\n', stdout);
blk_itr += fs->super->s_clusters_per_group;
}
if (inode_bitmap) {
fputs(_(" Free inodes: "), stdout);
- ext2fs_get_inode_bitmap_range2(fs->inode_map,
+ retval = ext2fs_get_inode_bitmap_range2(fs->inode_map,
ino_itr, inode_nbytes << 3, inode_bitmap);
- print_free(i, inode_bitmap,
- fs->super->s_inodes_per_group, 1, 1);
+ if (retval)
+ com_err("list_desc", retval,
+ "while reading inode bitmap");
+ else
+ print_free(i, inode_bitmap,
+ fs->super->s_inodes_per_group,
+ 1, 1);
fputc('\n', stdout);
ino_itr += fs->super->s_inodes_per_group;
}
@@ -290,7 +307,7 @@ static void list_bad_blocks(ext2_filsys fs, int dump)
retval = ext2fs_badblocks_list_iterate_begin(bb_list, &bb_iter);
if (retval) {
com_err("ext2fs_badblocks_list_iterate_begin", retval,
- _("while printing bad block list"));
+ "%s", _("while printing bad block list"));
return;
}
if (dump) {
@@ -320,32 +337,34 @@ static void print_inline_journal_information(ext2_filsys fs)
__u32 *mask_ptr, mask, m;
int i, j, size, printed = 0;
+ if (fs->flags & EXT2_FLAG_IMAGE_FILE)
+ return;
retval = ext2fs_read_inode(fs, ino, &inode);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while reading journal inode"));
exit(1);
}
retval = ext2fs_file_open2(fs, ino, &inode, 0, &journal_file);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while opening journal inode"));
exit(1);
}
retval = ext2fs_file_read(journal_file, buf, sizeof(buf), 0);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while reading journal super block"));
exit(1);
}
ext2fs_file_close(journal_file);
jsb = (journal_superblock_t *) buf;
if (be32_to_cpu(jsb->s_header.h_magic) != JFS_MAGIC_NUMBER) {
- fprintf(stderr,
- "Journal superblock magic number invalid!\n");
+ fprintf(stderr, "%s",
+ _("Journal superblock magic number invalid!\n"));
exit(1);
}
- printf(_("Journal features: "));
+ printf("%s", _("Journal features: "));
for (i=0, mask_ptr=&jsb->s_feature_compat; i <3; i++,mask_ptr++) {
mask = be32_to_cpu(*mask_ptr);
for (j=0,m=1; j < 32; j++, m<<=1) {
@@ -375,6 +394,9 @@ static void print_inline_journal_information(ext2_filsys fs)
(unsigned int)ntohl(jsb->s_maxlen),
(unsigned int)ntohl(jsb->s_sequence),
(unsigned int)ntohl(jsb->s_start));
+ if (jsb->s_errno != 0)
+ printf(_("Journal errno: %d\n"),
+ (int) ntohl(jsb->s_errno));
}
static void print_journal_information(ext2_filsys fs)
@@ -386,8 +408,10 @@ static void print_journal_information(ext2_filsys fs)
journal_superblock_t *jsb;
/* Get the journal superblock */
- if ((retval = io_channel_read_blk64(fs->io, fs->super->s_first_data_block+1, -1024, buf))) {
- com_err(program_name, retval,
+ if ((retval = io_channel_read_blk64(fs->io,
+ fs->super->s_first_data_block + 1,
+ -1024, buf))) {
+ com_err(program_name, retval, "%s",
_("while reading journal superblock"));
exit(1);
}
@@ -395,7 +419,7 @@ static void print_journal_information(ext2_filsys fs)
if ((jsb->s_header.h_magic != (unsigned) ntohl(JFS_MAGIC_NUMBER)) ||
(jsb->s_header.h_blocktype !=
(unsigned) ntohl(JFS_SUPERBLOCK_V2))) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("Couldn't find journal superblock magic numbers"));
exit(1);
}
@@ -428,7 +452,7 @@ static void parse_extended_opts(const char *opts, blk64_t *superblock,
len = strlen(opts);
buf = malloc(len+1);
if (!buf) {
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("Couldn't allocate memory to parse options!\n"));
exit(1);
}
@@ -577,10 +601,12 @@ int main (int argc, char ** argv)
if (retval) {
com_err (program_name, retval, _("while trying to open %s"),
device_name);
- printf (_("Couldn't find valid filesystem superblock.\n"));
+ printf("%s", _("Couldn't find valid filesystem superblock.\n"));
exit (1);
}
fs->default_bitmap_type = EXT2FS_BMAP64_RBTREE;
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ blocks64 = 1;
if (print_badblocks) {
list_bad_blocks(fs, 1);
} else {
diff --git a/misc/e2freefrag.c b/misc/e2freefrag.c
index 30af43e2..612ca445 100644
--- a/misc/e2freefrag.c
+++ b/misc/e2freefrag.c
@@ -172,10 +172,10 @@ static errcode_t get_chunk_info(ext2_filsys fs, struct chunk_info *info,
/* Display chunk information in KB */
if (info->real_free_chunks) {
- info->min = (info->min * fs->blocksize) >> 10;
- info->max = (info->max * fs->blocksize) >> 10;
- info->avg = (info->avg / info->real_free_chunks *
- fs->blocksize) >> 10;
+ unsigned int scale = fs->blocksize >> 10;
+ info->min = info->min * scale;
+ info->max = info->max * scale;
+ info->avg = info->avg / info->real_free_chunks * scale;
} else {
info->min = 0;
}
@@ -249,13 +249,14 @@ static void collect_info(ext2_filsys fs, struct chunk_info *chunk_info, FILE *f)
static void open_device(char *device_name, ext2_filsys *fs)
{
int retval;
- int flag = EXT2_FLAG_FORCE;
+ int flag = EXT2_FLAG_FORCE | EXT2_FLAG_64BITS;
retval = ext2fs_open(device_name, flag, 0, 0, unix_io_manager, fs);
if (retval) {
com_err(device_name, retval, "while opening filesystem");
exit(1);
}
+ (*fs)->default_bitmap_type = EXT2FS_BMAP64_RBTREE;
}
#endif
diff --git a/misc/e2image.8.in b/misc/e2image.8.in
index 74d2a0bb..75002d77 100644
--- a/misc/e2image.8.in
+++ b/misc/e2image.8.in
@@ -8,18 +8,44 @@ e2image \- Save critical ext2/ext3/ext4 filesystem metadata to a file
.SH SYNOPSIS
.B e2image
[
-.B \-rsI
+.B \-r|Q
]
+[
+.B \-fr
+]
+.I device
+.I image-file
+.br
+.B e2image
+.B \-I
.I device
.I image-file
+.br
+.B e2image
+.B \-ra
+[
+.B \-cfnp
+]
+[
+.B \-o
+.I src_offset
+]
+[
+.B \-O
+.I dest_offset
+]
+.I src_fs
+[
+.I dest_fs
+]
.SH DESCRIPTION
The
.B e2image
-program will save critical ext2, ext3, or ext4 filesystem metadata located on
-.I device
-to a file specified by
+program will save critical ext2, ext3, or ext4 filesystem metadata located on
+.I device
+to a file specified by
.IR image-file .
-The image file may be examined by
+The image file may be examined by
.B dumpe2fs
and
.BR debugfs ,
@@ -30,15 +56,25 @@ recovering catastrophically corrupted filesystems. In the future,
e2fsck will be enhanced to be able to use the image file to help
recover a badly damaged filesystem.
.PP
-If
+When saving an e2image for debugging purposes, using either the
+.B \-r
+or
+.B \-Q
+options, the filesystem must be unmounted or be mounted read/only, in order
+for the image file to be in a consistent state. This requirement can be
+overriden using the
+.B \-f
+option, but the resulting image file is very likely not going to be useful.
+.PP
+If
.I image-file
-is \-, then the output of
+is \-, then the output of
.B e2image
will be sent to standard output, so that the output can be piped to
-another program, such as
-.BR gzip (1).
+another program, such as
+.BR gzip (1).
(Note that this is currently only supported when
-creating a raw image file using the
+creating a raw image file using the
.B \-r
option, since the process of creating a normal image file, or QCOW2
image currently
@@ -48,21 +84,21 @@ pipe. This restriction will hopefully be lifted in a future version of
.PP
It is a very good idea to create image files for all of
filesystems on a system and save the partition
-layout (which can be generated using the
+layout (which can be generated using the
.B fdisk \-l
command) at regular intervals --- at boot time, and/or every week or so.
The image file should be stored on some filesystem other than
the filesystem whose data it contains, to ensure that this data is
accessible in the case where the filesystem has been badly damaged.
.PP
-To save disk space,
+To save disk space,
.B e2image
creates the image file as a sparse file, or in QCOW2 format.
Hence, if the sparse image file
needs to be copied to another location, it should
-either be compressed first or copied using the
+either be compressed first or copied using the
.B \-\-sparse=always
-option to the GNU version of
+option to the GNU version of
.BR cp .
This does not apply to the QCOW2 image, which is not sparse.
.PP
@@ -77,15 +113,15 @@ disk will generally compress down to 3 or 4 megabytes.
.PP
.SH RESTORING FILESYSTEM METADATA USING AN IMAGE FILE
.PP
-The
-.B \-I
+The
+.B \-I
option will cause e2image to install the metadata stored in the image
-file back to the device. It can be used to restore the filesystem metadata
+file back to the device. It can be used to restore the filesystem metadata
back to the device in emergency situations.
.PP
.B WARNING!!!!
The
-.B \-I
+.B \-I
option should only be used as a desperation measure when other
alternatives have failed. If the filesystem has changed since the image
file was created, data
@@ -95,13 +131,13 @@ backup of the filesystem first, in case you wish to try other recovery
strategies afterwards.
.PP
.SH RAW IMAGE FILES
-The
+The
.B \-r
-option will create a raw image file instead of a normal image file.
+option will create a raw image file instead of a normal image file.
A raw image file differs
from a normal image file in two ways. First, the filesystem metadata is
placed in the proper position so that e2fsck, dumpe2fs, debugfs,
-etc. can be run directly on the raw image file. In order to minimize
+etc.\& can be run directly on the raw image file. In order to minimize
the amount of disk space consumed by a raw image file, the file is
created as a sparse file. (Beware of copying or
compressing/decompressing this file with utilities that don't understand
@@ -115,18 +151,18 @@ as part of bug reports to e2fsprogs. When used in this capacity, the
recommended command is as follows (replace hda1 with the appropriate device):
.PP
.br
-\ \fBe2image \-r /dev/hda1 \- | bzip2 > hda1.e2i.bz2\fR
+ \fBe2image \-r /dev/hda1 \- | bzip2 > hda1.e2i.bz2\fR
.PP
-This will only send the metadata information, without any data blocks.
+This will only send the metadata information, without any data blocks.
However, the filenames in the directory blocks can still reveal
information about the contents of the filesystem that the bug reporter
may wish to keep confidential. To address this concern, the
.B \-s
option can be specified. This will cause
-.B e2image
+.B e2image
to scramble directory entries and zero out any unused portions
of the directory blocks before writing the image file. However,
-the
+the
.B \-s
option will prevent analysis of problems related to hash-tree indexed
directories.
@@ -171,12 +207,77 @@ is regular QCOW2 image and can be processed by tools aware of QCOW2 format
such as for example
.BR qemu-img .
.PP
+You can convert a qcow2 image into a raw image with:
+.PP
+.br
+\ \fBe2image \-r hda1.qcow2 hda1.raw\fR
+.br
+.PP
+This can be useful to write a qcow2 image containing all data to a
+sparse image file where it can be loop mounted, or to a disk partition.
+Note that this may not work with qcow2 images not generated by e2image.
+.PP
+.SH INCLUDING DATA
+Normally
+.B e2image
+only includes fs metadata, not regular file data. The
+.B \-a
+option can be specified to include all data. This will
+give an image that is suitable to use to clone the entire FS or
+for backup purposes. Note that this option only works with the
+raw or QCOW2 formats. The
+.B \-p
+switch may be given to show progress. If the file system is being
+cloned to a flash-based storage device (where reads are very fast and
+where it is desirable to avoid unnecessary writes to reduce write wear
+on the device), the
+.B \-c
+option which cause e2image to try reading a block from the destination
+to see if it is identical to the block which
+.B e2image
+is about to copy. If the block is already the same, the write can be
+skipped. The
+.B \-n
+option will cause all of the writes to be no-ops, and print the blocks
+that would have been written.
+.PP
+.SH OFFSETS
+Normally a filesystem starts at the beginning of a partition, and
+.B e2image
+is run on the partition. When working with image files, you don't
+have the option of using the partition device, so you can specify
+the offset where the filesystem starts directly with the
+.B \-o
+option. Similarly the
+.B \-O
+option specifies the offset that should be seeked to in the destination
+before writing the filesystem.
+.PP
+For example, if you have a
+.B dd
+image of a whole hard drive that contains an ext2 fs in a partition
+starting at 1 MiB, you can clone that fs with:
+.PP
+.br
+\ \fBe2image \-aro 1048576 img /dev/sda1\fR
+.br
+.PP
+Or you can clone a fs into an image file, leaving room in the first
+MiB for a partition table with:
+.PP
+.br
+\ \fBe2image -arO 1048576 /dev/sda1 img\fR
+.br
+.PP
+If you specify at least one offset, and only one file, an in-place
+move will be performed, allowing you to safely move the filesystem
+from one offset to another.
.SH AUTHOR
-.B e2image
+.B e2image
was written by Theodore Ts'o (tytso@mit.edu).
.SH AVAILABILITY
.B e2image
-is part of the e2fsprogs package and is available from
+is part of the e2fsprogs package and is available from
http://e2fsprogs.sourceforge.net.
.SH SEE ALSO
.BR dumpe2fs (8),
diff --git a/misc/e2image.c b/misc/e2image.c
index 4a28900c..338d239c 100644
--- a/misc/e2image.c
+++ b/misc/e2image.c
@@ -35,6 +35,7 @@ extern int optind;
#include <sys/stat.h>
#include <sys/types.h>
#include <assert.h>
+#include <signal.h>
#include "ext2fs/ext2_fs.h"
#include "ext2fs/ext2fs.h"
@@ -48,20 +49,33 @@ extern int optind;
#include "nls-enable.h"
#define QCOW_OFLAG_COPIED (1LL << 63)
-
-
-const char * program_name = "e2image";
-char * device_name = NULL;
-
-static void lseek_error_and_exit(int errnum)
-{
- perror("seek");
- exit(1);
-}
-
-static blk64_t align_offset(blk64_t offset, int n)
+#define NO_BLK ((blk64_t) -1)
+
+/* Image types */
+#define E2IMAGE_RAW 1
+#define E2IMAGE_QCOW2 2
+
+/* Image flags */
+#define E2IMAGE_INSTALL_FLAG 1
+#define E2IMAGE_SCRAMBLE_FLAG 2
+#define E2IMAGE_IS_QCOW2_FLAG 4
+#define E2IMAGE_CHECK_ZERO_FLAG 8
+
+static const char * program_name = "e2image";
+static char * device_name = NULL;
+static char all_data;
+static char output_is_blk;
+static char nop_flag;
+/* writing to blk device: don't skip zeroed blocks */
+static blk64_t source_offset, dest_offset;
+static char move_mode;
+static char show_progress;
+static char *check_buf;
+static int skipped_blocks;
+
+static blk64_t align_offset(blk64_t offset, unsigned int n)
{
- return (offset + n - 1) & ~(n - 1);
+ return (offset + n - 1) & ~((blk64_t) n - 1);
}
static int get_bits_from_size(size_t size)
@@ -84,11 +98,61 @@ static int get_bits_from_size(size_t size)
static void usage(void)
{
- fprintf(stderr, _("Usage: %s [-rsIQ] device image_file\n"),
+ fprintf(stderr, _("Usage: %s [ -r|Q ] [ -fr ] device image-file\n"),
+ program_name);
+ fprintf(stderr, _(" %s -I device image-file\n"), program_name);
+ fprintf(stderr, _(" %s -ra [ -cfnp ] [ -o src_offset ] "
+ "[ -O dest_offset ] src_fs [ dest_fs ]\n"),
program_name);
exit (1);
}
+static ext2_loff_t seek_relative(int fd, int offset)
+{
+ ext2_loff_t ret = ext2fs_llseek(fd, offset, SEEK_CUR);
+ if (ret < 0) {
+ perror("seek_relative");
+ exit(1);
+ }
+ return ret;
+}
+
+static ext2_loff_t seek_set(int fd, ext2_loff_t offset)
+{
+ ext2_loff_t ret = ext2fs_llseek(fd, offset, SEEK_SET);
+ if (ret < 0) {
+ perror("seek_set");
+ exit(1);
+ }
+ return ret;
+}
+
+/*
+ * Returns true if the block we are about to write is identical to
+ * what is already on the disk.
+ */
+static int check_block(int fd, void *buf, void *cbuf, int blocksize)
+{
+ char *cp = cbuf;
+ int count = blocksize, ret;
+
+ if (cbuf == NULL)
+ return 0;
+
+ while (count > 0) {
+ ret = read(fd, cp, count);
+ if (ret < 0) {
+ perror("check_block");
+ exit(1);
+ }
+ count -= ret;
+ cp += ret;
+ }
+ ret = memcmp(buf, cbuf, blocksize);
+ seek_relative(fd, -blocksize);
+ return (ret == 0) ? 1 : 0;
+}
+
static void generic_write(int fd, void *buf, int blocksize, blk64_t block)
{
int count, free_buf = 0;
@@ -101,11 +165,17 @@ static void generic_write(int fd, void *buf, int blocksize, blk64_t block)
free_buf = 1;
err = ext2fs_get_arrayzero(1, blocksize, &buf);
if (err) {
- com_err(program_name, err, "while allocating buffer");
+ com_err(program_name, err, "%s",
+ _("while allocating buffer"));
exit(1);
}
}
-
+ if (nop_flag) {
+ printf(_("Writing block %llu\n"), (unsigned long long) block);
+ if (fd != 1)
+ seek_relative(fd, blocksize);
+ goto free_and_return;
+ }
count = write(fd, buf, blocksize);
if (count != blocksize) {
if (count == -1)
@@ -114,13 +184,15 @@ static void generic_write(int fd, void *buf, int blocksize, blk64_t block)
err = 0;
if (block)
- com_err(program_name, err, "error writing block %llu",
- block);
+ com_err(program_name, err,
+ _("error writing block %llu"), block);
else
- com_err(program_name, err, "error in write()");
+ com_err(program_name, err, "%s",
+ _("error in generic_write()"));
exit(1);
}
+free_and_return:
if (free_buf)
ext2fs_free_mem(&buf);
}
@@ -132,8 +204,8 @@ static void write_header(int fd, void *hdr, int hdr_size, int wrt_size)
/* Sanity check */
if (hdr_size > wrt_size) {
- fprintf(stderr, _("Error: header size is bigger than "
- "wrt_size\n"));
+ fprintf(stderr, "%s",
+ _("Error: header size is bigger than wrt_size\n"));
}
ret = ext2fs_get_mem(wrt_size, &header_buf);
@@ -142,16 +214,13 @@ static void write_header(int fd, void *hdr, int hdr_size, int wrt_size)
exit(1);
}
- if (ext2fs_llseek(fd, 0, SEEK_SET) < 0) {
- perror("ext2fs_llseek while writing header");
- exit(1);
- }
+ seek_set(fd, 0);
memset(header_buf, 0, wrt_size);
if (hdr)
memcpy(header_buf, hdr, hdr_size);
- generic_write(fd, header_buf, wrt_size, 0);
+ generic_write(fd, header_buf, wrt_size, NO_BLK);
ext2fs_free_mem(&header_buf);
}
@@ -162,35 +231,39 @@ static void write_image_file(ext2_filsys fs, int fd)
struct stat st;
errcode_t retval;
- write_header(fd, NULL, fs->blocksize, fs->blocksize);
+ write_header(fd, NULL, sizeof(struct ext2_image_hdr), fs->blocksize);
memset(&hdr, 0, sizeof(struct ext2_image_hdr));
- hdr.offset_super = ext2fs_llseek(fd, 0, SEEK_CUR);
+ hdr.offset_super = seek_relative(fd, 0);
retval = ext2fs_image_super_write(fs, fd, 0);
if (retval) {
- com_err(program_name, retval, _("while writing superblock"));
+ com_err(program_name, retval, "%s",
+ _("while writing superblock"));
exit(1);
}
- hdr.offset_inode = ext2fs_llseek(fd, 0, SEEK_CUR);
+ hdr.offset_inode = seek_relative(fd, 0);
retval = ext2fs_image_inode_write(fs, fd,
(fd != 1) ? IMAGER_FLAG_SPARSEWRITE : 0);
if (retval) {
- com_err(program_name, retval, _("while writing inode table"));
+ com_err(program_name, retval, "%s",
+ _("while writing inode table"));
exit(1);
}
- hdr.offset_blockmap = ext2fs_llseek(fd, 0, SEEK_CUR);
+ hdr.offset_blockmap = seek_relative(fd, 0);
retval = ext2fs_image_bitmap_write(fs, fd, 0);
if (retval) {
- com_err(program_name, retval, _("while writing block bitmap"));
+ com_err(program_name, retval, "%s",
+ _("while writing block bitmap"));
exit(1);
}
- hdr.offset_inodemap = ext2fs_llseek(fd, 0, SEEK_CUR);
+ hdr.offset_inodemap = seek_relative(fd, 0);
retval = ext2fs_image_bitmap_write(fs, fd, IMAGER_FLAG_INODEMAP);
if (retval) {
- com_err(program_name, retval, _("while writing inode bitmap"));
+ com_err(program_name, retval, "%s",
+ _("while writing inode bitmap"));
exit(1);
}
@@ -211,15 +284,15 @@ static void write_image_file(ext2_filsys fs, int fd)
memcpy(hdr.fs_uuid, fs->super->s_uuid, sizeof(hdr.fs_uuid));
hdr.image_time = time(0);
- write_header(fd, &hdr, fs->blocksize, fs->blocksize);
+ write_header(fd, &hdr, sizeof(struct ext2_image_hdr), fs->blocksize);
}
/*
* These set of functions are used to write a RAW image file.
*/
-ext2fs_block_bitmap meta_block_map;
-ext2fs_block_bitmap scramble_block_map; /* Directory blocks to be scrambled */
-blk64_t meta_blocks_count;
+static ext2fs_block_bitmap meta_block_map;
+static ext2fs_block_bitmap scramble_block_map; /* Directory blocks to be scrambled */
+static blk64_t meta_blocks_count;
struct process_block_struct {
ext2_ino_t ino;
@@ -270,9 +343,9 @@ static errcode_t meta_read_inode(ext2_filsys fs EXT2FS_ATTR((unused)),
return 0;
}
-static void use_inode_shortcuts(ext2_filsys fs, int bool)
+static void use_inode_shortcuts(ext2_filsys fs, int use_shortcuts)
{
- if (bool) {
+ if (use_shortcuts) {
fs->get_blocks = meta_get_blocks;
fs->check_directory = meta_check_directory;
fs->read_inode = meta_read_inode;
@@ -309,7 +382,7 @@ static int process_file_block(ext2_filsys fs EXT2FS_ATTR((unused)),
int ref_offset EXT2FS_ATTR((unused)),
void *priv_data EXT2FS_ATTR((unused)))
{
- if (blockcnt < 0) {
+ if (blockcnt < 0 || all_data) {
ext2fs_mark_block_bitmap2(meta_block_map, *block_nr);
meta_blocks_count++;
}
@@ -341,11 +414,13 @@ static void mark_table_blocks(ext2_filsys fs)
/*
* Mark the blocks used for the inode table
*/
- if (!ext2fs_bg_flags_test(fs, i, EXT2_BG_INODE_UNINIT) &&
+ if ((output_is_blk ||
+ !ext2fs_bg_flags_test(fs, i, EXT2_BG_INODE_UNINIT)) &&
ext2fs_inode_table_loc(fs, i)) {
unsigned int end = (unsigned) fs->inode_blocks_per_group;
/* skip unused blocks */
- if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ if (!output_is_blk &&
+ EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM))
end -= (ext2fs_bg_itable_unused(fs, i) /
EXT2_INODES_PER_BLOCK(fs->super));
@@ -387,6 +462,8 @@ static int check_zero_block(char *buf, int blocksize)
char *cp = buf;
int left = blocksize;
+ if (output_is_blk)
+ return 0;
while (left > 0) {
if (*cp++)
return 0;
@@ -395,20 +472,7 @@ static int check_zero_block(char *buf, int blocksize)
return 1;
}
-static void write_block(int fd, char *buf, int sparse_offset,
- int blocksize, blk64_t block)
-{
- ext2_loff_t ret = 0;
-
- if (sparse_offset)
- ret = ext2fs_llseek(fd, sparse_offset, SEEK_CUR);
-
- if (ret < 0)
- lseek_error_and_exit(errno);
- generic_write(fd, buf, blocksize, block);
-}
-
-int name_id[256];
+static int name_id[256];
#define EXT4_MAX_REC_LEN ((1<<16)-1)
@@ -435,9 +499,9 @@ static void scramble_dir_block(ext2_filsys fs, blk64_t blk, char *buf)
#endif
if (rec_len < 8 || (rec_len % 4) ||
(p+rec_len > end)) {
- printf("Corrupt directory block %lu: "
- "bad rec_len (%d)\n", (unsigned long) blk,
- rec_len);
+ printf(_("Corrupt directory block %llu: "
+ "bad rec_len (%d)\n"),
+ (unsigned long long) blk, rec_len);
rec_len = end - p;
(void) ext2fs_set_rec_len(fs, rec_len,
(struct ext2_dir_entry *) dirent);
@@ -446,10 +510,10 @@ static void scramble_dir_block(ext2_filsys fs, blk64_t blk, char *buf)
#endif
continue;
}
- if (dirent->name_len + 8 > rec_len) {
- printf("Corrupt directory block %lu: "
- "bad name_len (%d)\n", (unsigned long) blk,
- dirent->name_len);
+ if (dirent->name_len + 8U > rec_len) {
+ printf(_("Corrupt directory block %llu: "
+ "bad name_len (%d)\n"),
+ (unsigned long long) blk, dirent->name_len);
dirent->name_len = rec_len - 8;
continue;
}
@@ -474,78 +538,221 @@ static void scramble_dir_block(ext2_filsys fs, blk64_t blk, char *buf)
}
}
-static void output_meta_data_blocks(ext2_filsys fs, int fd)
+static char got_sigint;
+
+static void sigint_handler(int unused EXT2FS_ATTR((unused)))
+{
+ got_sigint = 1;
+ signal (SIGINT, SIG_DFL);
+}
+
+#define calc_percent(a, b) ((int) ((100.0 * (((float) (a)) / \
+ ((float) (b)))) + 0.5))
+#define calc_rate(t, b, d) (((float)(t) / ((1024 * 1024) / (b))) / (d))
+
+static int print_progress(blk64_t num, blk64_t total)
+{
+ return fprintf(stderr, _("%llu / %llu blocks (%d%%)"), num, total,
+ calc_percent(num, total));
+}
+
+static void output_meta_data_blocks(ext2_filsys fs, int fd, int flags)
{
errcode_t retval;
blk64_t blk;
char *buf, *zero_buf;
int sparse = 0;
+ blk64_t start = 0;
+ blk64_t distance = 0;
+ blk64_t end = ext2fs_blocks_count(fs->super);
+ time_t last_update = 0;
+ time_t start_time = 0;
+ blk64_t total_written = 0;
+ int bscount = 0;
retval = ext2fs_get_mem(fs->blocksize, &buf);
if (retval) {
- com_err(program_name, retval, "while allocating buffer");
+ com_err(program_name, retval, "%s",
+ _("while allocating buffer"));
exit(1);
}
retval = ext2fs_get_memzero(fs->blocksize, &zero_buf);
if (retval) {
- com_err(program_name, retval, "while allocating buffer");
+ com_err(program_name, retval, "%s",
+ _("while allocating buffer"));
exit(1);
}
- for (blk = 0; blk < ext2fs_blocks_count(fs->super); blk++) {
+ if (show_progress) {
+ fprintf(stderr, "%s", _("Copying "));
+ bscount = print_progress(total_written, meta_blocks_count);
+ fflush(stderr);
+ last_update = time(NULL);
+ start_time = time(NULL);
+ }
+ /* when doing an in place move to the right, you can't start
+ at the beginning or you will overwrite data, so instead
+ divide the fs up into distance size chunks and write them
+ in reverse. */
+ if (move_mode && dest_offset > source_offset) {
+ distance = (dest_offset - source_offset) / fs->blocksize;
+ if (distance < ext2fs_blocks_count(fs->super))
+ start = ext2fs_blocks_count(fs->super) - distance;
+ }
+ if (move_mode)
+ signal (SIGINT, sigint_handler);
+more_blocks:
+ if (distance)
+ seek_set(fd, (start * fs->blocksize) + dest_offset);
+ for (blk = start; blk < end; blk++) {
+ if (got_sigint) {
+ if (distance) {
+ /* moving to the right */
+ if (distance >= ext2fs_blocks_count(fs->super)||
+ start == ext2fs_blocks_count(fs->super) -
+ distance)
+ kill(getpid(), SIGINT);
+ } else {
+ /* moving to the left */
+ if (blk < (source_offset - dest_offset) /
+ fs->blocksize)
+ kill(getpid(), SIGINT);
+ }
+ if (show_progress)
+ fputc('\r', stderr);
+ fprintf(stderr, "%s",
+ _("Stopping now will destroy the filesystem, "
+ "interrupt again if you are sure\n"));
+ if (show_progress) {
+ fprintf(stderr, "%s", _("Copying "));
+ bscount = print_progress(total_written,
+ meta_blocks_count);
+ fflush(stderr);
+ }
+
+ got_sigint = 0;
+ }
+ if (show_progress && last_update != time(NULL)) {
+ time_t duration;
+ last_update = time(NULL);
+ while (bscount--)
+ fputc('\b', stderr);
+ bscount = print_progress(total_written,
+ meta_blocks_count);
+ duration = time(NULL) - start_time;
+ if (duration > 5 && total_written) {
+ time_t est = (duration * meta_blocks_count /
+ total_written) - duration;
+ char buff[30];
+ strftime(buff, 30, "%T", gmtime(&est));
+ bscount +=
+ fprintf(stderr,
+ _(" %s remaining at %.2f MB/s"),
+ buff, calc_rate(total_written,
+ fs->blocksize,
+ duration));
+ }
+ fflush (stderr);
+ }
if ((blk >= fs->super->s_first_data_block) &&
ext2fs_test_block_bitmap2(meta_block_map, blk)) {
retval = io_channel_read_blk64(fs->io, blk, 1, buf);
if (retval) {
com_err(program_name, retval,
- "error reading block %llu", blk);
+ _("error reading block %llu"), blk);
}
+ total_written++;
if (scramble_block_map &&
ext2fs_test_block_bitmap2(scramble_block_map, blk))
scramble_dir_block(fs, blk, buf);
- if ((fd != 1) && check_zero_block(buf, fs->blocksize))
+ if ((flags & E2IMAGE_CHECK_ZERO_FLAG) &&
+ check_zero_block(buf, fs->blocksize))
goto sparse_write;
- write_block(fd, buf, sparse, fs->blocksize, blk);
+ if (sparse)
+ seek_relative(fd, sparse);
sparse = 0;
+ if (check_block(fd, buf, check_buf, fs->blocksize)) {
+ seek_relative(fd, fs->blocksize);
+ skipped_blocks++;
+ } else
+ generic_write(fd, buf, fs->blocksize, blk);
} else {
sparse_write:
if (fd == 1) {
- write_block(fd, zero_buf, 0,
- fs->blocksize, blk);
+ if (!nop_flag)
+ generic_write(fd, zero_buf,
+ fs->blocksize, blk);
continue;
}
sparse += fs->blocksize;
if (sparse > 1024*1024) {
- write_block(fd, 0, 1024*1024, 0, 0);
+ seek_relative(fd, 1024*1024);
sparse -= 1024*1024;
}
}
}
+ if (distance && start) {
+ if (start < distance) {
+ end = start;
+ start = 0;
+ } else {
+ end -= distance;
+ start -= distance;
+ if (end < distance) {
+ /* past overlap, do rest in one go */
+ end = start;
+ start = 0;
+ }
+ }
+ sparse = 0;
+ goto more_blocks;
+ }
+ signal (SIGINT, SIG_DFL);
+ if (show_progress) {
+ time_t duration = time(NULL) - start_time;
+ char buff[30];
+ fputc('\r', stderr);
+ strftime(buff, 30, "%T", gmtime(&duration));
+ fprintf(stderr, _("Copied %llu / %llu blocks (%d%%) in %s "),
+ total_written, meta_blocks_count,
+ calc_percent(total_written, meta_blocks_count), buff);
+ if (duration)
+ fprintf(stderr, _("at %.2f MB/s"),
+ calc_rate(total_written, fs->blocksize, duration));
+ fputs(" \n", stderr);
+ }
#ifdef HAVE_FTRUNCATE64
if (sparse) {
- ext2_loff_t offset = ext2fs_llseek(fd, sparse, SEEK_CUR);
+ ext2_loff_t offset;
+ if (distance)
+ offset = seek_set(fd,
+ fs->blocksize * ext2fs_blocks_count(fs->super) + dest_offset);
+ else
+ offset = seek_relative(fd, sparse);
- if (offset < 0)
- lseek_error_and_exit(errno);
- if (ftruncate64(fd, offset) < 0)
- write_block(fd, zero_buf, -1, 1, -1);
+ if (ftruncate64(fd, offset) < 0) {
+ seek_relative(fd, -1);
+ generic_write(fd, zero_buf, 1, NO_BLK);
+ }
}
#else
- if (sparse)
- write_block(fd, zero_buf, sparse-1, 1, -1);
+ if (sparse && !distance) {
+ seek_relative(fd, sparse-1);
+ generic_write(fd, zero_buf, 1, NO_BLK);
+ }
#endif
ext2fs_free_mem(&zero_buf);
ext2fs_free_mem(&buf);
}
-static void init_l1_table(struct ext2_super_block *sb,
- struct ext2_qcow2_image *image)
+static void init_l1_table(struct ext2_qcow2_image *image)
{
__u64 *l1_table;
errcode_t ret;
ret = ext2fs_get_arrayzero(image->l1_size, sizeof(__u64), &l1_table);
if (ret) {
- com_err(program_name, ret, "while allocating l1 table");
+ com_err(program_name, ret, "%s",
+ _("while allocating l1 table"));
exit(1);
}
@@ -590,7 +797,7 @@ static void init_l2_cache(struct ext2_qcow2_image *image)
return;
alloc_err:
- com_err(program_name, ret, "while allocating l2 cache");
+ com_err(program_name, ret, "%s", _("while allocating l2 cache"));
exit(1);
}
@@ -613,9 +820,10 @@ again:
}
if (cache->free != cache->count) {
- fprintf(stderr, "Warning: There are still tables in the "
- "cache while putting the cache, data will "
- "be lost so the image may not be valid.\n");
+ fprintf(stderr, "%s", _("Warning: There are still tables in "
+ "the cache while putting the cache, "
+ "data will be lost so the image may "
+ "not be valid.\n"));
table = cache->used_head;
cache->used_head = NULL;
goto again;
@@ -724,7 +932,7 @@ static int initialize_qcow2_image(int fd, ext2_filsys fs,
image->hdr = header;
/* Initialize l1 and l2 tables */
- init_l1_table(sb, image);
+ init_l1_table(image);
init_l2_cache(image);
return 0;
@@ -787,25 +995,23 @@ static void flush_l2_cache(struct ext2_qcow2_image *image)
int fd = image->fd;
/* Store current position */
- if ((offset = ext2fs_llseek(fd, 0, SEEK_CUR)) < 0)
- lseek_error_and_exit(errno);
+ offset = seek_relative(fd, 0);
assert(table);
while (cache->free < cache->count) {
if (seek != table->offset) {
- if (ext2fs_llseek(fd, table->offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, table->offset);
seek = table->offset;
}
- generic_write(fd, (char *)table->data, image->cluster_size , 0);
+ generic_write(fd, (char *)table->data, image->cluster_size,
+ NO_BLK);
put_used_table(image, &table);
seek += image->cluster_size;
}
/* Restore previous position */
- if (ext2fs_llseek(fd, offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, offset);
}
/**
@@ -882,11 +1088,10 @@ static int update_refcount(int fd, struct ext2_qcow2_image *img,
*/
if (table_index != ref->refcount_table_index) {
- if (ext2fs_llseek(fd, ref->refcount_block_offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, ref->refcount_block_offset);
generic_write(fd, (char *)ref->refcount_block,
- img->cluster_size, 0);
+ img->cluster_size, NO_BLK);
memset(ref->refcount_block, 0, img->cluster_size);
ref->refcount_table[ref->refcount_table_index] =
@@ -915,14 +1120,13 @@ static int sync_refcount(int fd, struct ext2_qcow2_image *img)
ref->refcount_table[ref->refcount_table_index] =
ext2fs_cpu_to_be64(ref->refcount_block_offset);
- if (ext2fs_llseek(fd, ref->refcount_table_offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, ref->refcount_table_offset);
generic_write(fd, (char *)ref->refcount_table,
- ref->refcount_table_clusters << img->cluster_bits, 0);
+ ref->refcount_table_clusters << img->cluster_bits, NO_BLK);
- if (ext2fs_llseek(fd, ref->refcount_block_offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
- generic_write(fd, (char *)ref->refcount_block, img->cluster_size, 0);
+ seek_set(fd, ref->refcount_block_offset);
+ generic_write(fd, (char *)ref->refcount_block, img->cluster_size,
+ NO_BLK);
return 0;
}
@@ -937,15 +1141,15 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
/* allocate struct ext2_qcow2_image */
retval = ext2fs_get_mem(sizeof(struct ext2_qcow2_image), &img);
if (retval) {
- com_err(program_name, retval,
- "while allocating ext2_qcow2_image");
+ com_err(program_name, retval, "%s",
+ _("while allocating ext2_qcow2_image"));
exit(1);
}
retval = initialize_qcow2_image(fd, fs, img);
if (retval) {
- com_err(program_name, retval,
- "while initializing ext2_qcow2_image");
+ com_err(program_name, retval, "%s",
+ _("while initializing ext2_qcow2_image"));
exit(1);
}
header_size = align_offset(sizeof(struct ext2_qcow2_hdr),
@@ -954,8 +1158,7 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
/* Refcount all qcow2 related metadata up to refcount_block_offset */
end = img->refcount.refcount_block_offset;
- if (ext2fs_llseek(fd, end, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, end);
blk = end + img->cluster_size;
for (offset = 0; offset <= end; offset += img->cluster_size) {
if (update_refcount(fd, img, offset, blk)) {
@@ -967,12 +1170,12 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
end += img->cluster_size;
}
}
- if (ext2fs_llseek(fd, offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, offset);
retval = ext2fs_get_mem(fs->blocksize, &buf);
if (retval) {
- com_err(program_name, retval, "while allocating buffer");
+ com_err(program_name, retval, "%s",
+ _("while allocating buffer"));
exit(1);
}
/* Write qcow2 data blocks */
@@ -982,7 +1185,7 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
retval = io_channel_read_blk64(fs->io, blk, 1, buf);
if (retval) {
com_err(program_name, retval,
- "error reading block %llu", blk);
+ _("error reading block %llu"), blk);
continue;
}
if (scramble_block_map &&
@@ -994,8 +1197,7 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
if (update_refcount(fd, img, offset, offset)) {
/* Make space for another refcount block */
offset += img->cluster_size;
- if (ext2fs_llseek(fd, offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, offset);
/*
* We have created the new refcount block, this
* means that we need to refcount it as well.
@@ -1005,14 +1207,15 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
* block should not be created!
*/
if (update_refcount(fd, img, offset, offset)) {
- fprintf(stderr, "Programming error: "
- "multiple sequential refcount "
- "blocks created!\n");
+ fprintf(stderr, "%s",
+ _("Programming error: multiple "
+ "sequential refcount blocks "
+ "created!\n"));
exit(1);
}
}
- generic_write(fd, buf, fs->blocksize, 0);
+ generic_write(fd, buf, fs->blocksize, blk);
if (add_l2_item(img, blk, offset,
offset + img->cluster_size)) {
@@ -1022,15 +1225,14 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
offset += img->cluster_size;
if (update_refcount(fd, img, offset,
offset)) {
- fprintf(stderr,
- "Programming error: multiple sequential refcount "
- "blocks created!\n");
+ fprintf(stderr, "%s",
+ _("Programming error: multiple sequential refcount "
+ "blocks created!\n"));
exit(1);
}
}
offset += img->cluster_size;
- if (ext2fs_llseek(fd, offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, offset);
continue;
}
@@ -1042,10 +1244,9 @@ static void output_qcow2_meta_data_blocks(ext2_filsys fs, int fd)
sync_refcount(fd, img);
/* Write l1_table*/
- if (ext2fs_llseek(fd, img->l1_offset, SEEK_SET) < 0)
- lseek_error_and_exit(errno);
+ seek_set(fd, img->l1_offset);
size = img->l1_size * sizeof(__u64);
- generic_write(fd, (char *)img->l1_table, size, 0);
+ generic_write(fd, (char *)img->l1_table, size, NO_BLK);
ext2fs_free_mem(&buf);
free_qcow2_image(img);
@@ -1061,10 +1262,11 @@ static void write_raw_image_file(ext2_filsys fs, int fd, int type, int flags)
char * block_buf;
meta_blocks_count = 0;
- retval = ext2fs_allocate_block_bitmap(fs, "in-use block map",
+ retval = ext2fs_allocate_block_bitmap(fs, _("in-use block map"),
&meta_block_map);
if (retval) {
- com_err(program_name, retval, "while allocating block bitmap");
+ com_err(program_name, retval, "%s",
+ _("while allocating block bitmap"));
exit(1);
}
@@ -1072,23 +1274,27 @@ static void write_raw_image_file(ext2_filsys fs, int fd, int type, int flags)
retval = ext2fs_allocate_block_bitmap(fs, "scramble block map",
&scramble_block_map);
if (retval) {
- com_err(program_name, retval,
- "while allocating scramble block bitmap");
+ com_err(program_name, retval, "%s",
+ _("while allocating scramble block bitmap"));
exit(1);
}
}
mark_table_blocks(fs);
+ if (show_progress)
+ printf("%s", _("Scanning inodes...\n"));
retval = ext2fs_open_inode_scan(fs, 0, &scan);
if (retval) {
- com_err(program_name, retval, _("while opening inode scan"));
+ com_err(program_name, retval, "%s",
+ _("while opening inode scan"));
exit(1);
}
retval = ext2fs_get_mem(fs->blocksize * 3, &block_buf);
if (retval) {
- com_err(program_name, 0, "Can't allocate block buffer");
+ com_err(program_name, 0, "%s",
+ _("Can't allocate block buffer"));
exit(1);
}
@@ -1099,7 +1305,7 @@ static void write_raw_image_file(ext2_filsys fs, int fd, int type, int flags)
if (retval == EXT2_ET_BAD_BLOCK_IN_INODE_TABLE)
continue;
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while getting next inode"));
exit(1);
}
@@ -1127,7 +1333,7 @@ static void write_raw_image_file(ext2_filsys fs, int fd, int type, int flags)
process_dir_block, &pb);
if (retval) {
com_err(program_name, retval,
- "while iterating over inode %u",
+ _("while iterating over inode %u"),
ino);
exit(1);
}
@@ -1135,13 +1341,13 @@ static void write_raw_image_file(ext2_filsys fs, int fd, int type, int flags)
if ((inode.i_flags & EXT4_EXTENTS_FL) ||
inode.i_block[EXT2_IND_BLOCK] ||
inode.i_block[EXT2_DIND_BLOCK] ||
- inode.i_block[EXT2_TIND_BLOCK]) {
+ inode.i_block[EXT2_TIND_BLOCK] || all_data) {
retval = ext2fs_block_iterate3(fs,
ino, BLOCK_FLAG_READ_ONLY, block_buf,
process_file_block, &pb);
if (retval) {
com_err(program_name, retval,
- "while iterating over inode %u", ino);
+ _("while iterating over inode %u"), ino);
exit(1);
}
}
@@ -1152,7 +1358,7 @@ static void write_raw_image_file(ext2_filsys fs, int fd, int type, int flags)
if (type & E2IMAGE_QCOW2)
output_qcow2_meta_data_blocks(fs, fd);
else
- output_meta_data_blocks(fs, fd);
+ output_meta_data_blocks(fs, fd, flags);
ext2fs_free_mem(&block_buf);
ext2fs_close_inode_scan(scan);
@@ -1165,14 +1371,14 @@ static void install_image(char *device, char *image_fn, int type)
{
errcode_t retval;
ext2_filsys fs;
- int open_flag = EXT2_FLAG_IMAGE_FILE;
+ int open_flag = EXT2_FLAG_IMAGE_FILE | EXT2_FLAG_64BITS;
int fd = 0;
io_manager io_ptr;
io_channel io;
if (type) {
- com_err(program_name, 0, "Raw and qcow2 images cannot"
- "be installed");
+ com_err(program_name, 0, "%s",
+ _("Raw and qcow2 images cannot be installed"));
exit(1);
}
@@ -1187,14 +1393,14 @@ static void install_image(char *device, char *image_fn, int type)
retval = ext2fs_open (image_fn, open_flag, 0, 0,
io_ptr, &fs);
if (retval) {
- com_err (program_name, retval, _("while trying to open %s"),
- image_fn);
+ com_err(program_name, retval, _("while trying to open %s"),
+ image_fn);
exit(1);
}
retval = ext2fs_read_bitmaps (fs);
if (retval) {
- com_err(program_name, retval, "error reading bitmaps");
+ com_err(program_name, retval, "%s", _("error reading bitmaps"));
exit(1);
}
@@ -1206,25 +1412,23 @@ static void install_image(char *device, char *image_fn, int type)
retval = io_ptr->open(device, IO_FLAG_RW, &io);
if (retval) {
- com_err(device, 0, "while opening device file");
+ com_err(device, 0, "%s", _("while opening device file"));
exit(1);
}
ext2fs_rewrite_to_io(fs, io);
- if (ext2fs_llseek(fd, fs->image_header->offset_inode, SEEK_SET) < 0) {
- perror("ext2fs_llseek");
- exit(1);
- }
+ seek_set(fd, fs->image_header->offset_inode);
retval = ext2fs_image_inode_read(fs, fd, 0);
if (retval) {
- com_err(image_fn, 0, "while restoring the image table");
+ com_err(image_fn, 0, "%s",
+ _("while restoring the image table"));
exit(1);
}
+ close(fd);
ext2fs_close (fs);
- exit (0);
}
static struct ext2_qcow2_hdr *check_qcow2_image(int *fd, char *name)
@@ -1242,14 +1446,18 @@ int main (int argc, char ** argv)
int c;
errcode_t retval;
ext2_filsys fs;
- char *image_fn;
+ char *image_fn, offset_opt[64];
struct ext2_qcow2_hdr *header = NULL;
int open_flag = EXT2_FLAG_64BITS;
int img_type = 0;
int flags = 0;
+ int mount_flags = 0;
int qcow2_fd = 0;
int fd = 0;
int ret = 0;
+ int ignore_rw_mount = 0;
+ int check = 0;
+ struct stat st;
#ifdef ENABLE_NLS
setlocale(LC_MESSAGES, "");
@@ -1263,7 +1471,7 @@ int main (int argc, char ** argv)
if (argc && *argv)
program_name = *argv;
add_error_table(&et_ext2_error_table);
- while ((c = getopt(argc, argv, "rsIQ")) != EOF)
+ while ((c = getopt(argc, argv, "nrsIQafo:O:pc")) != EOF)
switch (c) {
case 'I':
flags |= E2IMAGE_INSTALL_FLAG;
@@ -1281,13 +1489,77 @@ int main (int argc, char ** argv)
case 's':
flags |= E2IMAGE_SCRAMBLE_FLAG;
break;
+ case 'a':
+ all_data = 1;
+ break;
+ case 'f':
+ ignore_rw_mount = 1;
+ break;
+ case 'n':
+ nop_flag = 1;
+ break;
+ case 'o':
+ source_offset = strtoull(optarg, NULL, 0);
+ break;
+ case 'O':
+ dest_offset = strtoull(optarg, NULL, 0);
+ break;
+ case 'p':
+ show_progress = 1;
+ break;
+ case 'c':
+ check = 1;
+ break;
default:
usage();
}
- if (optind != argc - 2 )
+ if (optind == argc - 1 &&
+ (source_offset || dest_offset))
+ move_mode = 1;
+ else if (optind != argc - 2 )
usage();
+
+ if (all_data && !img_type) {
+ com_err(program_name, 0, "%s", _("-a option can only be used "
+ "with raw or QCOW2 images."));
+ exit(1);
+ }
+ if ((source_offset || dest_offset) && img_type != E2IMAGE_RAW) {
+ com_err(program_name, 0, "%s",
+ _("Offsets are only allowed with raw images."));
+ exit(1);
+ }
+ if (move_mode && img_type != E2IMAGE_RAW) {
+ com_err(program_name, 0, "%s",
+ _("Move mode is only allowed with raw images."));
+ exit(1);
+ }
+ if (move_mode && !all_data) {
+ com_err(program_name, 0, "%s",
+ _("Move mode requires all data mode."));
+ exit(1);
+ }
device_name = argv[optind];
- image_fn = argv[optind+1];
+ if (move_mode)
+ image_fn = device_name;
+ else image_fn = argv[optind+1];
+
+ retval = ext2fs_check_if_mounted(device_name, &mount_flags);
+ if (retval) {
+ com_err(program_name, retval, "%s", _("checking if mounted"));
+ exit(1);
+ }
+
+ if (img_type && !ignore_rw_mount &&
+ (mount_flags & EXT2_MF_MOUNTED) &&
+ !(mount_flags & EXT2_MF_READONLY)) {
+ fprintf(stderr, "%s", _("\nRunning e2image on a R/W mounted "
+ "filesystem can result in an\n"
+ "inconsistent image which will not be useful "
+ "for debugging purposes.\n"
+ "Use -f option if you really want to do that.\n"));
+ exit(1);
+ }
if (flags & E2IMAGE_INSTALL_FLAG) {
install_image(device_name, image_fn, img_type);
@@ -1301,8 +1573,8 @@ int main (int argc, char ** argv)
goto skip_device;
}
}
-
- retval = ext2fs_open (device_name, open_flag, 0, 0,
+ sprintf(offset_opt, "offset=%llu", source_offset);
+ retval = ext2fs_open2(device_name, offset_opt, open_flag, 0, 0,
unix_io_manager, &fs);
if (retval) {
com_err (program_name, retval, _("while trying to open %s"),
@@ -1315,44 +1587,86 @@ skip_device:
if (strcmp(image_fn, "-") == 0)
fd = 1;
else {
- fd = ext2fs_open_file(image_fn, O_CREAT|O_TRUNC|O_WRONLY, 0600);
+ int o_flags = O_CREAT|O_RDWR;
+
+ if (img_type != E2IMAGE_RAW)
+ o_flags |= O_TRUNC;
+ if (access(image_fn, F_OK) != 0)
+ flags |= E2IMAGE_CHECK_ZERO_FLAG;
+ fd = ext2fs_open_file(image_fn, o_flags, 0600);
if (fd < 0) {
com_err(program_name, errno,
- _("while trying to open %s"), argv[optind+1]);
+ _("while trying to open %s"), image_fn);
exit(1);
}
}
+ if (dest_offset)
+ seek_set(fd, dest_offset);
if ((img_type & E2IMAGE_QCOW2) && (fd == 1)) {
- com_err(program_name, 0, "QCOW2 image can not be written to "
- "the stdout!\n");
+ com_err(program_name, 0, "%s",
+ _("QCOW2 image can not be written to the stdout!\n"));
exit(1);
}
-
+ if (fd != 1) {
+ if (fstat(fd, &st)) {
+ com_err(program_name, 0, "%s",
+ _("Can not stat output\n"));
+ exit(1);
+ }
+ if (S_ISBLK(st.st_mode))
+ output_is_blk = 1;
+ }
if (flags & E2IMAGE_IS_QCOW2_FLAG) {
ret = qcow2_write_raw_image(qcow2_fd, fd, header);
if (ret) {
if (ret == -QCOW_COMPRESSED)
- fprintf(stderr, "Image (%s) is compressed\n",
+ fprintf(stderr, _("Image (%s) is compressed\n"),
image_fn);
if (ret == -QCOW_ENCRYPTED)
- fprintf(stderr, "Image (%s) is encrypted\n",
+ fprintf(stderr, _("Image (%s) is encrypted\n"),
image_fn);
com_err(program_name, ret,
_("while trying to convert qcow2 image"
- " (%s) into raw image (%s)"),
+ " (%s) into raw image (%s)"),
device_name, image_fn);
}
goto out;
}
-
+ if (check) {
+ if (img_type != E2IMAGE_RAW) {
+ fprintf(stderr, "%s", _("The -c option only supported "
+ "in raw mode\n"));
+ exit(1);
+ }
+ if (fd == 1) {
+ fprintf(stderr, "%s", _("The -c option not supported "
+ "when writing to stdout\n"));
+ exit(1);
+ }
+ retval = ext2fs_get_mem(fs->blocksize, &check_buf);
+ if (retval) {
+ com_err(program_name, retval, "%s",
+ _("while allocating check_buf"));
+ exit(1);
+ }
+ }
+ if (show_progress && (img_type != E2IMAGE_RAW)) {
+ fprintf(stderr, "%s",
+ _("The -p option only supported in raw mode\n"));
+ exit(1);
+ }
if (img_type)
write_raw_image_file(fs, fd, img_type, flags);
else
write_image_file(fs, fd);
ext2fs_close (fs);
+ if (check)
+ printf(_("%d blocks already contained the data to be copied\n"),
+ skipped_blocks);
+
out:
if (header)
free(header);
diff --git a/misc/e2initrd_helper.c b/misc/e2initrd_helper.c
index b2f39bc4..765716d6 100644
--- a/misc/e2initrd_helper.c
+++ b/misc/e2initrd_helper.c
@@ -39,8 +39,8 @@ extern char *optarg;
#include "../version.h"
#include "nls-enable.h"
-const char * program_name = "get_fstab";
-char * device_name;
+static const char * program_name = "e2initrd_helper";
+static char * device_name;
static int open_flag;
static int root_type;
static blkid_cache cache = NULL;
@@ -327,7 +327,7 @@ static void PRS(int argc, char **argv)
usage();
device_name = blkid_get_devname(NULL, argv[optind], NULL);
if (!device_name) {
- com_err("tune2fs", 0, _("Unable to resolve '%s'"),
+ com_err(program_name, 0, _("Unable to resolve '%s'"),
argv[optind]);
exit(1);
}
@@ -342,6 +342,10 @@ static void get_root_type(ext2_filsys fs)
int ret;
retval = get_file(fs, "/etc/fstab", &file);
+ if (retval) {
+ com_err(program_name, retval, "couldn't open /etc/fstab");
+ exit(1);
+ }
while (!mem_file_eof(&file)) {
buf = get_line(&file);
diff --git a/misc/e2undo.c b/misc/e2undo.c
index b1cb7509..a43c26fd 100644
--- a/misc/e2undo.c
+++ b/misc/e2undo.c
@@ -24,11 +24,11 @@
#include "ext2fs/ext2fs.h"
#include "nls-enable.h"
-unsigned char mtime_key[] = "filesystem MTIME";
-unsigned char uuid_key[] = "filesystem UUID";
-unsigned char blksize_key[] = "filesystem BLKSIZE";
+static unsigned char mtime_key[] = "filesystem MTIME";
+static unsigned char uuid_key[] = "filesystem UUID";
+static unsigned char blksize_key[] = "filesystem BLKSIZE";
-char *prg_name;
+static char *prg_name;
static void usage(void)
{
@@ -48,8 +48,8 @@ static int check_filesystem(TDB_CONTEXT *tdb, io_channel channel)
io_channel_set_blksize(channel, SUPERBLOCK_OFFSET);
retval = io_channel_read_blk64(channel, 1, -SUPERBLOCK_SIZE, &super);
if (retval) {
- com_err(prg_name,
- retval, _("Failed to read the file system data \n"));
+ com_err(prg_name, retval,
+ "%s", _("Failed to read the file system data \n"));
return retval;
}
@@ -85,7 +85,7 @@ static int check_filesystem(TDB_CONTEXT *tdb, io_channel channel)
}
memcpy(s_uuid, tdb_data.dptr, sizeof(s_uuid));
if (memcmp(s_uuid, super.s_uuid, sizeof(s_uuid))) {
- com_err(prg_name, 0,
+ com_err(prg_name, 0, "%s",
_("The file system UUID didn't match \n"));
return -1;
}
@@ -172,8 +172,8 @@ int main(int argc, char *argv[])
}
if (mount_flags & EXT2_MF_MOUNTED) {
- com_err(prg_name, retval, _("e2undo should only be run on "
- "unmounted file system\n"));
+ com_err(prg_name, retval, "%s", _("e2undo should only be run "
+ "on unmounted file system\n"));
exit(1);
}
diff --git a/misc/e4defrag.c b/misc/e4defrag.c
index 6491edd6..0db5e4bd 100644
--- a/misc/e4defrag.c
+++ b/misc/e4defrag.c
@@ -34,13 +34,11 @@
#include <unistd.h>
#include <ext2fs/ext2_types.h>
#include <ext2fs/ext2fs.h>
-#include <linux/fs.h>
#include <sys/ioctl.h>
#include <ext2fs/fiemap.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/statfs.h>
-#include <sys/syscall.h>
#include <sys/vfs.h>
/* A relatively new ioctl interface ... */
@@ -164,95 +162,44 @@ struct frag_statistic_ino {
char msg_buffer[PATH_MAX + 1]; /* pathname of the file */
};
-char lost_found_dir[PATH_MAX + 1];
-int block_size;
-int extents_before_defrag;
-int extents_after_defrag;
-int mode_flag;
-unsigned int current_uid;
-unsigned int defraged_file_count;
-unsigned int frag_files_before_defrag;
-unsigned int frag_files_after_defrag;
-unsigned int regular_count;
-unsigned int succeed_cnt;
-unsigned int total_count;
-__u8 log_groups_per_flex;
-__u32 blocks_per_group;
-__u32 feature_incompat;
-ext4_fsblk_t files_block_count;
-struct frag_statistic_ino frag_rank[SHOW_FRAG_FILES];
-
-
-/* Local definitions of some syscalls glibc may not yet have */
-
-#ifndef HAVE_POSIX_FADVISE
-#warning Using locally defined posix_fadvise interface.
-
-#ifndef __NR_fadvise64_64
-#error Your kernel headers dont define __NR_fadvise64_64
-#endif
-
-/*
- * fadvise() - Give advice about file access.
- *
- * @fd: defrag target file's descriptor.
- * @offset: file offset.
- * @len: area length.
- * @advise: process flag.
- */
-static int posix_fadvise(int fd, loff_t offset, size_t len, int advise)
-{
- return syscall(__NR_fadvise64_64, fd, offset, len, advise);
-}
-#endif /* ! HAVE_FADVISE64_64 */
-
-#ifndef HAVE_SYNC_FILE_RANGE
-#warning Using locally defined sync_file_range interface.
+static char lost_found_dir[PATH_MAX + 1];
+static int block_size;
+static int extents_before_defrag;
+static int extents_after_defrag;
+static int mode_flag;
+static unsigned int current_uid;
+static unsigned int defraged_file_count;
+static unsigned int frag_files_before_defrag;
+static unsigned int frag_files_after_defrag;
+static unsigned int regular_count;
+static unsigned int succeed_cnt;
+static unsigned int total_count;
+static __u8 log_groups_per_flex;
+static __u32 blocks_per_group;
+static __u32 feature_incompat;
+static ext4_fsblk_t files_block_count;
+static struct frag_statistic_ino frag_rank[SHOW_FRAG_FILES];
-#ifndef __NR_sync_file_range
-#ifndef __NR_sync_file_range2 /* ppc */
-#error Your kernel headers dont define __NR_sync_file_range
-#endif
-#endif
/*
- * sync_file_range() - Sync file region.
- *
- * @fd: defrag target file's descriptor.
- * @offset: file offset.
- * @length: area length.
- * @flag: process flag.
+ * We prefer posix_fadvise64 when available, as it allows 64bit offset on
+ * 32bit systems
*/
-int sync_file_range(int fd, loff_t offset, loff_t length, unsigned int flag)
-{
-#ifdef __NR_sync_file_range
- return syscall(__NR_sync_file_range, fd, offset, length, flag);
-#else
- return syscall(__NR_sync_file_range2, fd, flag, offset, length);
+#if defined(HAVE_POSIX_FADVISE64)
+#define posix_fadvise posix_fadvise64
+#elif defined(HAVE_FADVISE64)
+#define posix_fadvise fadvise64
+#elif !defined(HAVE_POSIX_FADVISE)
+#error posix_fadvise not available!
#endif
-}
+
+#ifndef HAVE_SYNC_FILE_RANGE
+#error sync_file_range not available!
#endif /* ! HAVE_SYNC_FILE_RANGE */
#ifndef HAVE_FALLOCATE64
-#warning Using locally defined fallocate syscall interface.
-
-#ifndef __NR_fallocate
-#error Your kernel headers dont define __NR_fallocate
-#endif
-
-/*
- * fallocate64() - Manipulate file space.
- *
- * @fd: defrag target file's descriptor.
- * @mode: process flag.
- * @offset: file offset.
- * @len: file size.
- */
-static int fallocate64(int fd, int mode, loff_t offset, loff_t len)
-{
- return syscall(__NR_fallocate, fd, mode, offset, len);
-}
-#endif /* ! HAVE_FALLOCATE */
+#error fallocate64 not available!
+#endif /* ! HAVE_FALLOCATE64 */
/*
* get_mount_point() - Get device's mount point.
@@ -266,8 +213,15 @@ static int get_mount_point(const char *devname, char *mount_point,
{
/* Refer to /etc/mtab */
const char *mtab = MOUNTED;
- FILE *fp = NULL;
+ FILE *fp = NULL;
struct mntent *mnt = NULL;
+ struct stat64 sb;
+
+ if (stat64(devname, &sb) < 0) {
+ perror(NGMSG_FILE_INFO);
+ PRINT_FILE_NAME(devname);
+ return -1;
+ }
fp = setmntent(mtab, "r");
if (fp == NULL) {
@@ -276,7 +230,15 @@ static int get_mount_point(const char *devname, char *mount_point,
}
while ((mnt = getmntent(fp)) != NULL) {
- if (strcmp(devname, mnt->mnt_fsname) != 0)
+ struct stat64 ms;
+
+ /*
+ * To handle device symlinks, we see if the
+ * device number matches, not the name
+ */
+ if (stat64(mnt->mnt_fsname, &ms) < 0)
+ continue;
+ if (sb.st_rdev != ms.st_rdev)
continue;
endmntent(fp);
@@ -359,7 +321,7 @@ static int is_ext4(const char *file, char *devname)
}
endmntent(fp);
- if (strcmp(mnt_type, FS_EXT4) == 0) {
+ if (mnt_type && strcmp(mnt_type, FS_EXT4) == 0) {
FREE(mnt_type);
return 0;
} else {
@@ -458,6 +420,9 @@ static int defrag_fadvise(int fd, struct move_extent defrag_data,
unsigned int i;
loff_t offset;
+ if (pagesize < 1)
+ return -1;
+
offset = (loff_t)defrag_data.orig_start * block_size;
offset = (offset / pagesize) * pagesize;
@@ -1770,6 +1735,15 @@ int main(int argc, char *argv[])
continue;
}
+ /* Handle i.e. lvm device symlinks */
+ if (S_ISLNK(buf.st_mode)) {
+ struct stat64 buf2;
+
+ if (stat64(argv[i], &buf2) == 0 &&
+ S_ISBLK(buf2.st_mode))
+ buf = buf2;
+ }
+
if (S_ISBLK(buf.st_mode)) {
/* Block device */
strncpy(dev_name, argv[i], strnlen(argv[i], PATH_MAX));
@@ -1820,13 +1794,13 @@ int main(int argc, char *argv[])
if (current_uid == ROOT_UID) {
/* Get super block info */
- ret = ext2fs_open(dev_name, 0, 0, block_size,
- unix_io_manager, &fs);
+ ret = ext2fs_open(dev_name, EXT2_FLAG_64BITS, 0,
+ block_size, unix_io_manager, &fs);
if (ret) {
- if (mode_flag & DETAIL) {
- perror("Can't get super block info");
- PRINT_FILE_NAME(argv[i]);
- }
+ if (mode_flag & DETAIL)
+ com_err(argv[1], ret,
+ "while trying to open file system: %s",
+ dev_name);
continue;
}
@@ -1838,12 +1812,13 @@ int main(int argc, char *argv[])
}
switch (arg_type) {
+ int mount_dir_len = 0;
+
case DIRNAME:
if (!(mode_flag & STATISTIC))
printf("ext4 defragmentation "
"for directory(%s)\n", argv[i]);
- int mount_dir_len = 0;
mount_dir_len = strnlen(lost_found_dir, PATH_MAX);
strncat(lost_found_dir, "/lost+found",
diff --git a/misc/ext4.5.in b/misc/ext4.5.in
new file mode 100644
index 00000000..134c19f9
--- /dev/null
+++ b/misc/ext4.5.in
@@ -0,0 +1,260 @@
+.\" -*- nroff -*-
+.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved.
+.\" This file may be copied under the terms of the GNU Public License.
+.\"
+.TH EXT4 5 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
+.SH NAME
+ext2 \- the second extended file system
+.br
+ext2 \- the third extended file system
+.br
+ext4 \- the fourth extended file system
+.SH DESCRIPTION
+The second, third, and fourth extended file systems, or ext2, ext3, and
+ext4 as they are commonly known, are Linux file systems that have
+historically been the default file system for many Linux distributions.
+They are general purpose file systems that have been designed for
+extensibility and backwards compatibility. In particular, file systems
+previously intended for use with the ext2 and ext3 file systems can be
+mounted using the ext4 file system driver, and indeed in many modern
+Linux distributions, the ext4 file system driver has been configured
+handle mount requests for ext2 and ext3 file systems.
+.SH FILE SYSTEM FEATURES
+A file system formated for ext2, ext3, or ext4 can be have some
+collection of the follow file system feature flags enabled. Some of
+these features are not supported by all implementations of the ext2,
+ext3, and ext4 file system drivers, depending on Linux kernel version in
+use. On other operating systems, such as the GNU/HURD or FreeBSD, only
+a very restrictive set of file system features may be supported in their
+implementations of ext2.
+.RS 1.2i
+.TP
+.B 64bit
+.br
+Enables the file system to be larger than 2^32 blocks. This feature is set
+automatically, as needed, but it can be useful to specify this feature
+explicitly if the file system might need to be resized larger than 2^32
+blocks, even if it was smaller than that threshold when it was
+originally created. Note that some older kernels and older versions
+of e2fsprogs will not support file systems with this ext4 feature enabled.
+.TP
+.B bigalloc
+.br
+This ext4 feature enables clustered block allocation, so that the unit of
+allocation is a power of two number of blocks. That is, each bit in the
+what had traditionally been known as the block allocation bitmap now
+indicates whether a cluster is in use or not, where a cluster is by
+default composed of 16 blocks. This feature can decrease the time
+spent on doing block allocation and brings smaller fragmentation, especially
+for large files. The size can be specified using the
+.B \-C option.
+.IP
+.B Warning:
+The bigalloc feature is still under development, and may not be fully
+supported with your kernel or may have various bugs. Please see the web
+page http://ext4.wiki.kernel.org/index.php/Bigalloc for details.
+May clash with delayed allocation (see
+.BR nodelalloc mount option).
+.IP
+This feature requires that the
+.B extent
+features be enabled.
+.TP
+.B dir_index
+.br
+Use hashed b-trees to speed up name lookups in large directories. This
+feature is supported by ext3 and ext4 file systems, and is ignored by
+ext2 file systems.
+.TP
+.B dir_nlink
+.br
+This ext4 feature allows more than 65000 subdirectories per directory.
+.TP
+.B extent
+.br
+This ext4 feature allows the mapping of logical block numbers for a
+particular inode to physical blocks on the storage device to be stored
+using an extent tree, which is a more efficient data structure than the
+traditional indirect block scheme used by the ext2 and ext3 file
+systems. The use of the extent tree decreases metadata block overhead,
+improves file system performance, and decreases the needed to run
+.BR e2fsck (8)
+on the file system.
+(Note: both
+.B extent
+and
+.B extents
+are accepted as valid names for this feature for
+historical/backwards compatibility reasons.)
+.TP
+.B extra_isize
+.br
+This ext4 feature reserves a specific amount of space in each inode for
+extended metadata such as nanosecond timestamps and file creation time,
+even if the current kernel does not current need to reserve this much
+space. Without this feature, the kernel will reserve the amount of
+space for features currently it currently needs, and the rest may be
+consumed by extended attributes.
+
+For this feature to be useful the inode size must be 256 bytes in size
+or larger.
+.TP
+.B ext_attr
+.br
+This feature enables the use of extended attributes. This feature is
+supported by ext2, ext3, and ext4.
+.TP
+.B filetype
+.br
+This feature enables the storage file type information in directory
+entries. This feature is supported by ext2, ext3, and ext4.
+.TP
+.B flex_bg
+.br
+This ext4 feature allows the per-block group metadata (allocation
+bitmaps
+and inode tables)
+to be placed anywhere on the storage media. In addition,
+.B mke2fs
+will place the per-block group metadata together starting at the first
+block group of each "flex_bg group". The size of the flex_bg group
+can be specified using the
+.B \-G
+option.
+.TP
+.B has_journal
+.br
+Create a journal to ensure filesystem consistency even across unclean
+shutdowns. Setting the filesystem feature is equivalent to using the
+.B \-j
+option. This feature is supported by ext3 and ext4, and ignored by the
+ext2 file system driver.
+.TP
+.B huge_file
+.br
+This ext4 feature allows files to be larger than 2 terabytes in size.
+.TP
+.B journal_dev
+.br
+This feature is enabled on the superblock found on an external journal
+device. The block size for the external journal must be the same as the
+file system which uses it.
+.IP
+The external journal device can be used by a file system by specifying
+the
+.B \-J
+.BR device= <external-device>
+option to
+.BR mke2fs (8)
+or
+.BR tune2fs(8).
+.TP
+.B large_file
+.br
+This feature flag is set automatically by modern kernels when a file
+larger than 2 gigabytes is created. Very old kernels could not
+handle large files, so this feature flag was used to prohibit those
+kernels from mounting file systems that they could not understand.
+.\" .TP
+.\" .B metadata_csum
+.\" .br
+.\" This ext4 feature enables metadata checksumming. This feature stores
+.\" checksums for all of the filesystem metadata (superblock, group
+.\" descriptor blocks, inode and block bitmaps, directories, and
+.\" extent tree blocks). The checksum algorithm used for the metadata
+.\" blocks is different than the one used for group descriptors with the
+.\" .B uninit_bg
+.\" feature, these two features are incompatible and
+.\" .B metadata_csum
+.\" will be used preferentially instead of
+.\" .BR uninit_bg .
+.\" .br
+.\" .B Future feature, available in e2fsprogs 1.43-WIP
+.TP
+.B sparse_super2
+.br
+This feature indicates that there will only at most two backup
+superblock and block group descriptors. The block groups used to store
+the backup superblock and blockgroup descriptors are stored in the
+superblock, but typically, one will be located at the beginning of block
+group #1, and one in the last block group in the file system. This is
+feature is essentially a more extreme version of sparse_super and is
+designed to allow the a much larger percentage of the disk to have
+contiguous blocks available for data files.
+.TP
+.B meta_bg
+.br
+This ext4 feature allows file systems to be resized on-line without explicitly
+needing to reserve space for growth in the size of the block group
+descriptors. This scheme is also used to resize file systems which are
+larger than 2^32 blocks. It is not recommended that this feature be set
+when a file system is created, since this alternate method of storing
+the block group descriptor will slow down the time needed to mount the
+file system, and newer kernels can automatically set this feature as
+necessary when doing an online resize and no more reserved space is
+available in the resize inode.
+.TP
+.B mmp
+.br
+This ext4 feature provides multiple mount protection (MMP). MMP helps to
+protect the filesystem from being multiply mounted and is useful in
+shared storage environments.
+@QUOTA_MAN_COMMENT@.TP
+@QUOTA_MAN_COMMENT@.B quota
+@QUOTA_MAN_COMMENT@.br
+@QUOTA_MAN_COMMENT@Create quota inodes (inode #3 for userquota and inode
+@QUOTA_MAN_COMMENT@#4 for group quota) and set them in the superblock.
+@QUOTA_MAN_COMMENT@With this feature, the quotas will be enabled
+@QUOTA_MAN_COMMENT@automatically when the filesystem is mounted.
+@QUOTA_MAN_COMMENT@.IP
+@QUOTA_MAN_COMMENT@Causes the quota files (i.e., user.quota and
+@QUOTA_MAN_COMMENT@group.quota which existed
+@QUOTA_MAN_COMMENT@in the older quota design) to be hidden inodes.
+.TP
+.B resize_inode
+.br
+This file system feature indicates that space has been reserved so
+the block group descriptor table can be extended by the file system is
+resized while the file system is mounted. The online resize operation
+is carried out by the kernel, triggered, by
+.BR resize2fs (8).
+By default
+.B mke2fs
+will attempt to reserve enough space so that the
+filesystem may grow to 1024 times its initial size. This can be changed
+using the
+.B resize
+extended option.
+.IP
+This feature requires that the
+.B sparse_super
+feature be enabled.
+.TP
+.B sparse_super
+.br
+This file system feature is set on all modern ext2, ext3, and ext4 file
+system. It indicates that backup copies of the superblock and block
+group descriptors be present only on a few block groups, and not all of
+them.
+.TP
+.B uninit_bg
+.br
+This ext4 file system feature indicates that the block group descriptors
+will be protected using checksums, making it safe for
+.BR mke2fs (8)
+to create a file system without initializing all of the block groups.
+The kernel will keep a high watermark of unused inodes, and initialize
+inode tables and block lazily. This feature speeds up the time to check
+the file system using
+.BR e2fsck (8),
+and it also speeds up the time required for
+.BR mke2fs (8)
+to create the file system.
+.RE
+.SH SEE ALSO
+.BR mke2fs (8),
+.BR mke2fs.conf (5),
+.BR e2fsck (8),
+.BR dumpe2fs (8),
+.BR tune2fs (8),
+.BR debugfs (8)
diff --git a/misc/filefrag.8.in b/misc/filefrag.8.in
index 463f7315..a6d7b27c 100644
--- a/misc/filefrag.8.in
+++ b/misc/filefrag.8.in
@@ -5,7 +5,10 @@ filefrag \- report on file fragmentation
.SH SYNOPSIS
.B filefrag
[
-.B \-Bbsvx
+.BI \-b blocksize
+]
+[
+.B \-BeksvxX
]
[
.I files...
@@ -27,8 +30,21 @@ If FIEMAP is not supported then filefrag will fall back to using FIBMAP.
Force the use of the older FIBMAP ioctl instead of the FIEMAP ioctl for
testing purposes.
.TP
-.B \-b
-Use 1024 byte blocksize for the output.
+.BI \-b blocksize
+Use
+.I blocksize
+in bytes for output instead of the filesystem blocksize.
+For compatibility with earlier versions of
+.BR filefrag ,
+if
+.I blocksize
+is unspecified it defaults to 1024 bytes.
+.TP
+.B \-e
+Print output in extent format, even for block-mapped files.
+.TP
+.BI \-k
+Use 1024\-byte blocksize for output (identical to '\-b 1024').
.TP
.B \-s
Sync the file before requesting the mapping.
@@ -38,6 +54,9 @@ Be verbose when checking for file fragmentation.
.TP
.B \-x
Display mapping of extended attributes.
+.TP
+.B \-X
+Display extent block numbers in hexadecimal format.
.SH AUTHOR
.B filefrag
was written by Theodore Ts'o <tytso@mit.edu>.
diff --git a/misc/filefrag.c b/misc/filefrag.c
index 0583e916..929a33bc 100644
--- a/misc/filefrag.c
+++ b/misc/filefrag.c
@@ -16,8 +16,8 @@
#include <unistd.h>
int main(void) {
- fputs("This program is only supported on Linux!\n", stderr);
- exit(EXIT_FAILURE);
+ fputs("This program is only supported on Linux!\n", stderr);
+ exit(EXIT_FAILURE);
}
#else
#define _LARGEFILE64_SOURCE
@@ -40,23 +40,28 @@ extern int optind;
#include <sys/vfs.h>
#include <sys/ioctl.h>
#include <linux/fd.h>
+#include <ext2fs/ext2fs.h>
#include <ext2fs/ext2_types.h>
#include <ext2fs/fiemap.h>
int verbose = 0;
-int no_bs = 0; /* Don't use the files blocksize, use 1K blocksize */
+int blocksize; /* Use specified blocksize (default 1kB) */
int sync_file = 0; /* fsync file before getting the mapping */
int xattr_map = 0; /* get xattr mapping */
-int force_bmap = 0;
-int logical_width = 12;
-int physical_width = 14;
-unsigned long long filesize;
+int force_bmap; /* force use of FIBMAP instead of FIEMAP */
+int force_extent; /* print output in extent format always */
+int logical_width = 8;
+int physical_width = 10;
+const char *ext_fmt = "%4d: %*llu..%*llu: %*llu..%*llu: %6llu: %s\n";
+const char *hex_fmt = "%4d: %*llx..%*llx: %*llx..%*llx: %6llx: %s\n";
#define FILEFRAG_FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR)
#define FIBMAP _IO(0x00, 1) /* bmap access */
#define FIGETBSZ _IO(0x00, 2) /* get the block size used for bmap */
+#define LUSTRE_SUPER_MAGIC 0x0BD00BD0
+
#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT3_IOC_GETFLAGS _IOR('f', 1, long)
@@ -102,30 +107,47 @@ static int get_bmap(int fd, unsigned long block, unsigned long *phy_blk)
if (errno == EPERM) {
fprintf(stderr, "No permission to use FIBMAP ioctl; "
"must have root privileges\n");
- exit(1);
}
- perror("FIBMAP");
}
*phy_blk = b;
return ret;
}
+static void print_extent_header(void)
+{
+ printf(" ext: %*s %*s length: %*s flags:\n",
+ logical_width * 2 + 3,
+ "logical_offset:",
+ physical_width * 2 + 3, "physical_offset:",
+ physical_width + 1,
+ "expected:");
+}
+
static void print_extent_info(struct fiemap_extent *fm_extent, int cur_ex,
- unsigned long long expected, int blk_shift)
+ unsigned long long expected, int blk_shift,
+ ext2fs_struct_stat *st)
{
- __u64 phy_blk;
+ unsigned long long physical_blk;
unsigned long long logical_blk;
- unsigned long ext_len;
+ unsigned long long ext_len;
+ unsigned long long ext_blks;
char flags[256] = "";
- /* For inline data all offsets should be in terms of bytes, not blocks */
+ /* For inline data all offsets should be in bytes, not blocks */
if (fm_extent->fe_flags & FIEMAP_EXTENT_DATA_INLINE)
blk_shift = 0;
ext_len = fm_extent->fe_length >> blk_shift;
+ ext_blks = (fm_extent->fe_length - 1) >> blk_shift;
logical_blk = fm_extent->fe_logical >> blk_shift;
- phy_blk = fm_extent->fe_physical >> blk_shift;
+ physical_blk = fm_extent->fe_physical >> blk_shift;
+
+ if (expected)
+ sprintf(flags, ext_fmt == hex_fmt ? "%*llx: " : "%*llu: ",
+ physical_width, expected >> blk_shift);
+ else
+ sprintf(flags, "%.*s ", physical_width, " ");
if (fm_extent->fe_flags & FIEMAP_EXTENT_UNKNOWN)
strcat(flags, "unknown,");
@@ -143,29 +165,27 @@ static void print_extent_info(struct fiemap_extent *fm_extent, int cur_ex,
strcat(flags, "unwritten,");
if (fm_extent->fe_flags & FIEMAP_EXTENT_MERGED)
strcat(flags, "merged,");
+ if (fm_extent->fe_flags & FIEMAP_EXTENT_SHARED)
+ strcat(flags, "shared,");
- if (fm_extent->fe_logical + fm_extent->fe_length >= filesize)
+ if (fm_extent->fe_logical + fm_extent->fe_length >= (__u64) st->st_size)
strcat(flags, "eof,");
/* Remove trailing comma, if any */
if (flags[0])
flags[strlen(flags) - 1] = '\0';
- if (expected)
- printf("%4d %*llu %*llu %*llu %6lu %s\n",
- cur_ex, logical_width, logical_blk,
- physical_width, phy_blk, physical_width, expected,
- ext_len, flags);
- else
- printf("%4d %*llu %*llu %*s %6lu %s\n",
- cur_ex, logical_width, logical_blk,
- physical_width, phy_blk, physical_width, "",
- ext_len, flags);
+ printf(ext_fmt, cur_ex, logical_width, logical_blk,
+ logical_width, logical_blk + ext_blks,
+ physical_width, physical_blk,
+ physical_width, physical_blk + ext_blks,
+ ext_len, flags);
}
-static int filefrag_fiemap(int fd, int blk_shift, int *num_extents)
+static int filefrag_fiemap(int fd, int blk_shift, int *num_extents,
+ ext2fs_struct_stat *st)
{
- char buf[4096] = "";
+ char buf[16384];
struct fiemap *fiemap = (struct fiemap *)buf;
struct fiemap_extent *fm_ext = &fiemap->fm_extents[0];
int count = (sizeof(buf) - sizeof(*fiemap)) /
@@ -175,7 +195,7 @@ static int filefrag_fiemap(int fd, int blk_shift, int *num_extents)
unsigned int i;
static int fiemap_incompat_printed;
int fiemap_header_printed = 0;
- int tot_extents = 1, n = 0;
+ int tot_extents = 0, n = 0;
int last = 0;
int rc;
@@ -201,78 +221,133 @@ static int filefrag_fiemap(int fd, int blk_shift, int *num_extents)
return rc;
}
- if (verbose && !fiemap_header_printed) {
- /*
- * No extents on first call?
- * Skip header and show 0 extents.
- */
- if (fiemap->fm_mapped_extents == 0) {
- *num_extents = 0;
- goto out;
- }
- printf(" ext %*s %*s %*s length flags\n", logical_width,
- "logical", physical_width, "physical",
- physical_width, "expected");
- fiemap_header_printed = 1;
- }
-
/* If 0 extents are returned, then more ioctls are not needed */
if (fiemap->fm_mapped_extents == 0)
break;
- for (i = 0; i < fiemap->fm_mapped_extents; i++) {
- __u64 phy_blk, logical_blk;
- unsigned long ext_len;
-
- phy_blk = fm_ext[i].fe_physical >> blk_shift;
- ext_len = fm_ext[i].fe_length >> blk_shift;
- logical_blk = fm_ext[i].fe_logical >> blk_shift;
+ if (verbose && !fiemap_header_printed) {
+ print_extent_header();
+ fiemap_header_printed = 1;
+ }
- if (logical_blk && phy_blk != expected)
+ for (i = 0; i < fiemap->fm_mapped_extents; i++) {
+ if (fm_ext[i].fe_logical != 0 &&
+ fm_ext[i].fe_physical != expected) {
tot_extents++;
- else
+ } else {
expected = 0;
+ if (!tot_extents)
+ tot_extents = 1;
+ }
if (verbose)
print_extent_info(&fm_ext[i], n, expected,
- blk_shift);
+ blk_shift, st);
- expected = phy_blk + ext_len;
+ expected = fm_ext[i].fe_physical + fm_ext[i].fe_length;
if (fm_ext[i].fe_flags & FIEMAP_EXTENT_LAST)
last = 1;
n++;
}
- fiemap->fm_start = (fm_ext[i-1].fe_logical +
- fm_ext[i-1].fe_length);
+ fiemap->fm_start = (fm_ext[i - 1].fe_logical +
+ fm_ext[i - 1].fe_length);
} while (last == 0);
*num_extents = tot_extents;
-out:
+
return 0;
}
#define EXT2_DIRECT 12
+static int filefrag_fibmap(int fd, int blk_shift, int *num_extents,
+ ext2fs_struct_stat *st,
+ unsigned long numblocks, int is_ext2)
+{
+ struct fiemap_extent fm_ext;
+ unsigned long i, last_block;
+ unsigned long long logical;
+ /* Blocks per indirect block */
+ const long bpib = st->st_blksize / 4;
+ int count;
+
+ if (force_extent) {
+ memset(&fm_ext, 0, sizeof(fm_ext));
+ fm_ext.fe_flags = FIEMAP_EXTENT_MERGED;
+ }
+
+ if (sync_file)
+ fsync(fd);
+
+ for (i = 0, logical = 0, *num_extents = 0, count = last_block = 0;
+ i < numblocks;
+ i++, logical += st->st_blksize) {
+ unsigned long block = 0;
+ int rc;
+
+ if (is_ext2 && last_block) {
+ if (((i - EXT2_DIRECT) % bpib) == 0)
+ last_block++;
+ if (((i - EXT2_DIRECT - bpib) % (bpib * bpib)) == 0)
+ last_block++;
+ if (((i - EXT2_DIRECT - bpib - bpib * bpib) %
+ (((unsigned long long)bpib) * bpib * bpib)) == 0)
+ last_block++;
+ }
+ rc = get_bmap(fd, i, &block);
+ if (rc < 0)
+ return rc;
+ if (block == 0)
+ continue;
+ if (*num_extents == 0) {
+ (*num_extents)++;
+ if (force_extent) {
+ print_extent_header();
+ fm_ext.fe_physical = block * st->st_blksize;
+ }
+ }
+ count++;
+ if (force_extent && last_block != 0 &&
+ (block != last_block + 1 ||
+ fm_ext.fe_logical + fm_ext.fe_length != logical)) {
+ print_extent_info(&fm_ext, *num_extents - 1,
+ (last_block + 1) * st->st_blksize,
+ blk_shift, st);
+ fm_ext.fe_logical = logical;
+ fm_ext.fe_physical = block * st->st_blksize;
+ fm_ext.fe_length = 0;
+ (*num_extents)++;
+ } else if (verbose && last_block && (block != last_block + 1)) {
+ printf("Discontinuity: Block %ld is at %lu (was %lu)\n",
+ i, block, last_block + 1);
+ (*num_extents)++;
+ }
+ fm_ext.fe_length += st->st_blksize;
+ last_block = block;
+ }
+
+ if (force_extent)
+ print_extent_info(&fm_ext, *num_extents - 1,
+ last_block * st->st_blksize, blk_shift, st);
+
+ return count;
+}
+
static void frag_report(const char *filename)
{
- struct statfs fsinfo;
-#ifdef HAVE_FSTAT64
- struct stat64 fileinfo;
-#else
- struct stat fileinfo;
-#endif
- int bs;
+ static struct statfs fsinfo;
+ ext2fs_struct_stat st;
+ int blk_shift;
long fd;
- unsigned long block, last_block = 0, numblocks, i, count = 0;
- long bpib; /* Blocks per indirect block */
- long cylgroups;
- int num_extents = 0, expected;
+ unsigned long numblocks;
+ int data_blocks_per_cyl = 1;
+ int num_extents = 1, expected = ~0;
int is_ext2 = 0;
- static int once = 1;
+ static dev_t last_device;
unsigned int flags;
- int rc;
+ int width;
-#ifdef HAVE_OPEN64
+#if defined(HAVE_OPEN64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
fd = open64(filename, O_RDONLY);
#else
fd = open(filename, O_RDONLY);
@@ -282,102 +357,100 @@ static void frag_report(const char *filename)
return;
}
- if (statfs(filename, &fsinfo) < 0) {
- perror("statfs");
- return;
- }
-#ifdef HAVE_FSTAT64
- if (stat64(filename, &fileinfo) < 0) {
+#if defined(HAVE_FSTAT64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
+ if (fstat64(fd, &st) < 0) {
#else
- if (stat(filename, &fileinfo) < 0) {
+ if (fstat(fd, &st) < 0) {
#endif
+ close(fd);
perror("stat");
return;
}
+
+ if (last_device != st.st_dev) {
+ if (fstatfs(fd, &fsinfo) < 0) {
+ close(fd);
+ perror("fstatfs");
+ return;
+ }
+ if (verbose)
+ printf("Filesystem type is: %lx\n",
+ (unsigned long) fsinfo.f_type);
+ }
+ st.st_blksize = fsinfo.f_bsize;
if (ioctl(fd, EXT3_IOC_GETFLAGS, &flags) < 0)
flags = 0;
if (!(flags & EXT4_EXTENTS_FL) &&
((fsinfo.f_type == 0xef51) || (fsinfo.f_type == 0xef52) ||
(fsinfo.f_type == 0xef53)))
is_ext2++;
- if (verbose && once)
- printf("Filesystem type is: %lx\n",
- (unsigned long) fsinfo.f_type);
- cylgroups = div_ceil(fsinfo.f_blocks, fsinfo.f_bsize*8);
- if (verbose && is_ext2 && once)
- printf("Filesystem cylinder groups is approximately %ld\n",
- cylgroups);
+ if (is_ext2) {
+ long cylgroups = div_ceil(fsinfo.f_blocks, fsinfo.f_bsize * 8);
- physical_width = int_log10(fsinfo.f_blocks);
- if (physical_width < 8)
- physical_width = 8;
+ if (verbose && last_device != st.st_dev)
+ printf("Filesystem cylinder groups approximately %ld\n",
+ cylgroups);
- if (ioctl(fd, FIGETBSZ, &bs) < 0) { /* FIGETBSZ takes an int */
- perror("FIGETBSZ");
- close(fd);
- return;
+ data_blocks_per_cyl = fsinfo.f_bsize * 8 -
+ (fsinfo.f_files / 8 / cylgroups) - 3;
}
+ last_device = st.st_dev;
- if (no_bs)
- bs = 1024;
+ width = int_log10(fsinfo.f_blocks);
+ if (width > physical_width)
+ physical_width = width;
+
+ numblocks = (st.st_size + fsinfo.f_bsize - 1) / fsinfo.f_bsize;
+ if (blocksize != 0)
+ blk_shift = int_log2(blocksize);
+ else
+ blk_shift = int_log2(fsinfo.f_bsize);
- bpib = bs / 4;
- numblocks = (fileinfo.st_size + (bs-1)) / bs;
- logical_width = int_log10(numblocks);
- if (logical_width < 7)
- logical_width = 7;
- filesize = (long long)fileinfo.st_size;
+ width = int_log10(numblocks);
+ if (width > logical_width)
+ logical_width = width;
if (verbose)
- printf("File size of %s is %lld (%ld block%s, blocksize %d)\n",
- filename, (long long) fileinfo.st_size, numblocks,
- numblocks == 1 ? "" : "s", bs);
+ printf("File size of %s is %llu (%lu block%s of %d bytes)\n",
+ filename, (unsigned long long)st.st_size,
+ numblocks * fsinfo.f_bsize >> blk_shift,
+ numblocks == 1 ? "" : "s", 1 << blk_shift);
+
if (force_bmap ||
- filefrag_fiemap(fd, int_log2(bs), &num_extents) != 0) {
- for (i = 0, count = 0; i < numblocks; i++) {
- if (is_ext2 && last_block) {
- if (((i-EXT2_DIRECT) % bpib) == 0)
- last_block++;
- if (((i-EXT2_DIRECT-bpib) % (bpib*bpib)) == 0)
- last_block++;
- if (((i-EXT2_DIRECT-bpib-bpib*bpib) %
- (((__u64) bpib)*bpib*bpib)) == 0)
- last_block++;
- }
- rc = get_bmap(fd, i, &block);
- if (block == 0)
- continue;
- if (!num_extents)
- num_extents++;
- count++;
- if (last_block && (block != last_block+1) ) {
- if (verbose)
- printf("Discontinuity: Block %ld is at "
- "%lu (was %lu)\n",
- i, block, last_block+1);
- num_extents++;
+ filefrag_fiemap(fd, blk_shift, &num_extents, &st) != 0) {
+ expected = filefrag_fibmap(fd, blk_shift, &num_extents,
+ &st, numblocks, is_ext2);
+ if (expected < 0) {
+ if (errno == EINVAL || errno == ENOTTY) {
+ fprintf(stderr, "%s: FIBMAP unsupported\n",
+ filename);
+ } else if (errno != EPERM) {
+ fprintf(stderr, "%s: FIBMAP error: %s",
+ filename, strerror(errno));
}
- last_block = block;
+ goto out_close;
}
+ expected = expected / data_blocks_per_cyl + 1;
}
+
if (num_extents == 1)
printf("%s: 1 extent found", filename);
else
printf("%s: %d extents found", filename, num_extents);
/* count, and thus expected, only set for indirect FIBMAP'd files */
- expected = (count/((bs*8)-(fsinfo.f_files/8/cylgroups)-3))+1;
if (is_ext2 && expected && expected < num_extents)
printf(", perfection would be %d extent%s\n", expected,
- (expected>1) ? "s" : "");
+ (expected > 1) ? "s" : "");
else
fputc('\n', stdout);
+out_close:
close(fd);
- once = 0;
}
static void usage(const char *progname)
{
- fprintf(stderr, "Usage: %s [-Bbvsx] file ...\n", progname);
+ fprintf(stderr, "Usage: %s [-b{blocksize}] [-BeklsvxX] file ...\n",
+ progname);
exit(1);
}
@@ -386,23 +459,61 @@ int main(int argc, char**argv)
char **cpp;
int c;
- while ((c = getopt(argc, argv, "Bbsvx")) != EOF)
+ while ((c = getopt(argc, argv, "Bb::eksvxX")) != EOF)
switch (c) {
case 'B':
force_bmap++;
break;
case 'b':
- no_bs++;
+ if (optarg) {
+ char *end;
+ blocksize = strtoul(optarg, &end, 0);
+ if (end) {
+ switch (end[0]) {
+ case 'g':
+ case 'G':
+ blocksize *= 1024;
+ /* no break */
+ case 'm':
+ case 'M':
+ blocksize *= 1024;
+ /* no break */
+ case 'k':
+ case 'K':
+ blocksize *= 1024;
+ break;
+ default:
+ break;
+ }
+ }
+ } else { /* Allow -b without argument for compat. Remove
+ * this eventually so "-b {blocksize}" works */
+ fprintf(stderr, "%s: -b needs a blocksize "
+ "option, assuming 1024-byte blocks.\n",
+ argv[0]);
+ blocksize = 1024;
+ }
break;
- case 'v':
- verbose++;
+ case 'e':
+ force_extent++;
+ if (!verbose)
+ verbose++;
+ break;
+ case 'k':
+ blocksize = 1024;
break;
case 's':
sync_file++;
break;
+ case 'v':
+ verbose++;
+ break;
case 'x':
xattr_map++;
break;
+ case 'X':
+ ext_fmt = hex_fmt;
+ break;
default:
usage(argv[0]);
break;
diff --git a/misc/findsuper.c b/misc/findsuper.c
index 6b5e16fc..eb9130ba 100644
--- a/misc/findsuper.c
+++ b/misc/findsuper.c
@@ -172,7 +172,7 @@ int main(int argc, char *argv[])
optind++;
}
if (sk < 0) {
- fprintf(stderr, _("startkb should be positive, not %Lu\n"), sk);
+ fprintf(stderr, _("startkb should be positive, not %llu\n"),sk);
exit(1);
}
@@ -183,7 +183,7 @@ int main(int argc, char *argv[])
}
/* Now, go looking for the superblock! */
- printf(_("starting at %Lu, with %u byte increments\n"), sk, skiprate);
+ printf(_("starting at %llu, 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"));
diff --git a/misc/fsck.c b/misc/fsck.c
index 13cfa57b..826aaebb 100644
--- a/misc/fsck.c
+++ b/misc/fsck.c
@@ -30,7 +30,6 @@
#include "config.h"
#include <sys/types.h>
#include <sys/wait.h>
-#include <sys/signal.h>
#include <sys/stat.h>
#include <limits.h>
#include <stdio.h>
@@ -98,32 +97,32 @@ static const char *really_wanted[] = {
/*
* Global variables for options
*/
-char *devices[MAX_DEVICES];
-char *args[MAX_ARGS];
-int num_devices, num_args;
-
-int verbose = 0;
-int doall = 0;
-int noexecute = 0;
-int serialize = 0;
-int skip_root = 0;
-int ignore_mounted = 0;
-int notitle = 0;
-int parallel_root = 0;
-int progress = 0;
-int progress_fd = 0;
-int force_all_parallel = 0;
-int num_running = 0;
-int max_running = 0;
-volatile int cancel_requested = 0;
-int kill_sent = 0;
-char *progname;
-char *fstype = NULL;
-struct fs_info *filesys_info = NULL, *filesys_last = NULL;
-struct fsck_instance *instance_list;
-const char *fsck_prefix_path = "/sbin:/sbin/fs.d:/sbin/fs:/etc/fs:/etc";
-char *fsck_path = 0;
-blkid_cache cache = NULL;
+static char *devices[MAX_DEVICES];
+static char *args[MAX_ARGS];
+static int num_devices, num_args;
+
+static int verbose = 0;
+static int doall = 0;
+static int noexecute = 0;
+static int serialize = 0;
+static int skip_root = 0;
+static int ignore_mounted = 0;
+static int notitle = 0;
+static int parallel_root = 0;
+static int progress = 0;
+static int progress_fd = 0;
+static int force_all_parallel = 0;
+static int num_running = 0;
+static int max_running = 0;
+static volatile int cancel_requested = 0;
+static int kill_sent = 0;
+static char *progname;
+static char *fstype = NULL;
+static struct fs_info *filesys_info = NULL, *filesys_last = NULL;
+static struct fsck_instance *instance_list;
+static const char *fsck_prefix_path = "/sbin:/sbin/fs.d:/sbin/fs:/etc/fs:/etc";
+static char *fsck_path = 0;
+static blkid_cache cache = NULL;
static char *string_copy(const char *s)
{
@@ -729,7 +728,7 @@ static void fsck_device(struct fs_info *fs, int interactive)
/*
* Deal with the fsck -t argument.
*/
-struct fs_type_compile {
+static struct fs_type_compile {
char **list;
int *type;
int negate;
diff --git a/misc/ismounted.c b/misc/ismounted.c
index 9e8bebfd..6aa0e04d 100644
--- a/misc/ismounted.c
+++ b/misc/ismounted.c
@@ -40,6 +40,7 @@
#include "et/com_err.h"
+#ifdef HAVE_SETMNTENT
static char *skip_over_blank(char *cp)
{
while (*cp && isspace(*cp))
@@ -69,6 +70,7 @@ static char *parse_word(char **buf)
*buf = next;
return word;
}
+#endif
/*
* Helper function which checks a file in /etc/mtab format to see if a
@@ -78,7 +80,7 @@ static char *parse_word(char **buf)
static errcode_t check_mntent_file(const char *mtab_file, const char *file,
int *mount_flags)
{
-#ifdef HAVE_MNTENT_H
+#ifdef HAVE_SETMNTENT
struct stat st_buf;
errcode_t retval = 0;
dev_t file_dev=0, file_rdev=0;
@@ -178,7 +180,7 @@ static errcode_t check_mntent_file(const char *mtab_file, const char *file,
errout:
endmntent (f);
return retval;
-#else /* !HAVE_MNTENT_H */
+#else /* !HAVE_SETMNTENT */
return 0;
#endif /* HAVE_MNTENT_H */
}
diff --git a/misc/logsave.c b/misc/logsave.c
index c37473cb..f6cc42a4 100644
--- a/misc/logsave.c
+++ b/misc/logsave.c
@@ -32,13 +32,13 @@ extern char *optarg;
extern int optind;
#endif
-int outfd = -1;
-int outbufsize = 0;
-void *outbuf = 0;
-int verbose = 0;
-int do_skip = 0;
-int skip_mode = 0;
-pid_t child_pid = -1;
+static int outfd = -1;
+static int outbufsize = 0;
+static void *outbuf = 0;
+static int verbose = 0;
+static int do_skip = 0;
+static int skip_mode = 0;
+static pid_t child_pid = -1;
static void usage(char *progname)
{
@@ -190,6 +190,7 @@ static int run_program(char **argv)
dup2(fds[1],1); /* fds[1] replaces stdout */
dup2(fds[1],2); /* fds[1] replaces stderr */
close(fds[0]); /* don't need this here */
+ close(fds[1]);
execvp(argv[0], argv);
perror(argv[0]);
@@ -209,7 +210,7 @@ static int run_program(char **argv)
rc = WEXITSTATUS(status);
if (rc) {
send_output(argv[0], 0, SEND_BOTH);
- sprintf(buffer, " died with exit status %d\n", rc);
+ sprintf(buffer, " exited with status code %d\n", rc);
send_output(buffer, 0, SEND_BOTH);
}
} else {
diff --git a/misc/mk_hugefiles.c b/misc/mk_hugefiles.c
new file mode 100644
index 00000000..b7a98404
--- /dev/null
+++ b/misc/mk_hugefiles.c
@@ -0,0 +1,434 @@
+/*
+ * mk_hugefiles.c -- create huge files
+ */
+
+#define _XOPEN_SOURCE 600 /* for inclusion of PATH_MAX in Solaris */
+
+#include "config.h"
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <time.h>
+#ifdef __linux__
+#include <sys/utsname.h>
+#endif
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#else
+extern char *optarg;
+extern int optind;
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <libgen.h>
+#include <limits.h>
+#include <blkid/blkid.h>
+
+#include "ext2fs/ext2_fs.h"
+#include "ext2fs/ext2fsP.h"
+#include "et/com_err.h"
+#include "uuid/uuid.h"
+#include "e2p/e2p.h"
+#include "ext2fs/ext2fs.h"
+#include "util.h"
+#include "profile.h"
+#include "prof_err.h"
+#include "nls-enable.h"
+#include "mke2fs.h"
+
+static int uid;
+static int gid;
+static blk64_t num_blocks;
+static blk64_t num_slack;
+static unsigned long num_files;
+static blk64_t goal;
+static char *fn_prefix;
+static int idx_digits;
+static char *fn_buf;
+static char *fn_numbuf;
+int zero_hugefile = 1;
+
+static errcode_t create_directory(ext2_filsys fs, char *dir,
+ ext2_ino_t *ret_ino)
+
+{
+ struct ext2_inode inode;
+ ext2_ino_t ino = EXT2_ROOT_INO;
+ ext2_ino_t newdir;
+ errcode_t retval = 0;
+ char *fn, *cp, *next;
+
+ fn = malloc(strlen(dir) + 1);
+ if (fn == NULL)
+ return ENOMEM;
+
+ strcpy(fn, dir);
+ cp = fn;
+ while(1) {
+ next = strchr(cp, '/');
+ if (next)
+ *next++ = 0;
+ if (*cp) {
+ retval = ext2fs_new_inode(fs, ino, LINUX_S_IFDIR,
+ NULL, &newdir);
+ if (retval)
+ goto errout;
+
+ retval = ext2fs_mkdir(fs, ino, newdir, cp);
+ if (retval)
+ goto errout;
+
+ ino = newdir;
+ retval = ext2fs_read_inode(fs, ino, &inode);
+ if (retval)
+ goto errout;
+
+ inode.i_uid = uid & 0xFFFF;
+ ext2fs_set_i_uid_high(inode, (uid >> 16) & 0xffff);
+ inode.i_gid = gid & 0xFFFF;
+ ext2fs_set_i_gid_high(inode, (gid >> 16) & 0xffff);
+ retval = ext2fs_write_inode(fs, ino, &inode);
+ if (retval)
+ goto errout;
+ }
+ if (next == NULL || *next == '\0')
+ break;
+ cp = next;
+ }
+errout:
+ free(fn);
+ if (retval == 0)
+ *ret_ino = ino;
+ return retval;
+}
+
+static errcode_t mk_hugefile(ext2_filsys fs, blk64_t num,
+ ext2_ino_t dir, unsigned long idx, ext2_ino_t *ino)
+
+{
+ errcode_t retval;
+ blk64_t lblk, bend = 0;
+ __u64 size;
+ blk64_t left;
+ blk64_t count = 0;
+ struct ext2_inode inode;
+ ext2_extent_handle_t handle;
+
+ retval = ext2fs_new_inode(fs, 0, LINUX_S_IFREG, NULL, ino);
+ if (retval)
+ return retval;
+
+ memset(&inode, 0, sizeof(struct ext2_inode));
+ inode.i_mode = LINUX_S_IFREG | (0666 & ~fs->umask);
+ inode.i_links_count = 1;
+ inode.i_uid = uid & 0xFFFF;
+ ext2fs_set_i_uid_high(inode, (uid >> 16) & 0xffff);
+ inode.i_gid = gid & 0xFFFF;
+ ext2fs_set_i_gid_high(inode, (gid >> 16) & 0xffff);
+
+ retval = ext2fs_write_new_inode(fs, *ino, &inode);
+ if (retval)
+ return retval;
+
+ ext2fs_inode_alloc_stats2(fs, *ino, +1, 0);
+
+ retval = ext2fs_extent_open2(fs, *ino, &inode, &handle);
+ if (retval)
+ return retval;
+
+ lblk = 0;
+ left = num ? num : 1;
+ while (left) {
+ blk64_t pblk, end;
+ blk64_t n = left;
+
+ retval = ext2fs_find_first_zero_block_bitmap2(fs->block_map,
+ goal, ext2fs_blocks_count(fs->super) - 1, &end);
+ if (retval)
+ goto errout;
+ goal = end;
+
+ retval = ext2fs_find_first_set_block_bitmap2(fs->block_map, goal,
+ ext2fs_blocks_count(fs->super) - 1, &bend);
+ if (retval == ENOENT) {
+ bend = ext2fs_blocks_count(fs->super);
+ if (num == 0)
+ left = 0;
+ }
+ if (!num || bend - goal < left)
+ n = bend - goal;
+ pblk = goal;
+ if (num)
+ left -= n;
+ goal += n;
+ count += n;
+ ext2fs_block_alloc_stats_range(fs, pblk, n, +1);
+
+ if (zero_hugefile) {
+ blk64_t ret_blk;
+ retval = ext2fs_zero_blocks2(fs, pblk, n,
+ &ret_blk, NULL);
+
+ if (retval)
+ com_err(program_name, retval,
+ _("while zeroing block %llu "
+ "for hugefile"), ret_blk);
+ }
+
+ while (n) {
+ blk64_t l = n;
+ struct ext2fs_extent newextent;
+
+ if (l > EXT_INIT_MAX_LEN)
+ l = EXT_INIT_MAX_LEN;
+
+ newextent.e_len = l;
+ newextent.e_pblk = pblk;
+ newextent.e_lblk = lblk;
+ newextent.e_flags = 0;
+
+ retval = ext2fs_extent_insert(handle,
+ EXT2_EXTENT_INSERT_AFTER, &newextent);
+ if (retval)
+ return retval;
+ pblk += l;
+ lblk += l;
+ n -= l;
+ }
+ }
+
+ retval = ext2fs_read_inode(fs, *ino, &inode);
+ if (retval)
+ goto errout;
+
+ retval = ext2fs_iblk_add_blocks(fs, &inode,
+ count / EXT2FS_CLUSTER_RATIO(fs));
+ if (retval)
+ goto errout;
+ size = (__u64) count * fs->blocksize;
+ inode.i_size = size & 0xffffffff;
+ inode.i_size_high = (size >> 32);
+
+ retval = ext2fs_write_new_inode(fs, *ino, &inode);
+ if (retval)
+ goto errout;
+
+ if (idx_digits)
+ sprintf(fn_numbuf, "%0*lu", idx_digits, idx);
+ else if (num_files > 1)
+ sprintf(fn_numbuf, "%lu", idx);
+
+retry:
+ retval = ext2fs_link(fs, dir, fn_buf, *ino, EXT2_FT_REG_FILE);
+ if (retval == EXT2_ET_DIR_NO_SPACE) {
+ retval = ext2fs_expand_dir(fs, dir);
+ if (retval)
+ goto errout;
+ goto retry;
+ }
+
+ if (retval)
+ goto errout;
+
+errout:
+ if (handle)
+ ext2fs_extent_free(handle);
+
+ return retval;
+}
+
+static blk64_t calc_overhead(ext2_filsys fs, blk64_t num)
+{
+ blk64_t e_blocks, e_blocks2, e_blocks3, e_blocks4;
+ int extents_per_block;
+ int extents = (num + EXT_INIT_MAX_LEN - 1) / EXT_INIT_MAX_LEN;
+
+ if (extents <= 4)
+ return 0;
+
+ /*
+ * This calculation is due to the fact that we are inefficient
+ * in how handle extent splits when appending to the end of
+ * the extent tree. Sigh. We should fix this so that we can
+ * actually store 340 extents per 4k block, instead of only 170.
+ */
+ extents_per_block = ((fs->blocksize -
+ sizeof(struct ext3_extent_header)) /
+ sizeof(struct ext3_extent));
+ extents_per_block = (extents_per_block/ 2) - 1;
+
+ e_blocks = (extents + extents_per_block - 1) / extents_per_block;
+ e_blocks2 = (e_blocks + extents_per_block - 1) / extents_per_block;
+ e_blocks3 = (e_blocks2 + extents_per_block - 1) / extents_per_block;
+ e_blocks4 = (e_blocks3 + extents_per_block - 1) / extents_per_block;
+ return e_blocks + e_blocks2 + e_blocks3 + e_blocks4;
+}
+
+/*
+ * Find the place where we should start allocating blocks for the huge
+ * files. Leave <slack> free blocks at the beginning of the file
+ * system for things like metadata blocks.
+ */
+static blk64_t get_start_block(ext2_filsys fs, blk64_t slack)
+{
+ errcode_t retval;
+ blk64_t blk = fs->super->s_first_data_block, next;
+ blk64_t last_blk = ext2fs_blocks_count(fs->super) - 1;
+
+ while (slack) {
+ retval = ext2fs_find_first_zero_block_bitmap2(fs->block_map,
+ blk, last_blk, &blk);
+ if (retval)
+ break;
+
+ retval = ext2fs_find_first_set_block_bitmap2(fs->block_map,
+ blk, last_blk, &next);
+ if (retval)
+ next = last_blk;
+ next--;
+
+ if (next - blk > slack) {
+ blk += slack;
+ break;
+ }
+
+ slack -= (next - blk);
+ blk = next;
+ }
+ return blk;
+}
+
+static blk64_t round_up_align(blk64_t b, unsigned long align)
+{
+ unsigned long m;
+
+ if (align == 0)
+ return b;
+ m = b % align;
+ if (m)
+ b += align - m;
+ return b;
+}
+
+errcode_t mk_hugefiles(ext2_filsys fs)
+{
+ unsigned long i;
+ ext2_ino_t dir;
+ errcode_t retval;
+ blk64_t fs_blocks;
+ unsigned long align;
+ int d, dsize;
+ char *t;
+
+ if (!get_bool_from_profile(fs_types, "make_hugefiles", 0))
+ return 0;
+
+ uid = get_int_from_profile(fs_types, "hugefiles_uid", 0);
+ gid = get_int_from_profile(fs_types, "hugefiles_gid", 0);
+ fs->umask = get_int_from_profile(fs_types, "hugefiles_umask", 077);
+ num_files = get_int_from_profile(fs_types, "num_hugefiles", 0);
+ t = get_string_from_profile(fs_types, "hugefiles_slack", "1M");
+ num_slack = parse_num_blocks2(t, fs->super->s_log_block_size);
+ free(t);
+ t = get_string_from_profile(fs_types, "hugefiles_size", "0");
+ num_blocks = parse_num_blocks2(t, fs->super->s_log_block_size);
+ free(t);
+ t = get_string_from_profile(fs_types, "hugefiles_align", "0");
+ align = parse_num_blocks2(t, fs->super->s_log_block_size);
+ free(t);
+ num_blocks = round_up_align(num_blocks, align);
+ zero_hugefile = get_bool_from_profile(fs_types, "zero_hugefiles",
+ zero_hugefile);
+
+ t = get_string_from_profile(fs_types, "hugefiles_dir", "/");
+ retval = create_directory(fs, t, &dir);
+ free(t);
+ if (retval)
+ return retval;
+
+ fn_prefix = get_string_from_profile(fs_types, "hugefiles_name",
+ "hugefile");
+ idx_digits = get_int_from_profile(fs_types, "hugefiles_digits", 5);
+ d = int_log10(num_files) + 1;
+ if (idx_digits > d)
+ d = idx_digits;
+ dsize = strlen(fn_prefix) + d + 16;
+ fn_buf = malloc(dsize);
+ if (!fn_buf) {
+ free(fn_prefix);
+ return ENOMEM;
+ }
+ strcpy(fn_buf, fn_prefix);
+ fn_numbuf = fn_buf + strlen(fn_prefix);
+ free(fn_prefix);
+
+ fs_blocks = ext2fs_free_blocks_count(fs->super);
+ if (fs_blocks < num_slack + align)
+ return ENOMEM;
+ fs_blocks -= num_slack + align;
+ if (num_blocks && num_blocks > fs_blocks)
+ return ENOMEM;
+ if (num_blocks == 0 && num_files == 0)
+ num_files = 1;
+
+ if (num_files == 0 && num_blocks) {
+ num_files = fs_blocks / num_blocks;
+ fs_blocks -= (num_files / 16) + 1;
+ fs_blocks -= calc_overhead(fs, num_blocks) * num_files;
+ num_files = fs_blocks / num_blocks;
+ }
+
+ if (num_blocks == 0 && num_files > 1) {
+ num_blocks = fs_blocks / num_files;
+ fs_blocks -= (num_files / 16) + 1;
+ fs_blocks -= calc_overhead(fs, num_blocks) * num_files;
+ num_blocks = fs_blocks / num_files;
+ }
+
+ num_slack += calc_overhead(fs, num_blocks) * num_files;
+ num_slack += (num_files / 16) + 1; /* space for dir entries */
+ goal = get_start_block(fs, num_slack);
+ goal = round_up_align(goal, align);
+
+ if ((num_blocks ? num_blocks : fs_blocks) >
+ (0x80000000UL / fs->blocksize))
+ fs->super->s_feature_ro_compat |=
+ EXT2_FEATURE_RO_COMPAT_LARGE_FILE;
+
+ if (!quiet) {
+ if (zero_hugefile && verbose)
+ printf("%s", _("Huge files will be zero'ed\n"));
+ printf(_("Creating %lu huge file(s) "), num_files);
+ if (num_blocks)
+ printf(_("with %llu blocks each"), num_blocks);
+ fputs(": ", stdout);
+ }
+ for (i=0; i < num_files; i++) {
+ ext2_ino_t ino;
+
+ retval = mk_hugefile(fs, num_blocks, dir, i, &ino);
+ if (retval) {
+ com_err(program_name, retval,
+ _("while creating huge file %lu"), i);
+ goto errout;
+ }
+ }
+ if (!quiet)
+ fputs(_("done\n"), stdout);
+
+errout:
+ free(fn_buf);
+ return retval;
+}
diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in
index 6d443a2a..9c38e203 100644
--- a/misc/mke2fs.8.in
+++ b/misc/mke2fs.8.in
@@ -64,7 +64,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem
]
[
.B \-O
-.IR feature [,...]
+[^]\fIfeature\fR[,...]
]
[
.B \-q
@@ -187,6 +187,15 @@ Check the device for bad blocks before creating the file system. If
this option is specified twice, then a slower read-write
test is used instead of a fast read-only test.
.TP
+.B \-C " cluster-size"
+Specify the size of cluster in bytes for filesystems using the bigalloc
+feature. Valid cluster-size values are from 2048 to 256M bytes per
+cluster. This can only be specified if the bigalloc feature is
+enabled. (See the
+.B ext4 (5)
+man page for more details about bigalloc.) The default cluster size if
+bigalloc is enabled is 16 times the block size.
+.TP
.B \-D
Use direct I/O when writing to the disk. This avoids mke2fs dirtying a
lot of buffer cache memory, which may impact other applications running
@@ -203,8 +212,8 @@ in earlier versions of
.BR mke2fs .
The
.B \-R
-option is still accepted for backwards compatibility. The
-following extended options are supported:
+option is still accepted for backwards compatibility, but is deprecated.
+The following extended options are supported:
.RS 1.2i
.TP
.BI mmp_update_interval= interval
@@ -237,6 +246,10 @@ parity disk, so N will be the number of disks in the array minus 1).
This allows the block allocator to prevent read-modify-write of the
parity in a RAID stripe if possible when the data is written.
.TP
+.BI offset= offset
+Create the filesystem at an offset from the beginning of the device or
+file. This can be useful when creating disk images for virtual machines.
+.TP
.BI resize= max-online-resize
Reserve enough space so that the block group descriptor table can grow
to support a filesystem that has
@@ -261,6 +274,31 @@ small risk if the system crashes before the journal has been overwritten
entirely one time. If the option value is omitted, it defaults to 1 to
enable lazy journal inode zeroing.
.TP
+.BI num_backup_sb= <0|1|2>
+If the
+.B sparse_super2
+file system feature is enabled this option controls whether there will
+be 0, 1, or 2 backup superblocks created in the file system.
+.TP
+.B packed_meta_blocks\fR[\fB= \fI<0 to disable, 1 to enable>\fR]
+Place the allocation bitmaps and the inode table at the beginning of the
+disk. This option requires that the flex_bg file system feature to be
+enabled in order for it to have effect, and will also create the journal
+at the beginning of the file system. This option is useful for flash
+devices that use SLC flash at the beginning of the disk.
+It also maximizes the range of contiguous data blocks, which
+can be useful for certain specialized use cases, such as supported
+Shingled Drives.
+.TP
+.BI root_owner [=uid:gid]
+Specify the numeric user and group ID of the root directory. If no UID:GID
+is specified, use the user and group ID of the user running \fBmke2fs\fR.
+In \fBmke2fs\fR 1.42 and earlier the UID and GID of the root directory were
+set by default to the UID and GID of the user running the mke2fs command.
+The \fBroot_owner=\fR option allows explicitly specifying these values,
+and avoid side-effects for users that do not expect the contents of the
+filesystem to change based on the user running \fBmke2fs\fR.
+.TP
.B test_fs
Set a flag in the filesystem superblock indicating that it may be
mounted using experimental kernel code, such as the ext4dev filesystem.
@@ -275,13 +313,13 @@ as default.
.TP
.BI nodiscard
Do not attempt to discard blocks at mkfs time.
-.TP
-.BI quotatype
-Specify which quota type ('usr' or 'grp') is to be initialized. This
-option has any effect only if
-.B quota
-feature is set. Without this extended option, the default behavior is to
-initialize both user and group quotas.
+@QUOTA_MAN_COMMENT@.TP
+@QUOTA_MAN_COMMENT@.BI quotatype
+@QUOTA_MAN_COMMENT@Specify which quota type ('usr' or 'grp') is to be
+@QUOTA_MAN_COMMENT@initialized. This option has effect only if the
+@QUOTA_MAN_COMMENT@.B quota
+@QUOTA_MAN_COMMENT@feature is set. Without this extended option, the default
+@QUOTA_MAN_COMMENT@behavior is to initialize both user and group quotas.
.RE
.TP
.BI \-f " fragment-size"
@@ -309,6 +347,10 @@ RAID parameter as part of the
option rather than manipulating the number of blocks per group.)
This option is generally used by developers who
are developing test cases.
+.IP
+If the bigalloc feature is enabled, the
+.B \-g
+option will specify the number of clusters in a block group.
.TP
.BI \-G " number-of-groups"
Specify the number of block groups that will be packed together to
@@ -329,26 +371,36 @@ bytes of space on the disk. The larger the
ratio, the fewer inodes will be created. This value generally shouldn't
be smaller than the blocksize of the filesystem, since in that case more
inodes would be made than can ever be used. Be warned that it 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.
+possible to change this ratio on a filesystem after it is created, so be
+careful deciding the correct value for this parameter. Note that resizing
+a filesystem changes the numer of inodes to maintain this ratio.
.TP
.BI \-I " inode-size"
Specify the size of each inode in bytes.
-.B mke2fs
-creates 256-byte inodes by default. In kernels after 2.6.10 and some
-earlier vendor kernels it is possible to utilize inodes larger than
-128 bytes to store
-extended attributes for improved performance. The
+The
.I inode-size
value must be a power of 2 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.
+It is not
+possible to change this value after the filesystem is created.
+.IP
+In kernels after 2.6.10 and some
+earlier vendor kernels it is possible to utilize inodes larger than
+128 bytes to store
+extended attributes for improved performance.
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.
+filesystems will not be mountable with 2.4 kernels at all.
+.IP
+The default inode size is controlled by the
+.BR mke2fs.conf (5)
+file. In the
+.B mke2fs.conf
+file shipped with e2fsprogs, the default inode size is 256 bytes for
+most file systems, except for small file systems where the inode size
+will be 128 bytes.
.TP
.B \-j
Create the filesystem with an ext3 journal. If the
@@ -373,6 +425,13 @@ The size of the journal must be at least 1024 filesystem blocks
(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.)
and may be no more than 10,240,000 filesystem blocks or half the total
file system size (whichever is smaller)
+.TP
+.BI location =journal-location
+Specify the location of the journal. The argument
+.I journal-location
+can either be specified as a block number, or if the number has a units
+suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the
+beginning of the file system.
@JDEV@.TP
@JDEV@.BI device= external-journal
@JDEV@Attach the filesystem to the journal block device located on
@@ -476,7 +535,7 @@ filesystem. The creator field is set by default to the name of the OS the
.B mke2fs
executable was compiled for.
.TP
-.B "\-O \fIfeature\fR[,...]"
+.B "\-O \fR[^]\fIfeature\fR[,...]"
Create a filesystem with the given features (filesystem options),
overriding the default filesystem options. The features that are
enabled by default are specified by the
@@ -512,80 +571,13 @@ section of the configuration file.
.sp
The filesystem feature set is comprised of a list of features, separated
by commas, that are to be enabled. To disable a feature, simply
-prefix the feature name with a caret ('^') character. The
-pseudo-filesystem feature "none" will clear all filesystem features.
-.RS 1.2i
-.TP
-.B dir_index
-Use hashed b-trees to speed up lookups in large directories.
-.TP
-.B extent
-Instead of using the indirect block scheme for storing the location of
-data blocks in an inode, use extents instead. This is a much more
-efficient encoding which speeds up filesystem access, especially for
-large files.
-.TP
-.B filetype
-Store file type information in directory entries.
+prefix the feature name with a caret ('^') character.
+Features with dependencies will not be removed successfully.
+The pseudo-filesystem feature "none" will clear all filesystem features.
.TP
-.B flex_bg
-Allow the per-block group metadata (allocation bitmaps and inode tables)
-to be placed anywhere on the storage media. In addition,
-.B mke2fs
-will place the per-block group metadata together starting at the first
-block group of each "flex_bg group". The size of the flex_bg group
-can be specified using the
-.B \-G
-option.
-.TP
-.B has_journal
-Create an ext3 journal (as if using the
-.B \-j
-option).
-@JDEV@.TP
-@JDEV@.B journal_dev
-@JDEV@Create an external ext3 journal on the given device
-@JDEV@instead of a regular ext2 filesystem.
-@JDEV@Note that
-@JDEV@.I external-journal
-@JDEV@must be created with the same
-@JDEV@block size as the filesystems that will be using it.
-.TP
-.B large_file
-Filesystem can contain files that are greater than 2GB. (Modern kernels
-set this feature automatically when a file > 2GB is created.)
-.TP
-.B quota
-Create quota inodes (inode# 3 for userquota and inode# 4 for group quota) and
-set them in the superblock. With this feature, the quotas will be enabled
-automatically when the filesystem is mounted.
-.TP
-.B resize_inode
-Reserve space so the block group descriptor table may grow in the future.
-Useful for online resizing using
-.BR resize2fs .
-By default
-.B mke2fs
-will attempt to reserve enough space so that the
-filesystem may grow to 1024 times its initial size. This can be changed
-using the
-.B resize
-extended option.
-.TP
-.B sparse_super
-Create a filesystem with fewer superblock backup copies
-(saves space on large filesystems).
-.TP
-.B uninit_bg
-Create a filesystem without initializing all of the block groups. This
-feature also enables checksums and highest-inode-used statistics in each
-blockgroup. This feature can
-speed up filesystem creation time noticeably (if lazy_itable_init is
-enabled), and can also reduce
-.BR e2fsck
-time dramatically. It is only supported by the ext4 filesystem in
-recent Linux kernels.
-.RE
+For more information about the features which can be set, please see
+the manual page
+.BR ext4 (5).
.TP
.B \-q
Quiet execution. Useful if
@@ -616,18 +608,19 @@ or there is no chance of recovery.
.\" using the specified test.
.TP
.BI \-t " fs-type"
-Specify the filesystem type (i.e., ext2, ext3, ext4, etc.) that is to be created.
+Specify the filesystem type (i.e., ext2, ext3, ext4, etc.) that is
+to be created.
If this option is not specified,
.B mke2fs
will pick a default either via how
the command was run (for example, using a name of the form mkfs.ext2,
mkfs.ext3, etc.) or via a default as defined by the
-.BR /etc/mke2fs.conf (5)
+.B /etc/mke2fs.conf
file. This option controls which filesystem options are used by
default, based on the
.B fstypes
configuration stanza in
-.BR /etc/mke2fs.conf (5).
+.BR /etc/mke2fs.conf .
.sp
If the
.B \-O
@@ -646,7 +639,7 @@ Specify how the filesystem is going to be used, so that
.B mke2fs
can choose optimal filesystem parameters for that use. The usage
types that are supported are defined in the configuration file
-.BR /etc/mke2fs.conf (5).
+.BR /etc/mke2fs.conf .
The user may specify one or more usage types
using a comma separated list.
.sp
@@ -730,4 +723,5 @@ http://e2fsprogs.sourceforge.net.
.BR badblocks (8),
.BR dumpe2fs (8),
.BR e2fsck (8),
-.BR tune2fs (8)
+.BR tune2fs (8),
+.BR ext4 (5)
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index 0d793f78..eb9846a7 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -27,6 +27,7 @@
#include <time.h>
#ifdef __linux__
#include <sys/utsname.h>
+#include <linux/version.h>
#endif
#ifdef HAVE_GETOPT_H
#include <getopt.h>
@@ -43,9 +44,6 @@ extern int optind;
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
-#ifdef HAVE_MNTENT_H
-#include <mntent.h>
-#endif
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -64,7 +62,8 @@ extern int optind;
#include "prof_err.h"
#include "../version.h"
#include "nls-enable.h"
-#include "quota/mkquota.h"
+#include "quota/quotaio.h"
+#include "mke2fs.h"
#define STRIDE_LENGTH 8
@@ -80,37 +79,44 @@ extern int isatty(int);
extern FILE *fpopen(const char *cmd, const char *mode);
const char * program_name = "mke2fs";
-const char * device_name /* = NULL */;
+static const char * device_name /* = NULL */;
/* Command line options */
-int cflag;
+static int cflag;
int verbose;
int quiet;
-int super_only;
-int discard = 1; /* attempt to discard device before fs creation */
-int direct_io;
-int force;
-int noaction;
+static int super_only;
+static int discard = 1; /* attempt to discard device before fs creation */
+static int direct_io;
+static int force;
+static int noaction;
+static int num_backups = 2; /* number of backup bg's for sparse_super2 */
+static uid_t root_uid;
+static gid_t root_gid;
int journal_size;
int journal_flags;
-int lazy_itable_init;
-char *bad_blocks_filename;
-__u32 fs_stride;
-int quotatype = -1; /* Initialize both user and group quotas by default */
-
-struct ext2_super_block fs_param;
-char *fs_uuid = NULL;
-char *creator_os;
-char *volume_label;
-char *mount_dir;
+static int lazy_itable_init;
+static int packed_meta_blocks;
+static char *bad_blocks_filename = NULL;
+static __u32 fs_stride;
+static int quotatype = -1; /* Initialize both user and group quotas by default */
+static __u64 offset;
+static blk64_t journal_location = ~0LL;
+static int proceed_delay = -1;
+static blk64_t dev_size;
+
+static struct ext2_super_block fs_param;
+static char *fs_uuid = NULL;
+static char *creator_os;
+static char *volume_label;
+static char *mount_dir;
char *journal_device;
-int sync_kludge; /* Set using the MKE2FS_SYNC env. option */
+static int sync_kludge; /* Set using the MKE2FS_SYNC env. option */
char **fs_types;
-profile_t profile;
+static profile_t profile;
-int sys_page_size = 4096;
-int linux_version_code = 0;
+static int sys_page_size = 4096;
static void usage(void)
{
@@ -140,7 +146,7 @@ static int int_log2(unsigned long long arg)
return l;
}
-static int int_log10(unsigned long long arg)
+int int_log10(unsigned long long arg)
{
int l;
@@ -149,6 +155,7 @@ static int int_log10(unsigned long long arg)
return l;
}
+#ifdef __linux__
static int parse_version_number(const char *s)
{
int major, minor, rev;
@@ -168,8 +175,31 @@ static int parse_version_number(const char *s)
rev = strtol(cp, &endptr, 10);
if (cp == endptr)
return 0;
- return ((((major * 256) + minor) * 256) + rev);
+ return KERNEL_VERSION(major, minor, rev);
+}
+
+static int is_before_linux_ver(unsigned int major, unsigned int minor)
+{
+ struct utsname ut;
+ static int linux_version_code = -1;
+
+ if (uname(&ut)) {
+ perror("uname");
+ exit(1);
+ }
+ if (linux_version_code < 0)
+ linux_version_code = parse_version_number(ut.release);
+ if (linux_version_code == 0)
+ return 0;
+
+ return linux_version_code < KERNEL_VERSION(major, minor, 0);
+}
+#else
+static int is_before_linux_ver(unsigned int major, unsigned int minor)
+{
+ return 0;
}
+#endif
/*
* Helper function for read_bb_file and test_disk
@@ -198,7 +228,7 @@ static void read_bb_file(ext2_filsys fs, badblocks_list *bb_list,
retval = ext2fs_read_bb_FILE(fs, f, bb_list, invalid_block);
fclose (f);
if (retval) {
- com_err("ext2fs_read_bb_FILE", retval,
+ com_err("ext2fs_read_bb_FILE", retval, "%s",
_("while reading in list of bad blocks from file"));
exit(1);
}
@@ -227,7 +257,7 @@ static void test_disk(ext2_filsys fs, badblocks_list *bb_list)
retval = ext2fs_read_bb_FILE(fs, f, bb_list, invalid_block);
pclose(f);
if (retval) {
- com_err("ext2fs_read_bb_FILE", retval,
+ com_err("ext2fs_read_bb_FILE", retval, "%s",
_("while processing list of bad blocks from program"));
exit(1);
}
@@ -298,7 +328,7 @@ _("Warning: the backup superblock/group descriptors at block %u contain\n"
*/
retval = ext2fs_badblocks_list_iterate_begin(bb_list, &bb_iter);
if (retval) {
- com_err("ext2fs_badblocks_list_iterate_begin", retval,
+ com_err("ext2fs_badblocks_list_iterate_begin", retval, "%s",
_("while marking bad blocks as used"));
exit(1);
}
@@ -307,6 +337,41 @@ _("Warning: the backup superblock/group descriptors at block %u contain\n"
ext2fs_badblocks_list_iterate_end(bb_iter);
}
+static errcode_t packed_allocate_tables(ext2_filsys fs)
+{
+ errcode_t retval;
+ dgrp_t i;
+ blk64_t goal = 0;
+
+ for (i = 0; i < fs->group_desc_count; i++) {
+ retval = ext2fs_new_block2(fs, goal, NULL, &goal);
+ if (retval)
+ return retval;
+ ext2fs_block_alloc_stats2(fs, goal, +1);
+ ext2fs_block_bitmap_loc_set(fs, i, goal);
+ }
+ for (i = 0; i < fs->group_desc_count; i++) {
+ retval = ext2fs_new_block2(fs, goal, NULL, &goal);
+ if (retval)
+ return retval;
+ ext2fs_block_alloc_stats2(fs, goal, +1);
+ ext2fs_inode_bitmap_loc_set(fs, i, goal);
+ }
+ for (i = 0; i < fs->group_desc_count; i++) {
+ blk64_t end = ext2fs_blocks_count(fs->super) - 1;
+ retval = ext2fs_get_free_blocks2(fs, goal, end,
+ fs->inode_blocks_per_group,
+ fs->block_map, &goal);
+ if (retval)
+ return retval;
+ ext2fs_block_alloc_stats_range(fs, goal,
+ fs->inode_blocks_per_group, +1);
+ ext2fs_inode_table_loc_set(fs, i, goal);
+ ext2fs_group_desc_csum_set(fs, i);
+ }
+ return 0;
+}
+
static void write_inode_tables(ext2_filsys fs, int lazy_flag, int itable_zeroed)
{
errcode_t retval;
@@ -358,31 +423,29 @@ static void create_root_dir(ext2_filsys fs)
{
errcode_t retval;
struct ext2_inode inode;
- __u32 uid, gid;
retval = ext2fs_mkdir(fs, EXT2_ROOT_INO, EXT2_ROOT_INO, 0);
if (retval) {
- com_err("ext2fs_mkdir", retval, _("while creating root dir"));
+ com_err("ext2fs_mkdir", retval, "%s",
+ _("while creating root dir"));
exit(1);
}
- if (geteuid()) {
+ if (root_uid != 0 || root_gid != 0) {
retval = ext2fs_read_inode(fs, EXT2_ROOT_INO, &inode);
if (retval) {
- com_err("ext2fs_read_inode", retval,
+ com_err("ext2fs_read_inode", retval, "%s",
_("while reading root inode"));
exit(1);
}
- uid = getuid();
- inode.i_uid = uid;
- ext2fs_set_i_uid_high(inode, uid >> 16);
- if (uid) {
- gid = getgid();
- inode.i_gid = gid;
- ext2fs_set_i_gid_high(inode, gid >> 16);
- }
+
+ inode.i_uid = root_uid;
+ ext2fs_set_i_uid_high(inode, root_uid >> 16);
+ inode.i_gid = root_gid;
+ ext2fs_set_i_gid_high(inode, root_gid >> 16);
+
retval = ext2fs_write_new_inode(fs, EXT2_ROOT_INO, &inode);
if (retval) {
- com_err("ext2fs_write_inode", retval,
+ com_err("ext2fs_write_inode", retval, "%s",
_("while setting root inode ownership"));
exit(1);
}
@@ -400,14 +463,14 @@ static void create_lost_and_found(ext2_filsys fs)
fs->umask = 077;
retval = ext2fs_mkdir(fs, EXT2_ROOT_INO, 0, name);
if (retval) {
- com_err("ext2fs_mkdir", retval,
+ com_err("ext2fs_mkdir", retval, "%s",
_("while creating /lost+found"));
exit(1);
}
retval = ext2fs_lookup(fs, EXT2_ROOT_INO, name, strlen(name), 0, &ino);
if (retval) {
- com_err("ext2_lookup", retval,
+ com_err("ext2_lookup", retval, "%s",
_("while looking up /lost+found"));
exit(1);
}
@@ -420,7 +483,7 @@ static void create_lost_and_found(ext2_filsys fs)
break;
retval = ext2fs_expand_dir(fs, ino);
if (retval) {
- com_err("ext2fs_expand_dir", retval,
+ com_err("ext2fs_expand_dir", retval, "%s",
_("while expanding /lost+found"));
exit(1);
}
@@ -435,7 +498,7 @@ static void create_bad_block_inode(ext2_filsys fs, badblocks_list bb_list)
ext2fs_inode_alloc_stats2(fs, EXT2_BAD_INO, +1, 0);
retval = ext2fs_update_bb_inode(fs, bb_list);
if (retval) {
- com_err("ext2fs_update_bb_inode", retval,
+ com_err("ext2fs_update_bb_inode", retval, "%s",
_("while setting bad block inode"));
exit(1);
}
@@ -504,7 +567,7 @@ static void create_journal_dev(ext2_filsys fs)
retval = ext2fs_create_journal_superblock(fs,
ext2fs_blocks_count(fs->super), 0, &buf);
if (retval) {
- com_err("create_journal_dev", retval,
+ com_err("create_journal_dev", retval, "%s",
_("while initializing journal superblock"));
exit(1);
}
@@ -542,7 +605,7 @@ write_superblock:
fs->super->s_first_data_block+1,
1, buf);
if (retval) {
- com_err("create_journal_dev", retval,
+ com_err("create_journal_dev", retval, "%s",
_("while writing journal superblock"));
exit(1);
}
@@ -557,6 +620,14 @@ static void show_stats(ext2_filsys fs)
dgrp_t i;
int need, col_left;
+ if (!verbose) {
+ printf(_("Creating filesystem with %llu %dk blocks and "
+ "%u inodes\n"),
+ ext2fs_blocks_count(s), fs->blocksize >> 10,
+ s->s_inodes_count);
+ goto skip_details;
+ }
+
if (ext2fs_blocks_count(&fs_param) != ext2fs_blocks_count(s))
fprintf(stderr, _("warning: %llu blocks unused.\n\n"),
ext2fs_blocks_count(&fs_param) - ext2fs_blocks_count(s));
@@ -586,6 +657,8 @@ static void show_stats(ext2_filsys fs)
ext2fs_r_blocks_count(s),
100.0 * ext2fs_r_blocks_count(s) / ext2fs_blocks_count(s));
printf(_("First data block=%u\n"), s->s_first_data_block);
+ if (root_uid != 0 || root_gid != 0)
+ printf(_("Root directory owner=%u:%u\n"), root_uid, root_gid);
if (s->s_reserved_gdt_blocks)
printf(_("Maximum filesystem blocks=%lu\n"),
(s->s_reserved_gdt_blocks + fs->desc_blocks) *
@@ -603,12 +676,15 @@ static void show_stats(ext2_filsys fs)
s->s_blocks_per_group, s->s_clusters_per_group);
printf(_("%u inodes per group\n"), s->s_inodes_per_group);
+skip_details:
if (fs->group_desc_count == 1) {
printf("\n");
return;
}
- printf(_("Superblock backups stored on blocks: "));
+ if (!e2p_is_null_uuid(s->s_uuid))
+ printf(_("Filesystem UUID: %s\n"), e2p_uuid2str(s->s_uuid));
+ printf("%s", _("Superblock backups stored on blocks: "));
group_block = s->s_first_data_block;
col_left = 0;
for (i = 1; i < fs->group_desc_count; i++) {
@@ -661,7 +737,7 @@ static void parse_extended_opts(struct ext2_super_block *param,
len = strlen(opts);
buf = malloc(len+1);
if (!buf) {
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("Couldn't allocate memory to parse options!\n"));
exit(1);
}
@@ -678,7 +754,51 @@ static void parse_extended_opts(struct ext2_super_block *param,
*arg = 0;
arg++;
}
- if (strcmp(token, "mmp_update_interval") == 0) {
+ if (strcmp(token, "desc-size") == 0 ||
+ strcmp(token, "desc_size") == 0) {
+ int desc_size;
+
+ if (!(fs_param.s_feature_incompat &
+ EXT4_FEATURE_INCOMPAT_64BIT)) {
+ fprintf(stderr,
+ _("%s requires '-O 64bit'\n"), token);
+ r_usage++;
+ continue;
+ }
+ if (param->s_reserved_gdt_blocks != 0) {
+ fprintf(stderr,
+ _("'%s' must be before 'resize=%u'\n"),
+ token, param->s_reserved_gdt_blocks);
+ r_usage++;
+ continue;
+ }
+ if (!arg) {
+ r_usage++;
+ badopt = token;
+ continue;
+ }
+ desc_size = strtoul(arg, &p, 0);
+ if (*p || (desc_size & (desc_size - 1))) {
+ fprintf(stderr,
+ _("Invalid desc_size: '%s'\n"), arg);
+ r_usage++;
+ continue;
+ }
+ param->s_desc_size = desc_size;
+ } else if (strcmp(token, "offset") == 0) {
+ if (!arg) {
+ r_usage++;
+ badopt = token;
+ continue;
+ }
+ offset = strtoull(arg, &p, 0);
+ if (*p) {
+ fprintf(stderr, _("Invalid offset: %s\n"),
+ arg);
+ r_usage++;
+ continue;
+ }
+ } else if (strcmp(token, "mmp_update_interval") == 0) {
if (!arg) {
r_usage++;
badopt = token;
@@ -692,6 +812,28 @@ static void parse_extended_opts(struct ext2_super_block *param,
r_usage++;
continue;
}
+ } else if (strcmp(token, "num_backup_sb") == 0) {
+ if (!arg) {
+ r_usage++;
+ badopt = token;
+ continue;
+ }
+ num_backups = strtoul(arg, &p, 0);
+ if (*p || num_backups > 2) {
+ fprintf(stderr,
+ _("Invalid # of backup "
+ "superbocks: %s\n"),
+ arg);
+ r_usage++;
+ continue;
+ }
+ } else if (strcmp(token, "packed_meta_blocks") == 0) {
+ if (arg)
+ packed_meta_blocks = strtoul(arg, &p, 0);
+ else
+ packed_meta_blocks = 1;
+ if (packed_meta_blocks)
+ journal_location = 0;
} else if (strcmp(token, "stride") == 0) {
if (!arg) {
r_usage++;
@@ -745,7 +887,7 @@ static void parse_extended_opts(struct ext2_super_block *param,
continue;
}
if (resize <= ext2fs_blocks_count(param)) {
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("The resize maximum must be greater "
"than the filesystem size.\n"));
r_usage++;
@@ -769,7 +911,7 @@ static void parse_extended_opts(struct ext2_super_block *param,
if (rsv_gdb > 0) {
if (param->s_rev_level == EXT2_GOOD_OLD_REV) {
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("On-line resizing not supported with revision 0 filesystems\n"));
free(buf);
exit(1);
@@ -792,6 +934,29 @@ static void parse_extended_opts(struct ext2_super_block *param,
EXT2_MKJOURNAL_LAZYINIT : 0;
else
journal_flags |= EXT2_MKJOURNAL_LAZYINIT;
+ } else if (!strcmp(token, "root_owner")) {
+ if (arg) {
+ root_uid = strtoul(arg, &p, 0);
+ if (*p != ':') {
+ fprintf(stderr,
+ _("Invalid root_owner: '%s'\n"),
+ arg);
+ r_usage++;
+ continue;
+ }
+ p++;
+ root_gid = strtoul(p, &p, 0);
+ if (*p) {
+ fprintf(stderr,
+ _("Invalid root_owner: '%s'\n"),
+ arg);
+ r_usage++;
+ continue;
+ }
+ } else {
+ root_uid = getuid();
+ root_gid = getgid();
+ }
} else if (!strcmp(token, "discard")) {
discard = 1;
} else if (!strcmp(token, "nodiscard")) {
@@ -824,11 +989,17 @@ static void parse_extended_opts(struct ext2_super_block *param,
"and may take an argument which\n"
"\tis set off by an equals ('=') sign.\n\n"
"Valid extended options are:\n"
+ "\tmmp_update_interval=<interval>\n"
+ "\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+ "\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+ "\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+ "\troot_uid=<uid of root directory>\n"
+ "\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -851,7 +1022,8 @@ static __u32 ok_features[3] = {
EXT3_FEATURE_COMPAT_HAS_JOURNAL |
EXT2_FEATURE_COMPAT_RESIZE_INODE |
EXT2_FEATURE_COMPAT_DIR_INDEX |
- EXT2_FEATURE_COMPAT_EXT_ATTR,
+ EXT2_FEATURE_COMPAT_EXT_ATTR |
+ EXT4_FEATURE_COMPAT_SPARSE_SUPER2,
/* Incompat */
EXT2_FEATURE_INCOMPAT_FILETYPE|
EXT3_FEATURE_INCOMPAT_EXTENTS|
@@ -961,7 +1133,7 @@ static void print_str_list(char **list)
/*
* Return TRUE if the profile has the given subsection
*/
-static int profile_has_subsection(profile_t profile, const char *section,
+static int profile_has_subsection(profile_t prof, const char *section,
const char *subsection)
{
void *state;
@@ -973,7 +1145,7 @@ static int profile_has_subsection(profile_t profile, const char *section,
names[1] = subsection;
names[2] = 0;
- if (profile_iterator_create(profile, names,
+ if (profile_iterator_create(prof, names,
PROFILE_ITER_LIST_SECTION |
PROFILE_ITER_RELATIONS_ONLY, &state))
return 0;
@@ -989,7 +1161,7 @@ static int profile_has_subsection(profile_t profile, const char *section,
static char **parse_fs_type(const char *fs_type,
const char *usage_types,
- struct ext2_super_block *fs_param,
+ struct ext2_super_block *sb,
blk64_t fs_blocks_count,
char *progname)
{
@@ -1047,16 +1219,16 @@ static char **parse_fs_type(const char *fs_type,
"%s filesystem type.\n"), ext_type);
if (!strcmp(ext_type, "ext3") || !strcmp(ext_type, "ext4") ||
!strcmp(ext_type, "ext4dev")) {
- printf(_("You probably need to install an updated "
- "mke2fs.conf file.\n\n"));
+ printf("%s", _("You probably need to install an "
+ "updated mke2fs.conf file.\n\n"));
}
if (!force) {
- printf(_("Aborting...\n"));
+ printf("%s", _("Aborting...\n"));
exit(1);
}
}
- meg = (1024 * 1024) / EXT2_BLOCK_SIZE(fs_param);
+ meg = (1024 * 1024) / EXT2_BLOCK_SIZE(sb);
if (fs_blocks_count < 3 * meg)
size_type = "floppy";
else if (fs_blocks_count < 512 * meg)
@@ -1073,6 +1245,7 @@ static char **parse_fs_type(const char *fs_type,
parse_str = malloc(strlen(usage_types)+1);
if (!parse_str) {
+ free(profile_type);
free(list.list);
return 0;
}
@@ -1097,10 +1270,8 @@ static char **parse_fs_type(const char *fs_type,
}
if (t)
cp = t+1;
- else {
- cp = "";
+ else
break;
- }
}
free(parse_str);
free(profile_type);
@@ -1109,15 +1280,15 @@ static char **parse_fs_type(const char *fs_type,
return (list.list);
}
-static char *get_string_from_profile(char **fs_types, const char *opt,
+char *get_string_from_profile(char **types, const char *opt,
const char *def_val)
{
char *ret = 0;
int i;
- for (i=0; fs_types[i]; i++);
+ for (i=0; types[i]; i++);
for (i-=1; i >=0 ; i--) {
- profile_get_string(profile, "fs_types", fs_types[i],
+ profile_get_string(profile, "fs_types", types[i],
opt, 0, &ret);
if (ret)
return ret;
@@ -1126,36 +1297,36 @@ static char *get_string_from_profile(char **fs_types, const char *opt,
return (ret);
}
-static int get_int_from_profile(char **fs_types, const char *opt, int def_val)
+int get_int_from_profile(char **types, const char *opt, int def_val)
{
int ret;
char **cpp;
profile_get_integer(profile, "defaults", opt, 0, def_val, &ret);
- for (cpp = fs_types; *cpp; cpp++)
+ for (cpp = types; *cpp; cpp++)
profile_get_integer(profile, "fs_types", *cpp, opt, ret, &ret);
return ret;
}
-static double get_double_from_profile(char **fs_types, const char *opt,
+static double get_double_from_profile(char **types, const char *opt,
double def_val)
{
double ret;
char **cpp;
profile_get_double(profile, "defaults", opt, 0, def_val, &ret);
- for (cpp = fs_types; *cpp; cpp++)
+ for (cpp = types; *cpp; cpp++)
profile_get_double(profile, "fs_types", *cpp, opt, ret, &ret);
return ret;
}
-static int get_bool_from_profile(char **fs_types, const char *opt, int def_val)
+int get_bool_from_profile(char **types, const char *opt, int def_val)
{
int ret;
char **cpp;
profile_get_boolean(profile, "defaults", opt, 0, def_val, &ret);
- for (cpp = fs_types; *cpp; cpp++)
+ for (cpp = types; *cpp; cpp++)
profile_get_boolean(profile, "fs_types", *cpp, opt, ret, &ret);
return ret;
}
@@ -1217,7 +1388,7 @@ out:
static void PRS(int argc, char *argv[])
{
- int b, c;
+ int b, c, flags;
int cluster_size = 0;
char *tmp, **cpp;
int blocksize = 0;
@@ -1226,18 +1397,29 @@ static void PRS(int argc, char *argv[])
unsigned long flex_bg_size = 0;
double reserved_ratio = -1.0;
int lsector_size = 0, psector_size = 0;
- int show_version_only = 0;
+ int show_version_only = 0, is_device = 0;
unsigned long long num_inodes = 0; /* unsigned long long to catch too-large input */
errcode_t retval;
char * oldpath = getenv("PATH");
char * extended_opts = 0;
char * fs_type = 0;
char * usage_types = 0;
- blk64_t dev_size;
+ /*
+ * NOTE: A few words about fs_blocks_count and blocksize:
+ *
+ * Initially, blocksize is set to zero, which implies 1024.
+ * If -b is specified, blocksize is updated to the user's value.
+ *
+ * Next, the device size or the user's "blocks" command line argument
+ * is used to set fs_blocks_count; the units are blocksize.
+ *
+ * Later, if blocksize hasn't been set and the profile specifies a
+ * blocksize, then blocksize is updated and fs_blocks_count is scaled
+ * appropriately. Note the change in units!
+ *
+ * Finally, we complain about fs_blocks_count > 2^32 on a non-64bit fs.
+ */
blk64_t fs_blocks_count = 0;
-#ifdef __linux__
- struct utsname ut;
-#endif
long sysval;
int s_opt = -1, r_opt = -1;
char *fs_features = 0;
@@ -1249,7 +1431,8 @@ static void PRS(int argc, char *argv[])
pathlen += strlen(oldpath);
newpath = malloc(pathlen);
if (!newpath) {
- fprintf(stderr, _("Couldn't allocate memory for new PATH.\n"));
+ fprintf(stderr, "%s",
+ _("Couldn't allocate memory for new PATH.\n"));
exit(1);
}
strcpy(newpath, PATH_SET);
@@ -1302,15 +1485,8 @@ profile_error:
memset(&fs_param, 0, sizeof(struct ext2_super_block));
fs_param.s_rev_level = 1; /* Create revision 1 filesystems now */
-#ifdef __linux__
- if (uname(&ut)) {
- perror("uname");
- exit(1);
- }
- linux_version_code = parse_version_number(ut.release);
- if (linux_version_code && linux_version_code < (2*65536 + 2*256))
+ if (is_before_linux_ver(2, 2))
fs_param.s_rev_level = 0;
-#endif
if (argc && *argv) {
program_name = get_progname(*argv);
@@ -1325,10 +1501,10 @@ profile_error:
"b:cg:i:jl:m:no:qr:s:t:vC:DE:FG:I:J:KL:M:N:O:R:ST:U:V")) != EOF) {
switch (c) {
case 'b':
- blocksize = strtol(optarg, &tmp, 0);
+ blocksize = parse_num_blocks2(optarg, -1);
b = (blocksize > 0) ? blocksize : -blocksize;
if (b < EXT2_MIN_BLOCK_SIZE ||
- b > EXT2_MAX_BLOCK_SIZE || *tmp) {
+ b > EXT2_MAX_BLOCK_SIZE) {
com_err(program_name, 0,
_("invalid block size - %s"), optarg);
exit(1);
@@ -1346,9 +1522,9 @@ profile_error:
cflag++;
break;
case 'C':
- cluster_size = strtoul(optarg, &tmp, 0);
- if (cluster_size < EXT2_MIN_CLUSTER_SIZE ||
- cluster_size > EXT2_MAX_CLUSTER_SIZE || *tmp) {
+ cluster_size = parse_num_blocks2(optarg, -1);
+ if (cluster_size <= EXT2_MIN_CLUSTER_SIZE ||
+ cluster_size > EXT2_MAX_CLUSTER_SIZE) {
com_err(program_name, 0,
_("invalid cluster size - %s"),
optarg);
@@ -1358,15 +1534,25 @@ profile_error:
case 'D':
direct_io = 1;
break;
+ case 'R':
+ com_err(program_name, 0, "%s",
+ _("'-R' is deprecated, use '-E' instead"));
+ /* fallthrough */
+ case 'E':
+ extended_opts = optarg;
+ break;
+ case 'F':
+ force++;
+ break;
case 'g':
fs_param.s_blocks_per_group = strtoul(optarg, &tmp, 0);
if (*tmp) {
- com_err(program_name, 0,
- _("Illegal number for blocks per group"));
+ com_err(program_name, 0, "%s",
+ _("Illegal number for blocks per group"));
exit(1);
}
if ((fs_param.s_blocks_per_group % 8) != 0) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("blocks per group must be multiple of 8"));
exit(1);
}
@@ -1374,13 +1560,13 @@ profile_error:
case 'G':
flex_bg_size = strtoul(optarg, &tmp, 0);
if (*tmp) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("Illegal number for flex_bg size"));
exit(1);
}
if (flex_bg_size < 1 ||
(flex_bg_size & (flex_bg_size-1)) != 0) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("flex_bg size must be a power of 2"));
exit(1);
}
@@ -1397,29 +1583,42 @@ profile_error:
exit(1);
}
break;
+ case 'I':
+ inode_size = strtoul(optarg, &tmp, 0);
+ if (*tmp) {
+ com_err(program_name, 0,
+ _("invalid inode size - %s"), optarg);
+ exit(1);
+ }
+ break;
+ case 'j':
+ if (!journal_size)
+ journal_size = -1;
+ break;
case 'J':
parse_journal_opts(optarg);
break;
case 'K':
- fprintf(stderr, _("Warning: -K option is deprecated and "
- "should not be used anymore. Use "
- "\'-E nodiscard\' extended option "
- "instead!\n"));
+ fprintf(stderr, "%s",
+ _("Warning: -K option is deprecated and "
+ "should not be used anymore. Use "
+ "\'-E nodiscard\' extended option "
+ "instead!\n"));
discard = 0;
break;
- case 'j':
- if (!journal_size)
- journal_size = -1;
- break;
case 'l':
- bad_blocks_filename = malloc(strlen(optarg)+1);
+ bad_blocks_filename = realloc(bad_blocks_filename,
+ strlen(optarg) + 1);
if (!bad_blocks_filename) {
- com_err(program_name, ENOMEM,
+ com_err(program_name, ENOMEM, "%s",
_("in malloc for bad_blocks_filename"));
exit(1);
}
strcpy(bad_blocks_filename, optarg);
break;
+ case 'L':
+ volume_label = optarg;
+ break;
case 'm':
reserved_ratio = strtod(optarg, &tmp);
if ( *tmp || reserved_ratio > 50 ||
@@ -1430,12 +1629,26 @@ profile_error:
exit(1);
}
break;
+ case 'M':
+ mount_dir = optarg;
+ break;
case 'n':
noaction++;
break;
+ case 'N':
+ num_inodes = strtoul(optarg, &tmp, 0);
+ if (*tmp) {
+ com_err(program_name, 0,
+ _("bad num inodes - %s"), optarg);
+ exit(1);
+ }
+ break;
case 'o':
creator_os = optarg;
break;
+ case 'O':
+ fs_features = optarg;
+ break;
case 'q':
quiet = 1;
break;
@@ -1451,47 +1664,12 @@ profile_error:
case 's': /* deprecated */
s_opt = atoi(optarg);
break;
- case 'I':
- inode_size = strtoul(optarg, &tmp, 0);
- if (*tmp) {
- com_err(program_name, 0,
- _("invalid inode size - %s"), optarg);
- exit(1);
- }
- break;
- case 'v':
- verbose = 1;
- break;
- case 'F':
- force++;
- break;
- case 'L':
- volume_label = optarg;
- break;
- case 'M':
- mount_dir = optarg;
- break;
- case 'N':
- num_inodes = strtoul(optarg, &tmp, 0);
- if (*tmp) {
- com_err(program_name, 0,
- _("bad num inodes - %s"), optarg);
- exit(1);
- }
- break;
- case 'O':
- fs_features = optarg;
- break;
- case 'E':
- case 'R':
- extended_opts = optarg;
- break;
case 'S':
super_only = 1;
break;
case 't':
if (fs_type) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("The -t option may only be used once"));
exit(1);
}
@@ -1499,7 +1677,7 @@ profile_error:
break;
case 'T':
if (usage_types) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("The -T option may only be used once"));
exit(1);
}
@@ -1508,6 +1686,9 @@ profile_error:
case 'U':
fs_uuid = optarg;
break;
+ case 'v':
+ verbose = 1;
+ break;
case 'V':
/* Print version number and exit */
show_version_only++;
@@ -1581,8 +1762,18 @@ profile_error:
if (optind < argc)
usage();
- if (!force)
- check_plausibility(device_name);
+ profile_get_integer(profile, "options", "proceed_delay", 0, 0,
+ &proceed_delay);
+
+ /* The isatty() test is so we don't break existing scripts */
+ flags = CREATE_FILE;
+ if (isatty(0) && isatty(1))
+ flags |= CHECK_FS_EXIST;
+ if (!quiet)
+ flags |= VERBOSE_CREATE;
+ if (!check_plausibility(device_name, flags, &is_device) && !force)
+ proceed_question(proceed_delay);
+
check_mount(device_name, force, _("filesystem"));
/* Determine the size of the device (if possible) */
@@ -1595,20 +1786,20 @@ profile_error:
&dev_size);
if (retval && (retval != EXT2_ET_UNIMPLEMENTED)) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while trying to determine filesystem size"));
exit(1);
}
if (!fs_blocks_count) {
if (retval == EXT2_ET_UNIMPLEMENTED) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("Couldn't determine device size; you "
"must specify\nthe size of the "
"filesystem\n"));
exit(1);
} else {
if (dev_size == 0) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("Device size reported to be zero. "
"Invalid partition specified, or\n\t"
"partition table wasn't reread "
@@ -1624,10 +1815,10 @@ profile_error:
fs_blocks_count &= ~((blk64_t) ((sys_page_size /
EXT2_BLOCK_SIZE(&fs_param))-1));
}
- } else if (!force && (fs_blocks_count > dev_size)) {
- com_err(program_name, 0,
+ } else if (!force && is_device && (fs_blocks_count > dev_size)) {
+ com_err(program_name, 0, "%s",
_("Filesystem larger than apparent device size."));
- proceed_question();
+ proceed_question(proceed_delay);
}
if (!fs_type)
@@ -1646,7 +1837,7 @@ profile_error:
fs_blocks_count ? fs_blocks_count : dev_size,
argv[0]);
if (!fs_types) {
- fprintf(stderr, _("Failed to parse fs types list\n"));
+ fprintf(stderr, "%s", _("Failed to parse fs types list\n"));
exit(1);
}
@@ -1683,15 +1874,69 @@ profile_error:
if (tmp)
free(tmp);
+ /* Get the hardware sector sizes, if available */
+ retval = ext2fs_get_device_sectsize(device_name, &lsector_size);
+ if (retval) {
+ com_err(program_name, retval, "%s",
+ _("while trying to determine hardware sector size"));
+ exit(1);
+ }
+ retval = ext2fs_get_device_phys_sectsize(device_name, &psector_size);
+ if (retval) {
+ com_err(program_name, retval, "%s",
+ _("while trying to determine physical sector size"));
+ exit(1);
+ }
+
+ tmp = getenv("MKE2FS_DEVICE_SECTSIZE");
+ if (tmp != NULL)
+ lsector_size = atoi(tmp);
+ tmp = getenv("MKE2FS_DEVICE_PHYS_SECTSIZE");
+ if (tmp != NULL)
+ psector_size = atoi(tmp);
+
+ /* Older kernels may not have physical/logical distinction */
+ if (!psector_size)
+ psector_size = lsector_size;
+
+ if (blocksize <= 0) {
+ use_bsize = get_int_from_profile(fs_types, "blocksize", 4096);
+
+ if (use_bsize == -1) {
+ use_bsize = sys_page_size;
+ if (is_before_linux_ver(2, 6) && use_bsize > 4096)
+ use_bsize = 4096;
+ }
+ if (lsector_size && use_bsize < lsector_size)
+ use_bsize = lsector_size;
+ if ((blocksize < 0) && (use_bsize < (-blocksize)))
+ use_bsize = -blocksize;
+ blocksize = use_bsize;
+ fs_blocks_count /= (blocksize / 1024);
+ } else {
+ if (blocksize < lsector_size) { /* Impossible */
+ com_err(program_name, EINVAL, "%s",
+ _("while setting blocksize; too small "
+ "for device\n"));
+ exit(1);
+ } else if ((blocksize < psector_size) &&
+ (psector_size <= sys_page_size)) { /* Suboptimal */
+ fprintf(stderr, _("Warning: specified blocksize %d is "
+ "less than device physical sectorsize %d\n"),
+ blocksize, psector_size);
+ }
+ }
+
+ fs_param.s_log_block_size =
+ int_log2(blocksize >> EXT2_MIN_BLOCK_LOG_SIZE);
+
/*
* We now need to do a sanity check of fs_blocks_count for
* 32-bit vs 64-bit block number support.
*/
- if ((fs_blocks_count > MAX_32_NUM) && (blocksize == 0)) {
- fs_blocks_count /= 4; /* Try using a 4k blocksize */
- blocksize = 4096;
- fs_param.s_log_block_size = 2;
- }
+ if ((fs_blocks_count > MAX_32_NUM) &&
+ (fs_param.s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT))
+ fs_param.s_feature_compat &= ~EXT2_FEATURE_COMPAT_RESIZE_INODE;
if ((fs_blocks_count > MAX_32_NUM) &&
!(fs_param.s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) &&
get_bool_from_profile(fs_types, "auto_64-bit_support", 0)) {
@@ -1723,14 +1968,15 @@ profile_error:
if (r_opt == EXT2_GOOD_OLD_REV &&
(fs_param.s_feature_compat || fs_param.s_feature_incompat ||
fs_param.s_feature_ro_compat)) {
- fprintf(stderr, _("Filesystem features not supported "
- "with revision 0 filesystems\n"));
+ fprintf(stderr, "%s", _("Filesystem features not supported "
+ "with revision 0 filesystems\n"));
exit(1);
}
if (s_opt > 0) {
if (r_opt == EXT2_GOOD_OLD_REV) {
- fprintf(stderr, _("Sparse superblocks not supported "
+ fprintf(stderr, "%s",
+ _("Sparse superblocks not supported "
"with revision 0 filesystems\n"));
exit(1);
}
@@ -1742,8 +1988,8 @@ profile_error:
if (journal_size != 0) {
if (r_opt == EXT2_GOOD_OLD_REV) {
- fprintf(stderr, _("Journals not supported "
- "with revision 0 filesystems\n"));
+ fprintf(stderr, "%s", _("Journals not supported with "
+ "revision 0 filesystems\n"));
exit(1);
}
fs_param.s_feature_compat |=
@@ -1770,12 +2016,11 @@ profile_error:
fs_param.s_feature_ro_compat = 0;
}
- if ((fs_param.s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) &&
- (fs_param.s_feature_compat & EXT2_FEATURE_COMPAT_RESIZE_INODE)) {
- fprintf(stderr, _("The resize_inode and meta_bg features "
- "are not compatible.\n"
- "They can not be both enabled "
- "simultaneously.\n"));
+ /* Check the user's mkfs options for 64bit */
+ if ((fs_param.s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) &&
+ !(fs_param.s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS)) {
+ printf("%s", _("Extents MUST be enabled for a 64-bit "
+ "filesystem. Pass -O extents to rectify.\n"));
exit(1);
}
@@ -1784,63 +2029,6 @@ profile_error:
if ((fs_param.s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) &&
((tmp = getenv("MKE2FS_FIRST_META_BG"))))
fs_param.s_first_meta_bg = atoi(tmp);
-
- /* Get the hardware sector sizes, if available */
- retval = ext2fs_get_device_sectsize(device_name, &lsector_size);
- if (retval) {
- com_err(program_name, retval,
- _("while trying to determine hardware sector size"));
- exit(1);
- }
- retval = ext2fs_get_device_phys_sectsize(device_name, &psector_size);
- if (retval) {
- com_err(program_name, retval,
- _("while trying to determine physical sector size"));
- exit(1);
- }
-
- if ((tmp = getenv("MKE2FS_DEVICE_SECTSIZE")) != NULL)
- lsector_size = atoi(tmp);
- if ((tmp = getenv("MKE2FS_DEVICE_PHYS_SECTSIZE")) != NULL)
- psector_size = atoi(tmp);
-
- /* Older kernels may not have physical/logical distinction */
- if (!psector_size)
- psector_size = lsector_size;
-
- if (blocksize <= 0) {
- use_bsize = get_int_from_profile(fs_types, "blocksize", 4096);
-
- if (use_bsize == -1) {
- use_bsize = sys_page_size;
- if ((linux_version_code < (2*65536 + 6*256)) &&
- (use_bsize > 4096))
- use_bsize = 4096;
- }
- if (lsector_size && use_bsize < lsector_size)
- use_bsize = lsector_size;
- if ((blocksize < 0) && (use_bsize < (-blocksize)))
- use_bsize = -blocksize;
- blocksize = use_bsize;
- ext2fs_blocks_count_set(&fs_param,
- ext2fs_blocks_count(&fs_param) /
- (blocksize / 1024));
- } else {
- if (blocksize < lsector_size) { /* Impossible */
- com_err(program_name, EINVAL,
- _("while setting blocksize; too small "
- "for device\n"));
- exit(1);
- } else if ((blocksize < psector_size) &&
- (psector_size <= sys_page_size)) { /* Suboptimal */
- fprintf(stderr, _("Warning: specified blocksize %d is "
- "less than device physical sectorsize %d\n"),
- blocksize, psector_size);
- }
- }
-
- fs_param.s_log_block_size =
- int_log2(blocksize >> EXT2_MIN_BLOCK_LOG_SIZE);
if (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC) {
if (!cluster_size)
cluster_size = get_int_from_profile(fs_types,
@@ -1848,6 +2036,18 @@ profile_error:
blocksize*16);
fs_param.s_log_cluster_size =
int_log2(cluster_size >> EXT2_MIN_CLUSTER_LOG_SIZE);
+ if (fs_param.s_log_cluster_size &&
+ fs_param.s_log_cluster_size < fs_param.s_log_block_size) {
+ com_err(program_name, 0, "%s",
+ _("The cluster size may not be "
+ "smaller than the block size.\n"));
+ exit(1);
+ }
+ } else if (cluster_size) {
+ com_err(program_name, 0, "%s",
+ _("specifying a cluster size requires the "
+ "bigalloc feature"));
+ exit(1);
} else
fs_param.s_log_cluster_size = fs_param.s_log_block_size;
@@ -1874,15 +2074,25 @@ profile_error:
}
#endif
+ num_backups = get_int_from_profile(fs_types, "num_backup_sb", 2);
+
blocksize = EXT2_BLOCK_SIZE(&fs_param);
+ /*
+ * Initialize s_desc_size so that the parse_extended_opts()
+ * can correctly handle "-E resize=NNN" if the 64-bit option
+ * is set.
+ */
+ if (fs_param.s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ fs_param.s_desc_size = EXT2_MIN_DESC_SIZE_64BIT;
+
/* This check should happen beyond the last assignment to blocksize */
if (blocksize > sys_page_size) {
if (!force) {
com_err(program_name, 0,
_("%d-byte blocks too big for system (max %d)"),
blocksize, sys_page_size);
- proceed_question();
+ proceed_question(proceed_delay);
}
fprintf(stderr, _("Warning: %d-byte blocks too big for system "
"(max %d), forced to continue\n"),
@@ -1900,6 +2110,21 @@ profile_error:
journal_flags |= get_bool_from_profile(fs_types,
"lazy_journal_init", 0) ?
EXT2_MKJOURNAL_LAZYINIT : 0;
+ journal_flags |= EXT2_MKJOURNAL_NO_MNT_CHECK;
+
+ if (!journal_location_string)
+ journal_location_string = get_string_from_profile(fs_types,
+ "journal_location", "");
+ if ((journal_location == ~0ULL) && journal_location_string &&
+ *journal_location_string)
+ journal_location = parse_num_blocks2(journal_location_string,
+ fs_param.s_log_block_size);
+ free(journal_location_string);
+
+ packed_meta_blocks = get_bool_from_profile(fs_types,
+ "packed_meta_blocks", 0);
+ if (packed_meta_blocks)
+ journal_location = 0;
/* Get options from profile */
for (cpp = fs_types; *cpp; cpp++) {
@@ -1913,12 +2138,37 @@ profile_error:
if (extended_opts)
parse_extended_opts(&fs_param, extended_opts);
+ /* Can't support bigalloc feature without extents feature */
+ if ((fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC) &&
+ !(fs_param.s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS)) {
+ com_err(program_name, 0, "%s",
+ _("Can't support bigalloc feature without "
+ "extents feature"));
+ exit(1);
+ }
+
+ if ((fs_param.s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) &&
+ (fs_param.s_feature_compat & EXT2_FEATURE_COMPAT_RESIZE_INODE)) {
+ fprintf(stderr, "%s", _("The resize_inode and meta_bg "
+ "features are not compatible.\n"
+ "They can not be both enabled "
+ "simultaneously.\n"));
+ exit(1);
+ }
+
+ if (!quiet &&
+ (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC))
+ fprintf(stderr, "%s", _("\nWarning: the bigalloc feature is "
+ "still under development\n"
+ "See https://ext4.wiki.kernel.org/"
+ "index.php/Bigalloc for more information\n\n"));
+
/* Since sparse_super is the default, we would only have a problem
* here if it was explicitly disabled.
*/
if ((fs_param.s_feature_compat & EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
!(fs_param.s_feature_ro_compat&EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("reserved online resize blocks not supported "
"on non-sparse filesystem"));
exit(1);
@@ -1927,12 +2177,21 @@ profile_error:
if (fs_param.s_blocks_per_group) {
if (fs_param.s_blocks_per_group < 256 ||
fs_param.s_blocks_per_group > 8 * (unsigned) blocksize) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("blocks per group count out of range"));
exit(1);
}
}
+ /*
+ * If the bigalloc feature is enabled, then the -g option will
+ * specify the number of clusters per group.
+ */
+ if (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC) {
+ fs_param.s_clusters_per_group = fs_param.s_blocks_per_group;
+ fs_param.s_blocks_per_group = 0;
+ }
+
if (inode_size == 0)
inode_size = get_int_from_profile(fs_types, "inode_size", 0);
if (!flex_bg_size && (fs_param.s_feature_incompat &
@@ -1942,7 +2201,7 @@ profile_error:
if (flex_bg_size) {
if (!(fs_param.s_feature_incompat &
EXT4_FEATURE_INCOMPAT_FLEX_BG)) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("Flex_bg feature not enabled, so "
"flex_bg size may not be specified"));
exit(1);
@@ -1990,7 +2249,7 @@ profile_error:
fs_param.s_inodes_count = num_inodes ? num_inodes :
(ext2fs_blocks_count(&fs_param) * blocksize) / inode_ratio;
- if ((((long long)fs_param.s_inodes_count) *
+ if ((((unsigned long long)fs_param.s_inodes_count) *
(inode_size ? inode_size : EXT2_GOOD_OLD_INODE_SIZE)) >=
((ext2fs_blocks_count(&fs_param)) *
EXT2_BLOCK_SIZE(&fs_param))) {
@@ -2011,6 +2270,13 @@ profile_error:
ext2fs_r_blocks_count_set(&fs_param, reserved_ratio *
ext2fs_blocks_count(&fs_param) / 100.0);
+ if (fs_param.s_feature_compat & EXT4_FEATURE_COMPAT_SPARSE_SUPER2) {
+ if (num_backups >= 1)
+ fs_param.s_backup_bgs[0] = 1;
+ if (num_backups >= 2)
+ fs_param.s_backup_bgs[1] = ~0;
+ }
+
free(fs_type);
free(usage_types);
}
@@ -2070,7 +2336,7 @@ static int mke2fs_setup_tdb(const char *name, io_manager *io_ptr)
{
errcode_t retval = ENOMEM;
char *tdb_dir = NULL, *tdb_file = NULL;
- char *device_name, *tmp_name;
+ char *dev_name, *tmp_name;
int free_tdb_dir = 0;
/*
@@ -2086,26 +2352,27 @@ static int mke2fs_setup_tdb(const char *name, io_manager *io_ptr)
}
if (!strcmp(tdb_dir, "none") || (tdb_dir[0] == 0) ||
- access(tdb_dir, W_OK))
+ access(tdb_dir, W_OK)) {
+ if (free_tdb_dir)
+ free(tdb_dir);
return 0;
+ }
tmp_name = strdup(name);
if (!tmp_name)
goto errout;
- device_name = basename(tmp_name);
- tdb_file = malloc(strlen(tdb_dir) + 8 + strlen(device_name) + 7 + 1);
+ dev_name = basename(tmp_name);
+ tdb_file = malloc(strlen(tdb_dir) + 8 + strlen(dev_name) + 7 + 1);
if (!tdb_file) {
free(tmp_name);
goto errout;
}
- sprintf(tdb_file, "%s/mke2fs-%s.e2undo", tdb_dir, device_name);
+ sprintf(tdb_file, "%s/mke2fs-%s.e2undo", tdb_dir, dev_name);
free(tmp_name);
- if (!access(tdb_file, F_OK)) {
- if (unlink(tdb_file) < 0) {
- retval = errno;
- goto errout;
- }
+ if ((unlink(tdb_file) < 0) && (errno != ENOENT)) {
+ retval = errno;
+ goto errout;
}
set_undo_io_backing_manager(*io_ptr);
@@ -2126,7 +2393,7 @@ errout:
if (free_tdb_dir)
free(tdb_dir);
free(tdb_file);
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while trying to setup undo file\n"));
return retval;
}
@@ -2181,29 +2448,43 @@ static int mke2fs_discard_device(ext2_filsys fs)
static void fix_cluster_bg_counts(ext2_filsys fs)
{
- blk64_t cluster, num_clusters, tot_free;
- int grp_free, num_free, group, num;
-
- num_clusters = EXT2FS_B2C(fs, ext2fs_blocks_count(fs->super));
- tot_free = num_free = num = group = grp_free = 0;
- for (cluster = EXT2FS_B2C(fs, fs->super->s_first_data_block);
- cluster < num_clusters; cluster++) {
- if (!ext2fs_test_block_bitmap2(fs->block_map,
- EXT2FS_C2B(fs, cluster))) {
- grp_free++;
- tot_free++;
+ blk64_t block, num_blocks, last_block, next;
+ blk64_t tot_free = 0;
+ errcode_t retval;
+ dgrp_t group = 0;
+ int grp_free = 0;
+
+ num_blocks = ext2fs_blocks_count(fs->super);
+ last_block = ext2fs_group_last_block2(fs, group);
+ block = fs->super->s_first_data_block;
+ while (block < num_blocks) {
+ retval = ext2fs_find_first_zero_block_bitmap2(fs->block_map,
+ block, last_block, &next);
+ if (retval == 0)
+ block = next;
+ else {
+ block = last_block + 1;
+ goto next_bg;
}
- num++;
- if ((num == fs->super->s_clusters_per_group) ||
- (cluster == num_clusters-1)) {
+
+ retval = ext2fs_find_first_set_block_bitmap2(fs->block_map,
+ block, last_block, &next);
+ if (retval)
+ next = last_block + 1;
+ grp_free += EXT2FS_NUM_B2C(fs, next - block);
+ tot_free += next - block;
+ block = next;
+
+ if (block > last_block) {
+ next_bg:
ext2fs_bg_free_blocks_count_set(fs, group, grp_free);
ext2fs_group_desc_csum_set(fs, group);
- num = 0;
grp_free = 0;
group++;
+ last_block = ext2fs_group_last_block2(fs, group);
}
}
- ext2fs_free_blocks_count_set(fs->super, EXT2FS_C2B(fs, tot_free));
+ ext2fs_free_blocks_count_set(fs->super, tot_free);
}
static int create_quota_inodes(ext2_filsys fs)
@@ -2223,14 +2504,14 @@ int main (int argc, char *argv[])
errcode_t retval = 0;
ext2_filsys fs;
badblocks_list bb_list = 0;
- unsigned int journal_blocks;
+ unsigned int journal_blocks = 0;
unsigned int i, checkinterval;
int max_mnt_count;
int val, hash_alg;
int flags;
int old_bitmaps;
io_manager io_ptr;
- char tdb_string[40];
+ char opt_string[40];
char *hash_alg_str;
int itable_zeroed = 0;
@@ -2276,25 +2557,38 @@ int main (int argc, char *argv[])
flags |= EXT2_FLAG_PRINT_PROGRESS;
retval = ext2fs_initialize(device_name, flags, &fs_param, io_ptr, &fs);
if (retval) {
- com_err(device_name, retval, _("while setting up superblock"));
+ com_err(device_name, retval, "%s",
+ _("while setting up superblock"));
exit(1);
}
+ /* Calculate journal blocks */
+ if (!journal_device && ((journal_size) ||
+ (fs_param.s_feature_compat &
+ EXT3_FEATURE_COMPAT_HAS_JOURNAL)))
+ journal_blocks = figure_journal_size(journal_size, fs);
+
/* Can't undo discard ... */
- if (!noaction && discard && (io_ptr != undo_io_manager)) {
+ if (!noaction && discard && dev_size && (io_ptr != undo_io_manager)) {
retval = mke2fs_discard_device(fs);
if (!retval && io_channel_discard_zeroes_data(fs->io)) {
if (verbose)
- printf(_("Discard succeeded and will return 0s "
- " - skipping inode table wipe\n"));
+ printf("%s",
+ _("Discard succeeded and will return "
+ "0s - skipping inode table wipe\n"));
lazy_itable_init = 1;
itable_zeroed = 1;
+ zero_hugefile = 0;
}
}
- sprintf(tdb_string, "tdb_data_size=%d", fs->blocksize <= 4096 ?
+ sprintf(opt_string, "tdb_data_size=%d", fs->blocksize <= 4096 ?
32768 : fs->blocksize * 8);
- io_channel_set_options(fs->io, tdb_string);
+ io_channel_set_options(fs->io, opt_string);
+ if (offset) {
+ sprintf(opt_string, "offset=%llu", offset);
+ io_channel_set_options(fs->io, opt_string);
+ }
if (fs_param.s_flags & EXT2_FLAGS_TEST_FILESYS)
fs->super->s_flags |= EXT2_FLAGS_TEST_FILESYS;
@@ -2416,23 +2710,27 @@ int main (int argc, char *argv[])
read_bb_file(fs, &bb_list, bad_blocks_filename);
if (cflag)
test_disk(fs, &bb_list);
-
handle_bad_blocks(fs, bb_list);
+
fs->stride = fs_stride = fs->super->s_raid_stride;
if (!quiet)
- printf(_("Allocating group tables: "));
- retval = ext2fs_allocate_tables(fs);
+ printf("%s", _("Allocating group tables: "));
+ if ((fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) &&
+ packed_meta_blocks)
+ retval = packed_allocate_tables(fs);
+ else
+ retval = ext2fs_allocate_tables(fs);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while trying to allocate filesystem tables"));
exit(1);
}
if (!quiet)
- printf(_("done \n"));
+ printf("%s", _("done \n"));
retval = ext2fs_convert_subcluster_bitmap(fs, &fs->block_map);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("\n\twhile converting subcluster bitmap"));
exit(1);
}
@@ -2489,6 +2787,7 @@ int main (int argc, char *argv[])
retval = ext2fs_create_resize_inode(fs);
if (retval) {
com_err("ext2fs_create_resize_inode", retval,
+ "%s",
_("while reserving blocks for online resize"));
exit(1);
}
@@ -2498,8 +2797,9 @@ int main (int argc, char *argv[])
if (journal_device) {
ext2_filsys jfs;
- if (!force)
- check_plausibility(journal_device);
+ if (!check_plausibility(journal_device, CHECK_BLOCK_DEV,
+ NULL) && !force)
+ proceed_question(proceed_delay);
check_mount(journal_device, force, _("journal"));
retval = ext2fs_open(journal_device, EXT2_FLAG_RW|
@@ -2524,16 +2824,14 @@ int main (int argc, char *argv[])
exit(1);
}
if (!quiet)
- printf(_("done\n"));
+ printf("%s", _("done\n"));
ext2fs_close(jfs);
free(journal_device);
} else if ((journal_size) ||
(fs_param.s_feature_compat &
EXT3_FEATURE_COMPAT_HAS_JOURNAL)) {
- journal_blocks = figure_journal_size(journal_size, fs);
-
if (super_only) {
- printf(_("Skipping journal creation in super-only mode\n"));
+ printf("%s", _("Skipping journal creation in super-only mode\n"));
fs->super->s_journal_inum = EXT2_JOURNAL_INO;
goto no_journal;
}
@@ -2548,23 +2846,25 @@ int main (int argc, char *argv[])
journal_blocks);
fflush(stdout);
}
- retval = ext2fs_add_journal_inode(fs, journal_blocks,
- journal_flags);
+ retval = ext2fs_add_journal_inode2(fs, journal_blocks,
+ journal_location,
+ journal_flags);
if (retval) {
- com_err (program_name, retval,
- _("\n\twhile trying to create journal"));
+ com_err(program_name, retval, "%s",
+ _("\n\twhile trying to create journal"));
exit(1);
}
if (!quiet)
- printf(_("done\n"));
+ printf("%s", _("done\n"));
}
no_journal:
if (!super_only &&
fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_MMP) {
retval = ext2fs_mmp_init(fs);
if (retval) {
- fprintf(stderr, _("\nError while enabling multiple "
- "mount protection feature."));
+ fprintf(stderr, "%s",
+ _("\nError while enabling multiple "
+ "mount protection feature."));
exit(1);
}
if (!quiet)
@@ -2580,17 +2880,21 @@ no_journal:
EXT4_FEATURE_RO_COMPAT_QUOTA))
create_quota_inodes(fs);
+ retval = mk_hugefiles(fs);
+ if (retval)
+ com_err(program_name, retval, "while creating huge files");
+
if (!quiet)
- printf(_("Writing superblocks and "
+ printf("%s", _("Writing superblocks and "
"filesystem accounting information: "));
checkinterval = fs->super->s_checkinterval;
max_mnt_count = fs->super->s_max_mnt_count;
retval = ext2fs_close(fs);
if (retval) {
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("\nWarning, had trouble writing out superblocks."));
} else if (!quiet) {
- printf(_("done\n\n"));
+ printf("%s", _("done\n\n"));
if (!getenv("MKE2FS_SKIP_CHECK_MSG"))
print_check_message(max_mnt_count, checkinterval);
}
diff --git a/misc/mke2fs.conf.5.in b/misc/mke2fs.conf.5.in
index b6df7674..8e25892e 100644
--- a/misc/mke2fs.conf.5.in
+++ b/misc/mke2fs.conf.5.in
@@ -11,7 +11,7 @@ is the configuration file for
.BR mke2fs (8).
It controls the default parameters used by
.BR mke2fs (8)
-when it is creating ext2 or ext3 filesystems.
+when it is creating ext2, ext3, or ext4 filesystems.
.PP
The
.I mke2fs.conf
@@ -68,7 +68,10 @@ The following stanzas are used in the
.I mke2fs.conf
file. They will be described in more detail in future sections of this
document.
-.TP
+.TP
+.I [options]
+Contains relations which influence how mke2fs behaves.
+.TP
.I [defaults]
Contains relations which define the default parameters
used by
@@ -84,6 +87,18 @@ the
.B -T
option to
.BR mke2fs (8).
+.SH THE [options] STANZA
+The following relations are defined in the
+.I [options]
+stanza.
+.TP
+.I proceed_delay
+If this relation is set to a positive integer, then if mke2fs will
+proceed after waiting
+.I proceed_delay
+seconds, after asking the user for permission to proceed, even if the
+user has not answered the question. Defaults to 0, which means to wait
+until the user answers the question one way or another.
.SH THE [defaults] STANZA
The following relations are defined in the
.I [defaults]
@@ -357,6 +372,18 @@ initialization noticeably, but it requires the kernel to finish
initializing the filesystem in the background when the filesystem is
first mounted.
.TP
+.I journal_location
+This relation specifies the location of the journal.
+.TP
+.I num_backup_sb
+This relation indicates whether file systems with the
+.B sparse_super2
+feature enabled should be created with 0, 1, or 2 backup superblocks.
+.TP
+.I packed_meta_blocks
+This boolean relation specifes whether the allocation bitmaps, inode
+table, and journal should be located at the beginning of the file system.
+.TP
.I inode_ratio
This relation specifies the default inode ratio if the user does not
specify one on the command line.
@@ -408,6 +435,71 @@ system feature is enabled. It can be overridden via the
.B \-C
command line option to
.BR mke2fs (8)
+.TP
+.I make_hugefiles
+This boolean relation enables the creation of pre-allocated files as
+part of formatting the file system.
+.TP
+.I hugefiles_uid
+This relation controls the user ownership for all of the files and
+directories created by the
+.I make_hugefiles
+feature.
+.TP
+.I hugefiles_gid
+This relation controls the group ownership for all of the files and
+directories created by the
+.I make_hugefiles
+feature.
+.TP
+.I hugefiles_umask
+This relation specifies the umask used when creating the files and
+directories by the
+.I make_hugefiles
+feature.
+.TP
+.I num_hugefiles
+This relation specifies the number of huge files to be created. If this
+relation is not specified, or is set to zero, and the
+.I hugefiles_size
+relation is non-zero, then
+.I make_hugefiles
+will create as many huge files as can fit to fill the entire file system.
+.TP
+.I hugefiles_slack
+This relation specifies how much space should be reserved for other
+files.
+.TP
+.I hugefiles_size
+This relation specifies the size of the huge files. If this relation is
+not specified, the default is to fill the entire file system.
+.TP
+.I hugefiles_align
+This relation specifies the alignment for the start block of the huge
+files. It also forces the size of huge files to be a multiple of the
+requested alignment. If this relation is not specified, no alignment
+requirement will be imposed on the huge files.
+.TP
+.I hugefiles_name
+This relation specifies the base file name for the huge files.
+.TP
+.I hugefiles_digits
+This relation specifies the (zero-padded) width of the field for the
+huge file number.
+.TP
+.I zero_hugefiles
+This boolean relation specifies whether or not zero blocks will be
+written to the hugefiles while
+.BR mke2fs(8)
+is creating them. By default, zero blocks will be written to the huge
+files to avoid stale data from being made available to potentially
+untrusted user programs, unless the device supports a discard/trim
+operation which will take care of zeroing the device blocks. By
+.I zero_hugefiles
+to false, this step will always be skipped, which can be useful if it is
+known that the disk has been previously erased, or if the user programs
+that will have access to the huge files are trusted to not reveal stale
+data.
.SH THE [devices] STANZA
Each tag in the
.I [devices]
diff --git a/misc/mke2fs.h b/misc/mke2fs.h
new file mode 100644
index 00000000..9fa6bfe1
--- /dev/null
+++ b/misc/mke2fs.h
@@ -0,0 +1,30 @@
+/*
+ * mke2fs.h
+ *
+ * Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ * 2003, 2004, 2005 by Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+/* mke2fs.c */
+extern const char * program_name;
+extern int quiet;
+extern int verbose;
+extern int zero_hugefile;
+extern char **fs_types;
+
+extern char *get_string_from_profile(char **types, const char *opt,
+ const char *def_val);
+extern int get_int_from_profile(char **types, const char *opt, int def_val);
+extern int get_bool_from_profile(char **types, const char *opt, int def_val);
+extern int int_log10(unsigned long long arg);
+
+/* mk_hugefiles.c */
+extern errcode_t mk_hugefiles(ext2_filsys fs);
+
+
+
diff --git a/misc/mklost+found.c b/misc/mklost+found.c
index 4f78bdec..134e8241 100644
--- a/misc/mklost+found.c
+++ b/misc/mklost+found.c
@@ -47,7 +47,7 @@ int main (int argc, char ** argv)
E2FSPROGS_DATE);
if (argc != 1) {
(void)argv; /* avoid unused argument warning */
- fprintf (stderr, _("Usage: mklost+found\n"));
+ fprintf (stderr, "%s", _("Usage: mklost+found\n"));
exit(1);
}
if (mkdir (LPF, 0700) == -1) {
diff --git a/misc/tune2fs.8.in b/misc/tune2fs.8.in
index 32f73a92..c50d4750 100644
--- a/misc/tune2fs.8.in
+++ b/misc/tune2fs.8.in
@@ -81,7 +81,6 @@ tune2fs \- adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems
.I quota-options
]
[
-[
.B \-T
.I time-last-checked
]
@@ -104,8 +103,8 @@ program.
.PP
The
.I device
-specifer can either be a filename (i.e., /dev/sda1), or a LABEL or UUID
-specifer: "\fBLABEL=\fIvolume-name\fR" or "\fBUUID=\fIuuid\fR". (i.e.,
+specifier can either be a filename (i.e., /dev/sda1), or a LABEL or UUID
+specifier: "\fBLABEL=\fIvolume-name\fR" or "\fBUUID=\fIuuid\fR". (i.e.,
LABEL=home or UUID=e40486c6-84d5-4f2f-b99c-032281799c9d).
.SH OPTIONS
.TP
@@ -249,7 +248,10 @@ option is useful when removing the
filesystem feature from a filesystem which has
an external journal (or is corrupted
such that it appears to have an external journal), but that
-external journal is not available.
+external journal is not available. If the filesystem appears to require
+journal replay, the
+.B \-f
+flag must be specified twice to proceed.
.sp
.B WARNING:
Removing an external journal from a filesystem which was not cleanly unmounted
@@ -334,6 +336,13 @@ megabytes. The size of the journal must be at least 1024 filesystem blocks
and may be no more than 102,400 filesystem blocks.
There must be enough free space in the filesystem to create a journal of
that size.
+.TP
+.BI location =journal-location
+Specify the location of the journal. The argument
+.I journal-location
+can either be specified as a block number, or if the number has a units
+suffix (e.g., 'M', 'G', etc.) interpret it as the offset from the
+beginning of the file system.
@JDEV@.TP
@JDEV@.BI device= external-journal
@JDEV@Attach the filesystem to the journal block device located on
@@ -433,8 +442,8 @@ The following mount options can be set or cleared using
Enable debugging code for this filesystem.
.TP
.B bsdgroups
-Emulate BSD behaviour when creating new files: they will take the group-id
-of the directory in which they were created. The standard System V behaviour
+Emulate BSD behavior when creating new files: they will take the group-id
+of the directory in which they were created. The standard System V behavior
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
@@ -482,7 +491,7 @@ currently only supported by the ext4 file system driver in 2.6.35+
kernels.)
.TP
.B discard
-The file system will be mouinted with the discard mount option. This will
+The file system will be mounted with the discard mount option. This will
cause the file system driver to attempt to use the trim/discard feature
of some storage devices (such as SSD's and thin-provisioned drives
available in some enterprise storage arrays) to inform the storage
@@ -502,18 +511,26 @@ More than one filesystem feature can be cleared or set by separating
features with commas. Filesystem features prefixed with a
caret character ('^') will be cleared in the filesystem's superblock;
filesystem features without a prefix character or prefixed with a plus
-character ('+') will be added to the filesystem.
+character ('+') will be added to the filesystem. For a detailed
+description of the file system features, please see the man page
+.BR ext4 (5).
.IP
The following filesystem features can be set or cleared using
.BR tune2fs :
.RS 1.2i
.TP
.B dir_index
-Use hashed b-trees to speed up lookups in large directories.
+Use hashed b-trees to speed up lookups for large directories.
.TP
.B dir_nlink
Allow more than 65000 subdirectories per directory.
.TP
+.B extent
+Enable the use of extent trees to store the location of data blocks in inodes.
+.TP
+.B extra_isize
+Enable the extended inode fields used by ext4.
+.TP
.B filetype
Store file type information in directory entries.
.TP
@@ -522,7 +539,7 @@ Allow bitmaps and inode tables for a block group to be placed
anywhere on the storage media. \fBTune2fs\fR will not reorganize
the location of the inode tables and allocation bitmaps, as
.BR mke2fs (8)
-will do when it creates a freshly formated file system with
+will do when it creates a freshly formatted file system with
.B flex_bg
enabled.
.TP
@@ -532,9 +549,11 @@ Setting the filesystem feature is equivalent to using the
.B \-j
option.
.TP
+.B huge_file
+Support files larger than 2 terabytes in size.
+.TP
.B large_file
-Filesystem can contain files that are greater than 2GB. (Modern kernels
-set this feature automatically when a file > 2GB is created.)
+Filesystem can contain files that are greater than 2GB.
.TP
.B resize_inode
Reserve space so the block group descriptor table may grow in the
@@ -543,16 +562,17 @@ future.
only supports clearing this filesystem feature.
.TP
.B mmp
-Enable or disable multiple mount protection (MMP) feature. MMP helps to
-protect the filesystem from being multiply mounted and is useful in
-shared storage environments.
+Enable or disable multiple mount protection (MMP) feature.
+@QUOTA_MAN_COMMENT@.TP
+@QUOTA_MAN_COMMENT@.B quota
+@QUOTA_MAN_COMMENT@Enable internal file system quota inodes.
.TP
.B sparse_super
Limit the number of backup superblocks to save space on large filesystems.
.TP
.B uninit_bg
-Allow the kernel to initialize bitmaps and inode tables and keep a high
-watermark for the unused inodes in a filesystem, to reduce
+Allow the kernel to initialize bitmaps and inode tables lazily, and to
+keep a high watermark for the unused inodes in a filesystem, to reduce
.BR e2fsck (8)
time. This first e2fsck run after enabling this feature will take the
full time, but subsequent e2fsck runs will take only a fraction of the
@@ -599,6 +619,7 @@ Sets/clears user quota inode in the superblock.
.TP
.BR [^]grpquota
Sets/clears group quota inode in the superblock.
+.RE
.TP
.BI \-T " time-last-checked"
Set the time the filesystem was last checked using
@@ -681,4 +702,5 @@ http://e2fsprogs.sourceforge.net.
.BR debugfs (8),
.BR dumpe2fs (8),
.BR e2fsck (8),
-.BR mke2fs (8)
+.BR mke2fs (8),
+.BR ext4 (5)
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index e49b4333..9ba32a1c 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -26,7 +26,6 @@
*/
#define _XOPEN_SOURCE 600 /* for inclusion of strptime() */
-#define _BSD_SOURCE /* for inclusion of strcasecmp() */
#include "config.h"
#include <fcntl.h>
#include <grp.h>
@@ -41,6 +40,11 @@ extern int optind;
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
+#ifdef HAVE_STRINGS_H
+#include <strings.h> /* for strcasecmp() */
+#else
+#define _BSD_SOURCE /* for inclusion of strcasecmp() via <string.h> */
+#endif
#include <string.h>
#include <time.h>
#include <unistd.h>
@@ -56,7 +60,7 @@ extern int optind;
#include "jfs_user.h"
#include "util.h"
#include "blkid/blkid.h"
-#include "quota/mkquota.h"
+#include "quota/quotaio.h"
#include "../version.h"
#include "nls-enable.h"
@@ -94,6 +98,7 @@ static int usrquota, grpquota;
int journal_size, journal_flags;
char *journal_device;
+static blk64_t journal_location = ~0LL;
static struct list_head blk_move_list;
@@ -121,6 +126,9 @@ static void usage(void)
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] "
"[-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+#ifdef CONFIG_QUOTA
+ "\t[-Q quota_options]\n"
+#endif
"\t[-E extended-option[,...]] [-T last_check_time] "
"[-U UUID]\n\t[ -I new_inode_size ] device\n"), program_name);
exit(1);
@@ -141,8 +149,10 @@ static __u32 ok_features[3] = {
EXT4_FEATURE_RO_COMPAT_DIR_NLINK|
EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE|
EXT4_FEATURE_RO_COMPAT_GDT_CSUM |
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER |
- EXT4_FEATURE_RO_COMPAT_QUOTA
+#ifdef CONFIG_QUOTA
+ EXT4_FEATURE_RO_COMPAT_QUOTA |
+#endif
+ EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER
};
static __u32 clear_ok_features[3] = {
@@ -159,8 +169,10 @@ static __u32 clear_ok_features[3] = {
EXT4_FEATURE_RO_COMPAT_HUGE_FILE|
EXT4_FEATURE_RO_COMPAT_DIR_NLINK|
EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE|
- EXT4_FEATURE_RO_COMPAT_GDT_CSUM |
- EXT4_FEATURE_RO_COMPAT_QUOTA
+#ifdef CONFIG_QUOTA
+ EXT4_FEATURE_RO_COMPAT_QUOTA |
+#endif
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM
};
/*
@@ -201,7 +213,7 @@ static int remove_journal_device(ext2_filsys fs)
EXT2_FLAG_JOURNAL_DEV_OK, 0,
fs->blocksize, io_ptr, &jfs);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while trying to open external journal"));
goto no_valid_journal;
}
@@ -214,7 +226,7 @@ static int remove_journal_device(ext2_filsys fs)
/* Get the journal superblock */
if ((retval = io_channel_read_blk64(jfs->io, 1, -1024, buf))) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while reading journal superblock"));
goto no_valid_journal;
}
@@ -298,14 +310,14 @@ static errcode_t remove_journal_inode(ext2_filsys fs)
retval = ext2fs_read_inode(fs, ino, &inode);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while reading journal inode"));
return retval;
}
if (ino == EXT2_JOURNAL_INO) {
retval = ext2fs_read_bitmaps(fs);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while reading bitmaps"));
return retval;
}
@@ -313,7 +325,7 @@ static errcode_t remove_journal_inode(ext2_filsys fs)
BLOCK_FLAG_READ_ONLY, NULL,
release_blocks_proc, NULL);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while clearing journal inode"));
return retval;
}
@@ -324,7 +336,7 @@ static errcode_t remove_journal_inode(ext2_filsys fs)
inode.i_flags &= ~EXT2_IMMUTABLE_FL;
retval = ext2fs_write_inode(fs, ino, &inode);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while writing journal inode"));
return retval;
}
@@ -351,6 +363,16 @@ static int update_mntopts(ext2_filsys fs, char *mntopts)
return 0;
}
+static int check_fsck_needed(ext2_filsys fs)
+{
+ if (fs->super->s_state & EXT2_VALID_FS)
+ return 0;
+ printf("\n%s\n", _(please_fsck));
+ if (mount_flags & EXT2_MF_READONLY)
+ printf("%s", _("(and reboot afterwards!)\n"));
+ return 1;
+}
+
static void request_fsck_afterwards(ext2_filsys fs)
{
static int requested = 0;
@@ -360,7 +382,7 @@ static void request_fsck_afterwards(ext2_filsys fs)
fs->super->s_state &= ~EXT2_VALID_FS;
printf("\n%s\n", _(please_fsck));
if (mount_flags & EXT2_MF_READONLY)
- printf(_("(and reboot afterwards!)\n"));
+ printf("%s", _("(and reboot afterwards!)\n"));
}
/*
@@ -371,7 +393,8 @@ static int update_feature_set(ext2_filsys fs, char *features)
struct ext2_super_block *sb = fs->super;
struct ext2_group_desc *gd;
__u32 old_features[3];
- int i, type_err;
+ dgrp_t i;
+ int type_err;
unsigned int mask_err;
#define FEATURE_ON(type, mask) (!(old_features[(type)] & (mask)) && \
@@ -414,8 +437,9 @@ static int update_feature_set(ext2_filsys fs, char *features)
"read-only.\n"), stderr);
return 1;
}
- if (sb->s_feature_incompat &
- EXT3_FEATURE_INCOMPAT_RECOVER) {
+ if ((sb->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_RECOVER) &&
+ f_flag < 2) {
fputs(_("The needs_recovery flag is set. "
"Please run e2fsck before clearing\n"
"the has_journal flag.\n"), stderr);
@@ -430,6 +454,19 @@ static int update_feature_set(ext2_filsys fs, char *features)
return 1;
}
}
+
+ if (FEATURE_ON(E2P_FEATURE_RO_INCOMPAT,
+ EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)) {
+ if (sb->s_feature_incompat &
+ EXT2_FEATURE_INCOMPAT_META_BG) {
+ fputs(_("Setting filesystem feature 'sparse_super' "
+ "not supported\nfor filesystems with "
+ "the meta_bg feature enabled.\n"),
+ stderr);
+ return 1;
+ }
+ }
+
if (FEATURE_ON(E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_MMP)) {
int error;
@@ -483,14 +520,14 @@ static int update_feature_set(ext2_filsys fs, char *features)
"match. expected: %x, actual: %x\n"),
EXT4_MMP_MAGIC, mmp_cmp->mmp_magic);
else
- com_err(program_name, error,
+ com_err(program_name, error, "%s",
_("while reading MMP block."));
goto mmp_error;
}
/* We need to force out the group descriptors as well */
fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
- ext2fs_block_alloc_stats(fs, sb->s_mmp_block, -1);
+ ext2fs_block_alloc_stats2(fs, sb->s_mmp_block, -1);
mmp_error:
sb->s_mmp_block = 0;
sb->s_mmp_update_interval = 0;
@@ -636,7 +673,9 @@ static int add_journal(ext2_filsys fs)
goto err;
}
if (journal_device) {
- check_plausibility(journal_device);
+ if (!check_plausibility(journal_device, CHECK_BLOCK_DEV,
+ NULL))
+ proceed_question(-1);
check_mount(journal_device, 0, _("journal"));
#ifdef CONFIG_TESTIO_DEBUG
if (getenv("TEST_IO_FLAGS") || getenv("TEST_IO_BLOCK")) {
@@ -672,11 +711,16 @@ static int add_journal(ext2_filsys fs)
fflush(stdout);
journal_blocks = figure_journal_size(journal_size, fs);
- retval = ext2fs_add_journal_inode(fs, journal_blocks,
- journal_flags);
+ if (journal_location_string)
+ journal_location =
+ parse_num_blocks2(journal_location_string,
+ fs->super->s_log_block_size);
+ retval = ext2fs_add_journal_inode2(fs, journal_blocks,
+ journal_location,
+ journal_flags);
if (retval) {
fprintf(stderr, "\n");
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("\n\twhile trying to create journal file"));
return retval;
} else
@@ -697,7 +741,7 @@ err:
return 1;
}
-void handle_quota_options(ext2_filsys fs)
+static void handle_quota_options(ext2_filsys fs)
{
quota_ctx_t qctx;
ext2_ino_t qf_ino;
@@ -713,28 +757,18 @@ void handle_quota_options(ext2_filsys fs)
if (usrquota == QOPT_ENABLE && !fs->super->s_usr_quota_inum) {
if ((qf_ino = quota_file_exists(fs, USRQUOTA,
- QFMT_VFS_V1)) > 0) {
- if (quota_update_inode(qctx, qf_ino, USRQUOTA) == 0)
- quota_set_sb_inum(fs, qf_ino, USRQUOTA);
- else
- quota_write_inode(qctx, USRQUOTA);
- } else {
- quota_write_inode(qctx, USRQUOTA);
- }
+ QFMT_VFS_V1)) > 0)
+ quota_update_limits(qctx, qf_ino, USRQUOTA);
+ quota_write_inode(qctx, USRQUOTA);
} else if (usrquota == QOPT_DISABLE) {
quota_remove_inode(fs, USRQUOTA);
}
if (grpquota == QOPT_ENABLE && !fs->super->s_grp_quota_inum) {
if ((qf_ino = quota_file_exists(fs, GRPQUOTA,
- QFMT_VFS_V1)) > 0) {
- if (quota_update_inode(qctx, qf_ino, GRPQUOTA) == 0)
- quota_set_sb_inum(fs, qf_ino, GRPQUOTA);
- else
- quota_write_inode(qctx, GRPQUOTA);
- } else {
- quota_write_inode(qctx, GRPQUOTA);
- }
+ QFMT_VFS_V1)) > 0)
+ quota_update_limits(qctx, qf_ino, GRPQUOTA);
+ quota_write_inode(qctx, GRPQUOTA);
} else if (grpquota == QOPT_DISABLE) {
quota_remove_inode(fs, GRPQUOTA);
}
@@ -744,7 +778,8 @@ void handle_quota_options(ext2_filsys fs)
if ((usrquota == QOPT_ENABLE) || (grpquota == QOPT_ENABLE)) {
fs->super->s_feature_ro_compat |= EXT4_FEATURE_RO_COMPAT_QUOTA;
ext2fs_mark_super_dirty(fs);
- } else if ((usrquota == QOPT_DISABLE) && (grpquota == QOPT_DISABLE)) {
+ } else if (!fs->super->s_usr_quota_inum &&
+ !fs->super->s_grp_quota_inum) {
fs->super->s_feature_ro_compat &= ~EXT4_FEATURE_RO_COMPAT_QUOTA;
ext2fs_mark_super_dirty(fs);
}
@@ -752,9 +787,10 @@ void handle_quota_options(ext2_filsys fs)
return;
}
-void parse_quota_opts(const char *opts)
+#ifdef CONFIG_QUOTA
+static void parse_quota_opts(const char *opts)
{
- char *buf, *token, *next, *p, *arg;
+ char *buf, *token, *next, *p;
int len;
len = strlen(opts);
@@ -794,8 +830,7 @@ void parse_quota_opts(const char *opts)
}
free(buf);
}
-
-
+#endif
static void parse_e2label_options(int argc, char ** argv)
{
@@ -857,11 +892,15 @@ static void parse_tune2fs_options(int argc, char **argv)
char *tmp;
struct group *gr;
struct passwd *pw;
+ char optstring[100] = "c:e:fg:i:jlm:o:r:s:u:C:E:I:J:L:M:O:T:U:";
+#ifdef CONFIG_QUOTA
+ strcat(optstring, "Q:");
+#endif
open_flag = 0;
printf("tune2fs %s (%s)\n", E2FSPROGS_VERSION, E2FSPROGS_DATE);
- while ((c = getopt(argc, argv, "c:e:fg:i:jlm:o:r:s:u:C:E:I:J:L:M:O:Q:T:U:")) != EOF)
+ while ((c = getopt(argc, argv, optstring)) != EOF)
switch (c) {
case 'c':
max_mount_count = strtol(optarg, &tmp, 0);
@@ -908,7 +947,7 @@ static void parse_tune2fs_options(int argc, char **argv)
open_flag |= EXT2_FLAG_RW;
break;
case 'f': /* Force */
- f_flag = 1;
+ f_flag++;
break;
case 'g':
resgid = strtoul(optarg, &tmp, 0);
@@ -999,7 +1038,7 @@ static void parse_tune2fs_options(int argc, char **argv)
break;
case 'o':
if (mntopts_cmd) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("-o may only be specified once"));
usage();
}
@@ -1008,18 +1047,20 @@ static void parse_tune2fs_options(int argc, char **argv)
break;
case 'O':
if (features_cmd) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("-O may only be specified once"));
usage();
}
features_cmd = optarg;
open_flag = EXT2_FLAG_RW;
break;
+#ifdef CONFIG_QUOTA
case 'Q':
Q_flag = 1;
parse_quota_opts(optarg);
open_flag = EXT2_FLAG_RW;
break;
+#endif
case 'r':
reserved_blocks = strtoul(optarg, &tmp, 0);
if (*tmp) {
@@ -1097,7 +1138,7 @@ static void parse_tune2fs_options(int argc, char **argv)
*io_options++ = 0;
device_name = blkid_get_devname(NULL, argv[optind], NULL);
if (!device_name) {
- com_err("tune2fs", 0, _("Unable to resolve '%s'"),
+ com_err(program_name, 0, _("Unable to resolve '%s'"),
argv[optind]);
exit(1);
}
@@ -1133,7 +1174,7 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts)
len = strlen(opts);
buf = malloc(len+1);
if (!buf) {
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("Couldn't allocate memory to parse options!\n"));
return 1;
}
@@ -1154,12 +1195,12 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts)
strcmp(token, "clear_mmp") == 0) {
clear_mmp = 1;
} else if (strcmp(token, "mmp_update_interval") == 0) {
- unsigned long interval;
+ unsigned long intv;
if (!arg) {
r_usage++;
continue;
}
- interval = strtoul(arg, &p, 0);
+ intv = strtoul(arg, &p, 0);
if (*p) {
fprintf(stderr,
_("Invalid mmp_update_interval: %s\n"),
@@ -1167,21 +1208,21 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts)
r_usage++;
continue;
}
- if (interval == 0) {
- interval = EXT4_MMP_UPDATE_INTERVAL;
- } else if (interval > EXT4_MMP_MAX_UPDATE_INTERVAL) {
+ if (intv == 0) {
+ intv = EXT4_MMP_UPDATE_INTERVAL;
+ } else if (intv > EXT4_MMP_MAX_UPDATE_INTERVAL) {
fprintf(stderr,
_("mmp_update_interval too big: %lu\n"),
- interval);
+ intv);
r_usage++;
continue;
}
printf(P_("Setting multiple mount protection update "
"interval to %lu second\n",
"Setting multiple mount protection update "
- "interval to %lu seconds\n", interval),
- interval);
- fs->super->s_mmp_update_interval = interval;
+ "interval to %lu seconds\n", intv),
+ intv);
+ fs->super->s_mmp_update_interval = intv;
ext2fs_mark_super_dirty(fs);
} else if (!strcmp(token, "test_fs")) {
fs->super->s_flags |= EXT2_FLAGS_TEST_FILESYS;
@@ -1254,7 +1295,7 @@ static int parse_extended_opts(ext2_filsys fs, const char *opts)
r_usage++;
}
if (r_usage) {
- fprintf(stderr, _("\nBad options specified.\n\n"
+ fprintf(stderr, "%s", _("\nBad 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"
@@ -1327,10 +1368,10 @@ static int get_move_bitmaps(ext2_filsys fs, int new_ino_blks_per_grp,
return 0;
}
-static int ext2fs_is_meta_block(ext2_filsys fs, blk_t blk)
+static int ext2fs_is_meta_block(ext2_filsys fs, blk64_t blk)
{
dgrp_t group;
- group = ext2fs_group_of_blk(fs, blk);
+ group = ext2fs_group_of_blk2(fs, blk);
if (ext2fs_block_bitmap_loc(fs, group) == blk)
return 1;
if (ext2fs_inode_bitmap_loc(fs, group) == blk)
@@ -1338,9 +1379,9 @@ static int ext2fs_is_meta_block(ext2_filsys fs, blk_t blk)
return 0;
}
-static int ext2fs_is_block_in_group(ext2_filsys fs, dgrp_t group, blk_t blk)
+static int ext2fs_is_block_in_group(ext2_filsys fs, dgrp_t group, blk64_t blk)
{
- blk_t start_blk, end_blk;
+ blk64_t start_blk, end_blk;
start_blk = fs->super->s_first_data_block +
EXT2_BLOCKS_PER_GROUP(fs->super) * group;
/*
@@ -1380,7 +1421,7 @@ static int move_block(ext2_filsys fs, ext2fs_block_bitmap bmap)
* the respective fs metadata pointers. Otherwise
* fail
*/
- group = ext2fs_group_of_blk(fs, blk);
+ group = ext2fs_group_of_blk2(fs, blk);
goal = ext2fs_group_first_block2(fs, group);
meta_data = 1;
@@ -1541,7 +1582,7 @@ err_out:
static int group_desc_scan_and_fix(ext2_filsys fs, ext2fs_block_bitmap bmap)
{
dgrp_t i;
- blk_t blk, new_blk;
+ blk64_t blk, new_blk;
for (i = 0; i < fs->group_desc_count; i++) {
blk = ext2fs_block_bitmap_loc(fs, i);
@@ -1814,7 +1855,7 @@ static int tune2fs_setup_tdb(const char *name, io_manager *io_ptr)
tmp_name = strdup(name);
if (!tmp_name) {
alloc_fn_fail:
- com_err(program_name, ENOMEM,
+ com_err(program_name, ENOMEM, "%s",
_("Couldn't allocate memory for tdb filename\n"));
return ENOMEM;
}
@@ -1833,15 +1874,12 @@ static int tune2fs_setup_tdb(const char *name, io_manager *io_ptr)
goto alloc_fn_fail;
sprintf(tdb_file, "%s/tune2fs-%s.e2undo", tdb_dir, dev_name);
- if (!access(tdb_file, F_OK)) {
- if (unlink(tdb_file) < 0) {
- retval = errno;
- com_err(program_name, retval,
- _("while trying to delete %s"),
- tdb_file);
- free(tdb_file);
- return retval;
- }
+ if ((unlink(tdb_file) < 0) && (errno != ENOENT)) {
+ retval = errno;
+ com_err(program_name, retval,
+ _("while trying to delete %s"), tdb_file);
+ free(tdb_file);
+ return retval;
}
set_undo_io_backing_manager(*io_ptr);
@@ -1919,7 +1957,7 @@ retry_open:
_("MMP block magic is bad. Try to fix it by "
"running:\n'e2fsck -f %s'\n"), device_name);
else if (retval != EXT2_ET_MMP_FAILED)
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("Couldn't find valid filesystem superblock.\n"));
ext2fs_free(fs);
@@ -1940,8 +1978,14 @@ retry_open:
goto closefs;
}
if (new_inode_size < EXT2_INODE_SIZE(fs->super)) {
- fprintf(stderr, _("Shrinking the inode size is "
- "not supported\n"));
+ fprintf(stderr, "%s",
+ _("Shrinking inode size is not supported\n"));
+ rc = 1;
+ goto closefs;
+ }
+ if (new_inode_size > fs->blocksize) {
+ fprintf(stderr, _("Invalid inode size %lu (max %d)\n"),
+ new_inode_size, fs->blocksize);
rc = 1;
goto closefs;
}
@@ -2006,7 +2050,7 @@ retry_open:
printf(_("Setting reserved blocks gid to %lu\n"), resgid);
}
if (i_flag) {
- if (interval >= (1ULL << 32)) {
+ if ((unsigned long long)interval >= (1ULL << 32)) {
com_err(program_name, 0,
_("interval between checks is too big (%lu)"),
interval);
@@ -2040,10 +2084,18 @@ retry_open:
}
if (s_flag == 1) {
if (sb->s_feature_ro_compat &
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)
+ EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) {
fputs(_("\nThe filesystem already has sparse "
"superblocks.\n"), stderr);
- else {
+ } else if (sb->s_feature_incompat &
+ EXT2_FEATURE_INCOMPAT_META_BG) {
+ fputs(_("\nSetting the sparse superblock flag not "
+ "supported\nfor filesystems with "
+ "the meta_bg feature enabled.\n"),
+ stderr);
+ rc = 1;
+ goto closefs;
+ } else {
sb->s_feature_ro_compat |=
EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER;
sb->s_state &= ~EXT2_VALID_FS;
@@ -2053,7 +2105,7 @@ retry_open:
}
}
if (s_flag == 0) {
- fputs(_("\nClearing the sparse superflag not supported.\n"),
+ fputs(_("\nClearing the sparse superblock flag not supported.\n"),
stderr);
rc = 1;
goto closefs;
@@ -2132,6 +2184,19 @@ retry_open:
if (sb->s_feature_ro_compat &
EXT4_FEATURE_RO_COMPAT_GDT_CSUM) {
/*
+ * Changing the UUID requires rewriting all metadata,
+ * which can race with a mounted fs. Don't allow that.
+ */
+ if (mount_flags & EXT2_MF_MOUNTED) {
+ fputs(_("The UUID may only be "
+ "changed when the filesystem is "
+ "unmounted.\n"), stderr);
+ exit(1);
+ }
+ if (check_fsck_needed(fs))
+ exit(1);
+
+ /*
* Determine if the block group checksums are
* correct so we know whether or not to set
* them later on.
@@ -2150,7 +2215,8 @@ retry_open:
} else if (strcasecmp(new_UUID, "random") == 0) {
uuid_generate(sb->s_uuid);
} else if (uuid_parse(new_UUID, sb->s_uuid)) {
- com_err(program_name, 0, _("Invalid UUID format\n"));
+ com_err(program_name, 0, "%s",
+ _("Invalid UUID format\n"));
rc = 1;
goto closefs;
}
@@ -2187,7 +2253,7 @@ retry_open:
printf(_("Setting inode size %lu\n"),
new_inode_size);
} else {
- printf(_("Failed to change inode size\n"));
+ printf("%s", _("Failed to change inode size\n"));
rc = 1;
goto closefs;
}
diff --git a/misc/util.c b/misc/util.c
index 6c93e1c6..1c0818f6 100644
--- a/misc/util.c
+++ b/misc/util.c
@@ -13,6 +13,9 @@
#define _LARGEFILE64_SOURCE
#include "config.h"
+#include <fcntl.h>
+#include <setjmp.h>
+#include <signal.h>
#include <stdio.h>
#include <string.h>
#ifdef HAVE_ERRNO_H
@@ -21,6 +24,7 @@
#ifdef HAVE_LINUX_MAJOR_H
#include <linux/major.h>
#endif
+#include <sys/types.h>
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
@@ -34,6 +38,8 @@
#include "blkid/blkid.h"
#include "util.h"
+char *journal_location_string = NULL;
+
#ifndef HAVE_STRCASECMP
int strcasecmp (char *s1, char *s2)
{
@@ -64,47 +70,201 @@ char *get_progname(char *argv_zero)
return cp+1;
}
-void proceed_question(void)
+static jmp_buf alarm_env;
+
+static void alarm_signal(int signal)
+{
+ longjmp(alarm_env, 1);
+}
+
+void proceed_question(int delay)
{
char buf[256];
const char *short_yes = _("yY");
fflush(stdout);
fflush(stderr);
- fputs(_("Proceed anyway? (y,n) "), stdout);
+ if (delay > 0) {
+ if (setjmp(alarm_env)) {
+ signal(SIGALRM, SIG_IGN);
+ printf(_("<proceeding>\n"));
+ return;
+ }
+ signal(SIGALRM, alarm_signal);
+ printf(_("Proceed anyway (or wait %d seconds) ? (y,n) "),
+ delay);
+ alarm(delay);
+ } else
+ fputs(_("Proceed anyway? (y,n) "), stdout);
buf[0] = 0;
if (!fgets(buf, sizeof(buf), stdin) ||
- strchr(short_yes, buf[0]) == 0)
+ strchr(short_yes, buf[0]) == 0) {
+ putc('\n', stdout);
exit(1);
+ }
+ signal(SIGALRM, SIG_IGN);
}
-void check_plausibility(const char *device)
+static void print_ext2_info(const char *device)
+
{
- int val;
- ext2fs_struct_stat s;
+ struct ext2_super_block *sb;
+ ext2_filsys fs;
+ errcode_t retval;
+ time_t tm;
+ char buf[80];
+
+ retval = ext2fs_open2(device, 0, EXT2_FLAG_64BITS, 0, 0,
+ unix_io_manager, &fs);
+ if (retval)
+ return;
+ sb = fs->super;
+
+ if (sb->s_mtime) {
+ tm = sb->s_mtime;
+ if (sb->s_last_mounted[0]) {
+ memset(buf, 0, sizeof(buf));
+ strncpy(buf, sb->s_last_mounted,
+ sizeof(sb->s_last_mounted));
+ printf(_("\tlast mounted on %s on %s"), buf,
+ ctime(&tm));
+ } else
+ printf(_("\tlast mounted on %s"), ctime(&tm));
+ } else if (sb->s_mkfs_time) {
+ tm = sb->s_mkfs_time;
+ printf(_("\tcreated on %s"), ctime(&tm));
+ } else if (sb->s_wtime) {
+ tm = sb->s_wtime;
+ printf(_("\tlast modified on %s"), ctime(&tm));
+ }
+ ext2fs_close(fs);
+}
+
+/*
+ * return 1 if there is no partition table, 0 if a partition table is
+ * detected, and -1 on an error.
+ */
+static int check_partition_table(const char *device)
+{
+#ifdef HAVE_BLKID_PROBE_ENABLE_PARTITIONS
+ blkid_probe pr;
+ const char *value;
+ int ret;
+
+ pr = blkid_new_probe_from_filename(device);
+ if (!pr)
+ return -1;
+
+ ret = blkid_probe_enable_partitions(pr, 1);
+ if (ret < 0)
+ goto errout;
+
+ ret = blkid_probe_enable_superblocks(pr, 0);
+ if (ret < 0)
+ goto errout;
+
+ ret = blkid_do_fullprobe(pr);
+ if (ret < 0)
+ goto errout;
+
+ ret = blkid_probe_lookup_value(pr, "PTTYPE", &value, NULL);
+ if (ret == 0)
+ fprintf(stderr, _("Found a %s partition table in %s\n"),
+ value, device);
+ else
+ ret = 1;
+
+errout:
+ blkid_free_probe(pr);
+ return ret;
+#else
+ return -1;
+#endif
+}
- val = ext2fs_stat(device, &s);
+/*
+ * return 1 if the device looks plausible, creating the file if necessary
+ */
+int check_plausibility(const char *device, int flags, int *ret_is_dev)
+{
+ int fd, ret, is_dev = 0;
+ ext2fs_struct_stat s;
+ int fl = O_RDONLY;
+ blkid_cache cache = NULL;
+ char *fs_type = NULL;
+ char *fs_label = NULL;
- if(val == -1) {
- fprintf(stderr, _("Could not stat %s --- %s\n"),
+ fd = open(device, fl, 0666);
+ if ((fd < 0) && (errno == ENOENT) && (flags & CREATE_FILE)) {
+ fl |= O_CREAT;
+ fd = open(device, fl, 0666);
+ if (fd >= 0 && (flags & VERBOSE_CREATE))
+ printf(_("Creating regular file %s\n"), device);
+ }
+ if (fd < 0) {
+ fprintf(stderr, _("Could not open %s: %s\n"),
device, error_message(errno));
if (errno == ENOENT)
fputs(_("\nThe device apparently does not exist; "
"did you specify it correctly?\n"), stderr);
exit(1);
}
+
+ if (ext2fs_fstat(fd, &s) < 0) {
+ perror("stat");
+ exit(1);
+ }
+ close(fd);
+
+ if (S_ISBLK(s.st_mode))
+ is_dev = 1;
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
/* On FreeBSD, all disk devices are character specials */
- if (!S_ISBLK(s.st_mode) && !S_ISCHR(s.st_mode))
-#else
- if (!S_ISBLK(s.st_mode))
+ if (S_ISCHR(s.st_mode))
+ is_dev = 1;
#endif
- {
+ if (ret_is_dev)
+ *ret_is_dev = is_dev;
+
+ if ((flags & CHECK_BLOCK_DEV) && !is_dev) {
printf(_("%s is not a block special device.\n"), device);
- proceed_question();
- return;
+ return 0;
+ }
+
+ /*
+ * Note: we use the older-style blkid API's here because we
+ * want as much functionality to be available when using the
+ * internal blkid library, when e2fsprogs is compiled for
+ * non-Linux systems that will probably not have the libraries
+ * from util-linux available. We only use the newer
+ * blkid-probe interfaces to access functionality not
+ * available in the original blkid library.
+ */
+ if ((flags & CHECK_FS_EXIST) && blkid_get_cache(&cache, NULL) >= 0) {
+ fs_type = blkid_get_tag_value(cache, "TYPE", device);
+ if (fs_type)
+ fs_label = blkid_get_tag_value(cache, "LABEL", device);
+ blkid_put_cache(cache);
+ }
+
+ if (fs_type) {
+ if (fs_label)
+ printf(_("%s contains a %s file system "
+ "labelled '%s'\n"), device, fs_type, fs_label);
+ else
+ printf(_("%s contains a %s file system\n"), device,
+ fs_type);
+ if (strncmp(fs_type, "ext", 3) == 0)
+ print_ext2_info(device);
+ free(fs_type);
+ free(fs_label);
+ return 0;
}
+ ret = check_partition_table(device);
+ if (ret >= 0)
+ return ret;
+
#ifdef HAVE_LINUX_MAJOR_H
#ifndef MAJOR
#define MAJOR(dev) ((dev)>>8)
@@ -131,9 +291,10 @@ void check_plausibility(const char *device)
MINOR(s.st_rdev)%16 == 0))) {
printf(_("%s is entire device, not just one partition!\n"),
device);
- proceed_question();
+ return 0;
}
#endif
+ return 1;
}
void check_mount(const char *device, int force, const char *type)
@@ -150,7 +311,7 @@ void check_mount(const char *device, int force, const char *type)
}
if (mount_flags & EXT2_MF_MOUNTED) {
fprintf(stderr, _("%s is mounted; "), device);
- if (force > 2) {
+ if (force >= 2) {
fputs(_("mke2fs forced anyway. Hope /etc/mtab is "
"incorrect.\n"), stderr);
return;
@@ -162,7 +323,7 @@ void check_mount(const char *device, int force, const char *type)
if (mount_flags & EXT2_MF_BUSY) {
fprintf(stderr, _("%s is apparently in use by the system; "),
device);
- if (force > 2) {
+ if (force >= 2) {
fputs(_("mke2fs forced anyway.\n"), stderr);
return;
}
@@ -218,6 +379,12 @@ void parse_journal_opts(const char *opts)
journal_size = strtoul(arg, &p, 0);
if (*p)
journal_usage++;
+ } else if (!strcmp(token, "location")) {
+ if (!arg) {
+ journal_usage++;
+ continue;
+ }
+ journal_location_string = strdup(arg);
} else if (strcmp(token, "v1_superblock") == 0) {
journal_flags |= EXT2_MKJOURNAL_V1_SUPER;
continue;
@@ -231,7 +398,8 @@ void parse_journal_opts(const char *opts)
"\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"
+ "\tdevice=<journal device>\n"
+ "\tlocation=<journal location>\n\n"
"The journal size must be between "
"1024 and 10240000 filesystem blocks.\n\n"), stderr);
free(buf);
diff --git a/misc/util.h b/misc/util.h
index f872c38c..476164bb 100644
--- a/misc/util.h
+++ b/misc/util.h
@@ -13,13 +13,23 @@
extern int journal_size;
extern int journal_flags;
extern char *journal_device;
+extern char *journal_location_string;
+
+/*
+ * Flags for check_plausibility()
+ */
+#define CHECK_BLOCK_DEV 0x0001
+#define CREATE_FILE 0x0002
+#define CHECK_FS_EXIST 0x0004
+#define VERBOSE_CREATE 0x0008
#ifndef HAVE_STRCASECMP
extern int strcasecmp (char *s1, char *s2);
#endif
extern char *get_progname(char *argv_zero);
-extern void proceed_question(void);
-extern void check_plausibility(const char *device);
+extern void proceed_question(int delay);
+extern int check_plausibility(const char *device, int flags,
+ int *ret_is_dev);
extern void parse_journal_opts(const char *opts);
extern void check_mount(const char *device, int force, const char *type);
extern unsigned int figure_journal_size(int size, ext2_filsys fs);
diff --git a/misc/uuidd.c b/misc/uuidd.c
index 2e255ba1..5a531380 100644
--- a/misc/uuidd.c
+++ b/misc/uuidd.c
@@ -544,7 +544,7 @@ int main(int argc, char **argv)
"%s and subsequent %d UUIDs\n", num),
str, num);
} else {
- printf(_("List of UUID's:\n"));
+ printf("%s", _("List of UUID's:\n"));
cp = buf + 4;
if (ret != (int) (sizeof(num) + num*sizeof(uu)))
goto unexpected_size;
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
index 8dbd0c52..2ae2f2a2 100644
--- a/po/Makefile.in.in
+++ b/po/Makefile.in.in
@@ -281,7 +281,9 @@ mostlyclean:
rm -f $(DOMAIN).po.bak
rm -fr *.o
-clean: mostlyclean
+coverage.txt::
+
+clean:: mostlyclean
distclean: clean
rm -f Makefile Makefile.in POTFILES *.mo
diff --git a/po/ca.gmo b/po/ca.gmo
index 10be8bad..3807df67 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index e6ac38f4..8d7d3c82 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -63,511 +63,541 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.41.1\n"
+"Project-Id-Version: e2fsprogs 1.42.8\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2009-01-26 20:41-0500\n"
-"PO-Revision-Date: 2008-11-09 23:52+0100\n"
-"Last-Translator: David Planella <david.planella@gmail.com>\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2013-09-25 05:59+0200\n"
+"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
+"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Bookmarks: 434,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
-#: e2fsck/badblocks.c:22 misc/mke2fs.c:165
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Bloc erroni %u fora dels límits; s'ignorarà.\n"
-#: e2fsck/badblocks.c:45
+#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
msgstr "en comprovar l'estat del node-i de blocs erronis"
-#: e2fsck/badblocks.c:57
+#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
msgstr "en llegir el node-i de blocs erronis"
-#: e2fsck/badblocks.c:71 e2fsck/iscan.c:112 e2fsck/scantest.c:109
-#: e2fsck/unix.c:1037 e2fsck/unix.c:1120 misc/badblocks.c:1148
-#: misc/badblocks.c:1156 misc/badblocks.c:1170 misc/badblocks.c:1182
-#: misc/dumpe2fs.c:505 misc/e2image.c:576 misc/e2image.c:672
-#: misc/e2image.c:688 misc/mke2fs.c:181 misc/tune2fs.c:1515 resize/main.c:309
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "en intentar obrir %s"
-#: e2fsck/badblocks.c:82
+#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
msgstr "en intentar popen en «%s»"
-#: e2fsck/badblocks.c:93 misc/mke2fs.c:188
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "en llegir la llista de blocs erronis del fitxer"
-#: e2fsck/badblocks.c:104
+#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
msgstr "en actualitzar el node-i de block erronis"
-#: e2fsck/badblocks.c:130
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr ""
"Avís: s'ha trobat el bloc invàlid %u en el node-i de blocs erronis. S'ha "
"esborrat.\n"
-#: e2fsck/ehandler.c:54
+#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
msgstr "S'ha produït un error en llegir el bloc %lu (%s) mentre %s. "
-#: e2fsck/ehandler.c:57
+#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
msgstr "S'ha produït un error en llegir el bloc %lu (%s). "
-#: e2fsck/ehandler.c:60 e2fsck/ehandler.c:109
+#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
msgstr "Ignora l'error"
-#: e2fsck/ehandler.c:61
+#: e2fsck/ehandler.c:62
msgid "Force rewrite"
msgstr "Força la rescriptura"
-#: e2fsck/ehandler.c:103
+#: e2fsck/ehandler.c:104
#, c-format
msgid "Error writing block %lu (%s) while %s. "
msgstr "S'ha produït un error en escriure el bloc %lu (%s) mentre %s. "
-#: e2fsck/ehandler.c:106
+#: e2fsck/ehandler.c:107
#, c-format
msgid "Error writing block %lu (%s). "
msgstr "S'ha produït un error en escriure el bloc %lu (%s). "
-#: e2fsck/emptydir.c:56
+#: e2fsck/emptydir.c:57
msgid "empty dirblocks"
msgstr "blocs de directori buits"
-#: e2fsck/emptydir.c:61
+#: e2fsck/emptydir.c:62
msgid "empty dir map"
msgstr "mapa de directori buit"
-#: e2fsck/emptydir.c:97
+#: e2fsck/emptydir.c:98
#, c-format
msgid "Empty directory block %u (#%d) in inode %u\n"
msgstr "El bloc de directori %u (#%d) en el node-i %u és buit\n"
-#: e2fsck/extend.c:21
+#: e2fsck/extend.c:22
#, c-format
msgid "%s: %s filename nblocks blocksize\n"
msgstr "%s: %s fitxer nblocs midadelbloc\n"
-#: e2fsck/extend.c:43
+#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
msgstr "Nombre de blocs invàlid\n"
-#: e2fsck/extend.c:49
+#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
msgstr "No s'ha pogut assignar el bloc del búfer (mida=%d)\n"
-#: e2fsck/flushb.c:34
+#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
msgstr "Forma d'ús: %s disc\n"
-#: e2fsck/flushb.c:63
+#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr ""
"L'ioctl BLKFLSBUF no està implementat. No es poden buidar els búfers.\n"
-#: e2fsck/iscan.c:46
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Forma d'ús: %s [-F] [-I blocs_del_búfer_del_node_i] dispositiu\n"
-#: e2fsck/iscan.c:83 e2fsck/unix.c:818
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "en obrir %s per a buidar-lo"
-#: e2fsck/iscan.c:88 e2fsck/unix.c:824 resize/main.c:285
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "en intentar buidar %s"
-#: e2fsck/iscan.c:121 e2fsck/scantest.c:116 misc/e2image.c:482
+#: e2fsck/iscan.c:110
+#, fuzzy, c-format
+msgid "while trying to open '%s'"
+msgstr "en intentar obrir %s"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "en obrir l'escaneig de nodes-i"
-#: e2fsck/iscan.c:129 misc/e2image.c:500
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "en obtenir el node-i següent"
-#: e2fsck/iscan.c:138
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u nodes-i escanejats.\n"
-#: e2fsck/journal.c:507
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "s'està llegint el súperbloc del registre de transaccions\n"
-#: e2fsck/journal.c:564
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: no s'ha trobat cap súperbloc del registre de transaccions vàlid\n"
-#: e2fsck/journal.c:573
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: el registre de transaccions és massa curt\n"
-#: e2fsck/journal.c:858
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: recuperació del registre de transaccions\n"
-#: e2fsck/journal.c:860
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr ""
"%s: no es recuperarà el registre de transaccions mentre sigui de només "
"lectura\n"
-#: e2fsck/journal.c:881
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "en intentar tornar a obrir %s"
-#: e2fsck/message.c:110
+#: e2fsck/message.c:113
msgid "aextended attribute"
msgstr "aatribut ampliat"
-#: e2fsck/message.c:111
+#: e2fsck/message.c:114
msgid "Aerror allocating"
msgstr "Aerror en la ubicació"
-#: e2fsck/message.c:112
+#: e2fsck/message.c:115
msgid "bblock"
msgstr "bbloc"
-#: e2fsck/message.c:113
+#: e2fsck/message.c:116
msgid "Bbitmap"
msgstr "Bmapa de bits"
-#: e2fsck/message.c:114
+#: e2fsck/message.c:117
msgid "ccompress"
msgstr "ccompressió"
-#: e2fsck/message.c:115
+#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
msgstr "Centra en conflicte amb algun altre @b del sistema de fitxers"
-#: e2fsck/message.c:116
+#: e2fsck/message.c:119
msgid "iinode"
msgstr "inode-i"
-#: e2fsck/message.c:117
+#: e2fsck/message.c:120
msgid "Iillegal"
msgstr "Iil·legal"
-#: e2fsck/message.c:118
+#: e2fsck/message.c:121
msgid "jjournal"
msgstr "jregistre de transaccions"
-#: e2fsck/message.c:119
+#: e2fsck/message.c:122
msgid "Ddeleted"
msgstr "Dsuprimit"
-#: e2fsck/message.c:120
+#: e2fsck/message.c:123
msgid "ddirectory"
msgstr "ddirectori"
-#: e2fsck/message.c:121
+#: e2fsck/message.c:124
msgid "eentry"
msgstr "eentrada"
-#: e2fsck/message.c:122
+#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
msgstr "E@e «%Dn» a %p (%i)"
-#: e2fsck/message.c:123
+#: e2fsck/message.c:126
msgid "ffilesystem"
msgstr "fsistema de fitxers"
-#: e2fsck/message.c:124
+#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
msgstr "Fper a l'@i %i (%Q) és"
-#: e2fsck/message.c:125
+#: e2fsck/message.c:128
msgid "ggroup"
msgstr "ggrup"
-#: e2fsck/message.c:126
+#: e2fsck/message.c:129
msgid "hHTREE @d @i"
msgstr "h@i del @d HTREE"
-#: e2fsck/message.c:127
+#: e2fsck/message.c:130
msgid "llost+found"
msgstr "llost+found"
-#: e2fsck/message.c:128
+#: e2fsck/message.c:131
msgid "Lis a link"
msgstr "Lés un enllaç"
-#: e2fsck/message.c:129
+#: e2fsck/message.c:132
msgid "mmultiply-claimed"
msgstr "mreclamat múltiplement"
-#: e2fsck/message.c:130
+#: e2fsck/message.c:133
msgid "ninvalid"
msgstr "nno vàlid"
-#: e2fsck/message.c:131
+#: e2fsck/message.c:134
msgid "oorphaned"
msgstr "oorfe"
-#: e2fsck/message.c:132
+#: e2fsck/message.c:135
msgid "pproblem in"
msgstr "pproblema en"
-#: e2fsck/message.c:133
+#: e2fsck/message.c:136
+msgid "qquota"
+msgstr ""
+
+#: e2fsck/message.c:137
msgid "rroot @i"
msgstr "r@i arrel"
-#: e2fsck/message.c:134
+#: e2fsck/message.c:138
msgid "sshould be"
msgstr "shauria de ser"
-#: e2fsck/message.c:135
+#: e2fsck/message.c:139
msgid "Ssuper@b"
msgstr "Ssúper@b"
-#: e2fsck/message.c:136
+#: e2fsck/message.c:140
msgid "uunattached"
msgstr "udesacoblat(s)"
-#: e2fsck/message.c:137
+#: e2fsck/message.c:141
msgid "vdevice"
msgstr "vdispositiu"
# http://en.wikipedia.org/wiki/Extent_(file_systems). Hi ha la ubicació basada en blocs i la ubicació basada en «extents» (dpm).
-#: e2fsck/message.c:138
+#: e2fsck/message.c:142
msgid "xextent"
msgstr "xextensió"
-#: e2fsck/message.c:139
+#: e2fsck/message.c:143
msgid "zzero-length"
msgstr "zmida zero"
-#: e2fsck/message.c:150
+#: e2fsck/message.c:154
msgid "<The NULL inode>"
msgstr "<El node-i NULL>"
-#: e2fsck/message.c:151
+#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
msgstr "<El node-i de blocs erronis>"
-#: e2fsck/message.c:153
-msgid "<The ACL index inode>"
-msgstr "<El node-i de l'índex de les ACL>"
+#: e2fsck/message.c:157
+#, fuzzy
+msgid "<The user quota inode>"
+msgstr "<El node-i del registre de transaccions>"
-#: e2fsck/message.c:154
-msgid "<The ACL data inode>"
-msgstr "<El node-i de les dades de les ACL>"
+#: e2fsck/message.c:158
+#, fuzzy
+msgid "<The group quota inode>"
+msgstr "<El node-i del descriptor de grup>"
-#: e2fsck/message.c:155
+#: e2fsck/message.c:159
msgid "<The boot loader inode>"
msgstr "<El node-i del carregador>"
-#: e2fsck/message.c:156
+#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
msgstr "<El node-i del directori de desfer les supressions>"
-#: e2fsck/message.c:157
+#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
msgstr "<El node-i del descriptor de grup>"
-#: e2fsck/message.c:158
+#: e2fsck/message.c:162
msgid "<The journal inode>"
msgstr "<El node-i del registre de transaccions>"
-#: e2fsck/message.c:159
+#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
msgstr "<Node-i reservat 9>"
-#: e2fsck/message.c:160
+#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
msgstr "<Node-i reservat 10>"
-#: e2fsck/message.c:323
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "fitxer normal"
-#: e2fsck/message.c:325
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "directori"
-#: e2fsck/message.c:327
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "dispositiu"
-#: e2fsck/message.c:329
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "dispositiu d'accés per bloc"
-#: e2fsck/message.c:331
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "conducte amb nom"
-#: e2fsck/message.c:333
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "enllaç simbòlic"
-#: e2fsck/message.c:335
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "sòcol"
-#: e2fsck/message.c:337
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "tips de fitxer desconegut amb mode 0%o"
-#: e2fsck/pass1b.c:215
+#: e2fsck/message.c:423
+#, fuzzy
+msgid "indirect block"
+msgstr "s'està llegint el bloc de directori"
+
+#: e2fsck/message.c:425
+#, fuzzy
+msgid "double indirect block"
+msgstr "s'està llegint el bloc de directori"
+
+#: e2fsck/message.c:427
+#, fuzzy
+msgid "triple indirect block"
+msgstr "s'està llegint el bloc de directori"
+
+#: e2fsck/message.c:429
+#, fuzzy
+msgid "translator block"
+msgstr "últim bloc"
+
+#: e2fsck/message.c:431
+#, fuzzy
+msgid "block #"
+msgstr "bbloc"
+
+#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
msgstr "mapa de nodes-i reclamat múltiplement"
-#: e2fsck/pass1b.c:567 e2fsck/pass1b.c:700
-#, c-format
-msgid "internal error: can't find dup_blk for %u\n"
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
+#, fuzzy, c-format
+msgid "internal error: can't find dup_blk for %llu\n"
msgstr "error intern: no s'ha trobat dup_blk per a %u\n"
-#: e2fsck/pass1b.c:743
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "s'ha tornat de la funció clone_file_block"
# FIXME (dpm)
-#: e2fsck/pass1b.c:762
-#, c-format
-msgid "internal error: couldn't lookup EA block record for %u"
+#: e2fsck/pass1b.c:843
+#, fuzzy, c-format
+msgid "internal error: couldn't lookup EA block record for %llu"
msgstr ""
"error intern: no s'ha pogut cercar el registre de bloc d'atributs ampliats "
"(EA) per a %u"
# FIXME (dpm)
-#: e2fsck/pass1b.c:774
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr ""
"error intern: no s'ha pogut cercar el registre de node-i d'atributs ampliats "
"(EA) per a %u"
-#: e2fsck/pass1.c:430 e2fsck/pass2.c:780
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "s'està llegint el bloc de directori"
-#: e2fsck/pass1.c:552
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "mapa de nodes-i en ús"
-#: e2fsck/pass1.c:561
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "mapa de nodes-i de directoris"
-#: e2fsck/pass1.c:569
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "mapa de nodes-i de fitxers normals"
-#: e2fsck/pass1.c:576
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "mapa de blocs en ús"
-#: e2fsck/pass1.c:630
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "s'està obring l'escaneig de nodes-i"
-#: e2fsck/pass1.c:654
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "s'està obtenint el node-i següent de l'escaneig"
-#: e2fsck/pass1.c:1122
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Pas 1"
-#: e2fsck/pass1.c:1181
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "s'estan llegint els blocs indirectes del node-i %u"
-#: e2fsck/pass1.c:1225
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "mapa de nodes-i malmesos"
-#: e2fsck/pass1.c:1247
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "node-i en el mapa de nodes-i malmesos"
-#: e2fsck/pass1.c:1267
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr ""
-#: e2fsck/pass1.c:1294
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr ""
-#: e2fsck/pass1.c:1393
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr ""
-#: e2fsck/pass1.c:2134
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr ""
-#: e2fsck/pass1.c:2449
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr ""
-#: e2fsck/pass1.c:2453
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr ""
-#: e2fsck/pass1.c:2457
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr ""
-#: e2fsck/pass2.c:284
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Pas 2"
-#: e2fsck/pass2.c:803
+#: e2fsck/pass2.c:805
msgid "Can not continue."
msgstr "No es pot continuar."
-#: e2fsck/pass3.c:79
+#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr ""
# FIXME: «Memòria màxima»? (dpm)
-#: e2fsck/pass3.c:90
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Pic de memòria"
-#: e2fsck/pass3.c:146
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Pas 3"
-#: e2fsck/pass3.c:334
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr ""
@@ -575,184 +605,184 @@ msgstr ""
msgid "Pass 4"
msgstr "Pas 4"
-#: e2fsck/pass5.c:70
+#: e2fsck/pass5.c:74
msgid "Pass 5"
msgstr "Pas 5"
-#: e2fsck/problem.c:50
+#: e2fsck/problem.c:51
msgid "(no prompt)"
msgstr "(sense pregunta)"
-#: e2fsck/problem.c:51
+#: e2fsck/problem.c:52
msgid "Fix"
msgstr "Arregla"
-#: e2fsck/problem.c:52
+#: e2fsck/problem.c:53
msgid "Clear"
msgstr "Esborra"
-#: e2fsck/problem.c:53
+#: e2fsck/problem.c:54
msgid "Relocate"
msgstr "Reubica"
-#: e2fsck/problem.c:54
+#: e2fsck/problem.c:55
msgid "Allocate"
msgstr "Ubica"
-#: e2fsck/problem.c:55
+#: e2fsck/problem.c:56
msgid "Expand"
msgstr "Expandeix"
-#: e2fsck/problem.c:56
+#: e2fsck/problem.c:57
msgid "Connect to /lost+found"
msgstr "Connecta amb /lost+found"
-#: e2fsck/problem.c:57
+#: e2fsck/problem.c:58
msgid "Create"
msgstr "Crea"
-#: e2fsck/problem.c:58
+#: e2fsck/problem.c:59
msgid "Salvage"
msgstr "Salva"
-#: e2fsck/problem.c:59
+#: e2fsck/problem.c:60
msgid "Truncate"
msgstr "Trunca"
-#: e2fsck/problem.c:60
+#: e2fsck/problem.c:61
msgid "Clear inode"
msgstr "Esborra el node-i"
-#: e2fsck/problem.c:61
+#: e2fsck/problem.c:62
msgid "Abort"
msgstr "Interromp"
-#: e2fsck/problem.c:62
+#: e2fsck/problem.c:63
msgid "Split"
msgstr "Divideix"
-#: e2fsck/problem.c:63
+#: e2fsck/problem.c:64
msgid "Continue"
msgstr "Continua"
-#: e2fsck/problem.c:64
+#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
msgstr "Clona els blocs reclamats múltiplement"
-#: e2fsck/problem.c:65
+#: e2fsck/problem.c:66
msgid "Delete file"
msgstr "Suprimeix el fitxer"
-#: e2fsck/problem.c:66
+#: e2fsck/problem.c:67
msgid "Suppress messages"
msgstr "Suprimeix els missatges"
-#: e2fsck/problem.c:67
+#: e2fsck/problem.c:68
msgid "Unlink"
msgstr "Desfés l'enllaç"
-#: e2fsck/problem.c:68
+#: e2fsck/problem.c:69
msgid "Clear HTree index"
msgstr "Esborra l'índex HTree"
-#: e2fsck/problem.c:69
+#: e2fsck/problem.c:70
msgid "Recreate"
msgstr "Torna a crear"
-#: e2fsck/problem.c:78
+#: e2fsck/problem.c:79
msgid "(NONE)"
msgstr "(CAP)"
-#: e2fsck/problem.c:79
+#: e2fsck/problem.c:80
msgid "FIXED"
msgstr "ARREGLAT"
-#: e2fsck/problem.c:80
+#: e2fsck/problem.c:81
msgid "CLEARED"
msgstr "ESBORRAT"
-#: e2fsck/problem.c:81
+#: e2fsck/problem.c:82
msgid "RELOCATED"
msgstr "REUBICAT"
-#: e2fsck/problem.c:82
+#: e2fsck/problem.c:83
msgid "ALLOCATED"
msgstr "ASSIGNAT"
-#: e2fsck/problem.c:83
+#: e2fsck/problem.c:84
msgid "EXPANDED"
msgstr "EXPANDIT"
-#: e2fsck/problem.c:84
+#: e2fsck/problem.c:85
msgid "RECONNECTED"
msgstr "RECONNECTAT"
-#: e2fsck/problem.c:85
+#: e2fsck/problem.c:86
msgid "CREATED"
msgstr "CREAT"
-#: e2fsck/problem.c:86
+#: e2fsck/problem.c:87
msgid "SALVAGED"
msgstr "SALVAT"
-#: e2fsck/problem.c:87
+#: e2fsck/problem.c:88
msgid "TRUNCATED"
msgstr "TRUNCAT"
-#: e2fsck/problem.c:88
+#: e2fsck/problem.c:89
msgid "INODE CLEARED"
msgstr "NODE-I ESBORRAT"
-#: e2fsck/problem.c:89
+#: e2fsck/problem.c:90
msgid "ABORTED"
msgstr "INTERROMPUT"
-#: e2fsck/problem.c:90
+#: e2fsck/problem.c:91
msgid "SPLIT"
msgstr "DIVIDIT"
# FIXME
-#: e2fsck/problem.c:91
+#: e2fsck/problem.c:92
msgid "CONTINUING"
msgstr "CONTINUAT"
-#: e2fsck/problem.c:92
+#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
msgstr "CLONATS ELS BLOCS RECLAMATS MÚLTIPLEMENT"
-#: e2fsck/problem.c:93
+#: e2fsck/problem.c:94
msgid "FILE DELETED"
msgstr "FITXER SUPRIMIT"
-#: e2fsck/problem.c:94
+#: e2fsck/problem.c:95
msgid "SUPPRESSED"
msgstr "SUPRIMIT"
-#: e2fsck/problem.c:95
+#: e2fsck/problem.c:96
msgid "UNLINKED"
msgstr "ENLLAÇ DESFET"
-#: e2fsck/problem.c:96
+#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
msgstr "ÃNDEX HTREE ESBORRAT"
-#: e2fsck/problem.c:97
+#: e2fsck/problem.c:98
msgid "WILL RECREATE"
msgstr "ES TORNARÀ A CREAR"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:106
+#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
msgstr "El @b @B per al @g %g no és a @g. (@b %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:110
+#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
msgstr "El @i @B per al @g %g no és a @g. (@b %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
-#: e2fsck/problem.c:115
+#: e2fsck/problem.c:116
msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
@@ -761,21 +791,25 @@ msgstr ""
"AVÃS: POSSIBLE PÈRDUA DE DADES GREU.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
-#: e2fsck/problem.c:121
-#, c-format
+#: e2fsck/problem.c:122
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -790,7 +824,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:130
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -803,7 +837,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:137
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -814,24 +848,24 @@ msgstr ""
"coincideixen amb la mida del @b.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:144
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "@bs_per_grup del @S = %b, hauria d'haver estat %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:149
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "primer_@b_de_dades del @S = %b, hauria d'haver estat %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:154
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
msgstr "El @f no té cap UUID; se li'n generarà un.\n"
-#: e2fsck/problem.c:159
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -843,48 +877,48 @@ msgid ""
msgstr ""
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:168
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "El @S està malmès. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:173
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "S'ha produït un error en determinar la mida del @v físic: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:178
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "El nombre de nodes-i en el @S és %i (@s %j).\n"
-#: e2fsck/problem.c:182
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "El Hurd no és compatible amb la funcionalitat de tipus de fitxer.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:187
+#: e2fsck/problem.c:190
#, fuzzy, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "El @S té un @j ext3 @n (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:192
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "El @j extern té múltiples usuaris del @f (no compatible).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:197
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "No s'ha trobat el @j extern\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:202
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "El @j extern té un @S malmès\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:207
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "El @j extern no és compatible amb aquest @f\n"
@@ -892,7 +926,7 @@ msgstr "El @j extern no és compatible amb aquest @f\n"
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#. @-expanded: format.\n
#. @-expanded: It is also possible the journal superblock is corrupt.\n
-#: e2fsck/problem.c:212
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
@@ -901,19 +935,19 @@ msgid ""
msgstr ""
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:220
+#: e2fsck/problem.c:223
#, fuzzy
msgid "@j @S is corrupt.\n"
msgstr "El @S del @j ext3 està malmès.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:225
+#: e2fsck/problem.c:228
#, fuzzy, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr "El senyalador de recuperació està buit, però el @j té dades.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:230
+#: e2fsck/problem.c:233
#, fuzzy
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr ""
@@ -921,64 +955,54 @@ msgstr ""
"activat, però no té cap @j.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:235
+#: e2fsck/problem.c:238
#, fuzzy
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr "El senyalador de recuperació està buit, però el @j té dades.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:240
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Esborra el @j"
-#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:245
-msgid "Run @j anyway"
-msgstr "Executa el @j de totes maneres"
-
-#. @-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"
+#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
+msgid "@f has feature flag(s) set, but is a revision 0 @f. "
msgstr ""
-"El senyalador de recuperació no està definit en la còpia del @S, per la qual "
-"cosa s'executarà el @j de totes maneres.\n"
+"El @f té els senyaladors de funcionalitat (feature) definits, però és un @f "
+"de revisió 0. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:255
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s @i @o %i (uid=%Iu, gid=%Ig, mode=%Im, mida=%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"
+#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:258
+#, fuzzy
+msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "@b @I #%B (%b) trobat a l'@i @o %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"
+#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:263
+#, fuzzy
+msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "@b ja esborrat #%B (%b) trobat a l'@i @o %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:270
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@i @o @I %i en el @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:275
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "@i @o @I %i a la llista de nodes-i @os.\n"
-#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:280 e2fsck/problem.c:647
-msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr ""
-"El @f té els senyaladors de funcionalitat (feature) definits, però és un @f "
-"de revisió 0. "
-
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:285
+#: e2fsck/problem.c:278
#, fuzzy
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr ""
@@ -986,7 +1010,7 @@ msgstr ""
"lectura definit.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:290
+#: e2fsck/problem.c:283
#, fuzzy
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr ""
@@ -994,13 +1018,13 @@ msgstr ""
"lectura definit.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:295
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "La versió del @j no funciona amb aquest e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:300
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1011,7 +1035,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:305
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1023,7 +1047,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:310
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1033,9 +1057,21 @@ msgstr ""
"S'estan esborrant els camps més enllà del @S del @j de V1...\n"
"\n"
+#. @-expanded: Run journal anyway
+#: e2fsck/problem.c:309
+msgid "Run @j anyway"
+msgstr "Executa el @j de totes maneres"
+
+#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
+#: e2fsck/problem.c:314
+msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
+msgstr ""
+"El senyalador de recuperació no està definit en la còpia del @S, per la qual "
+"cosa s'executarà el @j de totes maneres.\n"
+
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:316
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1046,198 +1082,272 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:321
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
msgstr ""
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:327
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr ""
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:332
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr ""
-#. @-expanded: superblock last mount time is in the future.
-#: e2fsck/problem.c:337
-msgid "@S last mount time is in the future. "
+#. @-expanded: superblock last mount time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:340
+#, fuzzy
+msgid ""
+"@S last mount time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr "La darrera hora de muntatge del @S és en el futur. "
-#. @-expanded: superblock last write time is in the future.
-#: e2fsck/problem.c:342
-msgid "@S last write time is in the future. "
+#. @-expanded: superblock last write time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:345
+#, fuzzy
+msgid ""
+"@S last write time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr "La darrera hora d'escriptura del @S és en el futur. "
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:346
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr ""
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:351
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
msgstr ""
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:356
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
msgstr ""
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:361
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr ""
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:366
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr ""
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:371
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr ""
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:376
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr ""
-#: e2fsck/problem.c:381
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr ""
"La transacció del registre de transaccions %i està malmesa, se n'ha "
"interromput la repetició\n"
-#: e2fsck/problem.c:385
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr ""
+#. @-expanded: superblock last mount time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set)
+#: e2fsck/problem.c:388
+msgid ""
+"@S last mount time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
+msgstr ""
+
+#. @-expanded: superblock last write time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set).
+#: e2fsck/problem.c:394
+msgid ""
+"@S last write time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
+msgstr ""
+
+#. @-expanded: One or more block group descriptor checksums are invalid.
+#: e2fsck/problem.c:400
+msgid "One or more @b @g descriptor checksums are invalid. "
+msgstr ""
+
+#. @-expanded: Setting free inodes count to %j (was %i)\n
+#: e2fsck/problem.c:405
+#, fuzzy
+msgid "Setting free @is count to %j (was %i)\n"
+msgstr "Establiment del nombre de blocs reservats a %lu\n"
+
+#. @-expanded: Setting free blocks count to %c (was %b)\n
+#: e2fsck/problem.c:410
+#, fuzzy
+msgid "Setting free @bs count to %c (was %b)\n"
+msgstr "Establiment del nombre de blocs reservats a %lu\n"
+
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+#, fuzzy
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr ""
+"S'està traslladant el @j de /%s al @i ocult.\n"
+"\n"
+
+#. @-expanded: superblock has invalid MMP block.
+#: e2fsck/problem.c:420
+#, fuzzy
+msgid "@S has invalid MMP block. "
+msgstr "mida de bloc invàlida - %s"
+
+#. @-expanded: superblock has invalid MMP magic.
+#: e2fsck/problem.c:425
+msgid "@S has invalid MMP magic. "
+msgstr ""
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr ""
+
+#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr ""
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
-#: e2fsck/problem.c:392
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Pas 1: comprovació de nodes-i, @bs i mides\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:396
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "el @r no és un @d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:401
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr "el @r té el dtime definit (segurament degut a un mke2fs antic)."
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:406
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "El @i %i (%Q) té un mode @n. "
# FIXME dtime (dpm)
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:411
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "El @i %i @D té un dtime zero. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:416
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "El @i %i s'està utilitzant, però té dtime definit."
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:421
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "El @i %i és un @d de @z. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:426
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
msgstr ""
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:431
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
msgstr ""
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:436
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr ""
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:441
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr ""
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:446
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr ""
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:451
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr ""
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:456
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr ""
-#. @-expanded: illegal block #%B (%b) in inode %i.
-#: e2fsck/problem.c:461
-msgid "@I @b #%B (%b) in @i %i. "
-msgstr ""
+#. @-expanded: illegal %B (%b) in inode %i.
+#: e2fsck/problem.c:516
+#, fuzzy
+msgid "@I %B (%b) in @i %i. "
+msgstr "Hi ha un número (%B) de @b no vàlid (%b) al @i de @b erronis. "
-#. @-expanded: block #%B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:466
-msgid "@b #%B (%b) overlaps @f metadata in @i %i. "
+#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
+#: e2fsck/problem.c:521
+msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr ""
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:471
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "El @i %i té @bs no vàlids. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:476
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Hi ha massa @b no vàlids al @i %i.\n"
-#. @-expanded: illegal block #%B (%b) in bad block inode.
-#: e2fsck/problem.c:481
-msgid "@I @b #%B (%b) in bad @b @i. "
+#. @-expanded: illegal %B (%b) in bad block inode.
+#: e2fsck/problem.c:536
+#, fuzzy
+msgid "@I %B (%b) in bad @b @i. "
msgstr "Hi ha un número (%B) de @b no vàlid (%b) al @i de @b erronis. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:486
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "El @i de @b erronis té @bs no vàlids. "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:491
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "S'està utilitzant el @b duplicat o erroni\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:496
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr ""
@@ -1245,7 +1355,7 @@ msgstr ""
#. @-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:501
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1255,7 +1365,7 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:508
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1266,7 +1376,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:513
+#: e2fsck/problem.c:568
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"
@@ -1274,128 +1384,128 @@ msgid ""
msgstr ""
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "El @S primary (%b) és a la llista de @bs erronis.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
msgstr ""
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:530
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Avís: el @S (%b) del grup %s és erroni.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:535
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
msgstr ""
"Avís: la còpia dels descriptors de @g del grup %g té un @b erroni (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:541
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
msgstr ""
"Es probable que s'hagi produït un error de programació: el @b #%b ha estat "
"reclamat sense motiu a process_bad_@b.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:547
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr ""
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:552
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "@A de la memòria intermèdia del @b per a reubicar %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:557
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "S'està reubicant %g del @g %s de %b a %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "S'està reubicant %g del @g %s a %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Avís: no s'ha pogut llegir el @b %b de %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:572
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Avís: no s'ha pogut escriure el @b %b per a %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:577 e2fsck/problem.c:1378
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "S'ha produït un @A del @B del @i (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:582
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "S'ha produït un @A del @B del @b (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:587
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr ""
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:592
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr ""
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:597
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "S'ha produït un error en escanejar els nodes-i (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:602
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr "S'ha produït un error en iterar a través dels @bs del @i (%i): %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:607
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr ""
"S'ha produït un error en desar la informació del nombre de nodes-i (@i=%i, "
"nombre=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:612
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
msgstr ""
"S'ha produït un error en desar la informació del @b de @d (@i=%i, @b=%b, núm="
"%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:618
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "S'ha produït un error en llegir el @i %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:626
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr ""
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:631
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1403,7 +1513,7 @@ msgid ""
msgstr ""
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:637
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr ""
@@ -1411,111 +1521,113 @@ msgstr ""
"@c. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:642
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr ""
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:652
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "El @i del @j no s'utilitza, però conté dades. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:657
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "El @j no és un fitxer normal. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:662
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "El @i %i és part de la llista de nodes-i @os. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:668
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr ""
"S'han trobat nodes-i que són part d'una llista enllaçada d'orfes malmesa. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:673
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr ""
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:678
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr "S'ha produït un error en llegir el @b d'@a del @i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:683
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "El @i %i té un @b d'@a %b malmès. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:688
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "S'ha produït un error en llegir el @b d'@a %b (%m). "
-#. @-expanded: extended attribute block %b has reference count %B, should be %N.
-#: e2fsck/problem.c:693
-msgid "@a @b %b has reference count %B, @s %N. "
-msgstr ""
+#. @-expanded: extended attribute block %b has reference count %r, should be %N.
+#: e2fsck/problem.c:748
+#, fuzzy
+msgid "@a @b %b has reference count %r, @s %N. "
+msgstr "el nombre de referències del @i %s és %Il, @s %N."
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:698
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "S'ha produït un error en escriure el @b d'@a %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:703
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr ""
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:708
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "S'ha produït un @A del @b d'@a %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:713
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "El @b d'@a està malmès (col·lisió en la ubicació). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:718
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "El @b d'@a està malmès (nom @n). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:723
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "El @b d'@a està malmès (valor @n). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:728
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "El @i %i és massa gran. "
-#. @-expanded: block #%B (%b) causes directory to be too big.
-#: e2fsck/problem.c:732
-msgid "@b #%B (%b) causes @d to be too big. "
+#. @-expanded: %B (%b) causes directory to be too big.
+#: e2fsck/problem.c:787
+#, fuzzy
+msgid "%B (%b) causes @d to be too big. "
msgstr "El @b #%B (%b) fa que el @d sigui massa gran. "
-#. @-expanded: block #%B (%b) causes file to be too big.
-#: e2fsck/problem.c:737
-msgid "@b #%B (%b) causes file to be too big. "
+#: e2fsck/problem.c:792
+#, fuzzy
+msgid "%B (%b) causes file to be too big. "
msgstr "El @b #%B (%b) fa que el fitxer sigui massa gran. "
-#. @-expanded: block #%B (%b) causes symlink to be too big.
-#: e2fsck/problem.c:742
-msgid "@b #%B (%b) causes symlink to be too big. "
+#: e2fsck/problem.c:797
+#, fuzzy
+msgid "%B (%b) causes symlink to be too big. "
msgstr "El @b #%B (%b) fa que l'enllaç simbòlic sigui massa gran. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:747
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr ""
@@ -1523,91 +1635,91 @@ msgstr ""
"l'htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:752
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "El @i %i té el senyalador INDEX_FL definit però no és un @d.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:757
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr ""
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:762
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr ""
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:767
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr ""
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:772
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr ""
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:777
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
msgstr ""
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:783
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr ""
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:788
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "El @i té una mida addicional (%IS) què no és vàlida\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:793
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "La llargada del nom (%N) de l'@a del @i %i no és vàlida\n"
-#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:798
-msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "La mida del valor (%N) de l'@a del @i %i no és vàlida\n"
-
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:803
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr "El desplaçament del valor (%N) de l'@a del @i %i no és vàlid\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:808
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr "El @b del valor (%N) de l'@a del @i %i no és vàlid (hauria de ser 0)\n"
+#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
+#: e2fsck/problem.c:863
+msgid "@a in @i %i has a value size (%N) which is @n\n"
+msgstr "La mida del valor (%N) de l'@a del @i %i no és vàlida\n"
+
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:813
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "L'@a del @i %i té un resum (%N) que no és vàlid\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:818
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr "El @i %i és un %It, però sembla ser un directori en realitat.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:823
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr "S'ha produït un error en llegir l'arbre d'@x al @i %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:828
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1615,7 +1727,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:834
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1623,14 +1735,14 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:839
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:844
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr ""
@@ -1638,39 +1750,93 @@ msgstr ""
"amb l'extensió.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:849
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr ""
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:854
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr ""
-#: e2fsck/problem.c:859
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr ""
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:864
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:868
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr ""
+#. @-expanded: Error converting subcluster block bitmap: %m\n
+#: e2fsck/problem.c:928
+#, fuzzy, c-format
+msgid "Error converting subcluster @b @B: %m\n"
+msgstr "S'ha produït en iterar pels @bs de @d: %m\n"
+
+#. @-expanded: quota inode is not regular file.
+#: e2fsck/problem.c:933
+#, fuzzy
+msgid "@q @i is not regular file. "
+msgstr "El @j no és un fitxer normal. "
+
+#. @-expanded: quota inode is not in use, but contains data.
+#: e2fsck/problem.c:938
+#, fuzzy
+msgid "@q @i is not in use, but contains data. "
+msgstr "El @i del @j no s'utilitza, però conté dades. "
+
+#. @-expanded: quota inode is visible to the user.
+#: e2fsck/problem.c:943
+#, fuzzy
+msgid "@q @i is visible to the user. "
+msgstr "El @i %i s'està utilitzant, però té dtime definit."
+
+#. @-expanded: The bad block inode looks invalid.
+#: e2fsck/problem.c:948
+#, fuzzy
+msgid "The bad @b @i looks @n. "
+msgstr "<El node-i de blocs erronis>"
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+
#. @-expanded: \n
#. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n
#. @-expanded: Pass 1B: Rescanning for multiply-claimed blocks\n
-#: e2fsck/problem.c:875
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1678,70 +1844,71 @@ msgid ""
msgstr ""
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:881
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "@b(s) reclamat(s) múltiplement del @i %i:"
-#: e2fsck/problem.c:896
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "S'ha produït un error en escanejar els nodes-i (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:901
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr ""
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:906
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr "S'ha produït un error en iterar pels @bs al @i %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:911 e2fsck/problem.c:1227
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr ""
"S'ha produït un error en ajustar el nombre de referències del @b d'@a %b (@i "
"%i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:917
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr ""
"Pas 1C: escaneig dels directoris dels nodes-i amb @bs reclamats "
"múltiplement\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:923
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Pas 1D: conciliació dels @bs reclamats múltiplement\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:928
+#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
+#: e2fsck/problem.c:1026
+#, fuzzy
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
-" has %B @m @b(s), shared with %N file(s):\n"
+" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
"El fitxer %Q (@i #%i, hora de mod %IM) \n"
" té %B @b(s) @m, compartits amb %N fitxer(s):\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:934
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (@i #%i, hora de modificació %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:939
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<metadades del @f>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:944
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1749,7 +1916,7 @@ msgstr "(Hi ha %N nodes-i que contenen @bs múltiplement reclamats.)\n"
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:949
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
@@ -1757,317 +1924,327 @@ msgstr ""
"@bs reclamats múltiplement ja reassignats o clonats.\n"
"\n"
-#: e2fsck/problem.c:962
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "No s'ha pogut clonar el fitxer: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:968
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Pas 2: comprovació de l'estructura del @d\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:973
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:978
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:983
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:988
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "L'@E @L a «.»"
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:993
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "L'@E apunta al @i (%Di) ubicat en un @b malmès.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:998
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "L'@E @L al @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1003
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "L'@E @L al @r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1008
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "El nom de l'@E conté caràcters no vàlids.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1013
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "Manca el «.» en el @i de @d %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1018
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "Manca el «..» en el @i de @d %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1023
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr "La primera @e «%Dn» (@i=%Di) en el @i de @d %i (%p) @s «.»\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1028
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "La segona @e «%Dn» (@i=%Di) en el @i de @d %i (%p) @s «..»\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1033
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr ""
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1038
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr ""
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1043
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr ""
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1048
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr ""
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1053
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr ""
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1058
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "El @i %i (%Q) té un mode @n (%Im).\n"
-#. @-expanded: directory inode %i, block %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1063
-msgid "@d @i %i, @b %B, offset %N: @d corrupted\n"
-msgstr ""
+#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
+#: e2fsck/problem.c:1161
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: @d corrupted\n"
+msgstr "@i de @d %i, @b %B, desplaçament %N: el nom de fitxer és massa llarg\n"
-#. @-expanded: directory inode %i, block %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1068
-msgid "@d @i %i, @b %B, offset %N: filename too long\n"
+#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
+#: e2fsck/problem.c:1166
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "@i de @d %i, @b %B, desplaçament %N: el nom de fitxer és massa llarg\n"
-#. @-expanded: directory inode %i has an unallocated block #%B.
-#: e2fsck/problem.c:1073
-msgid "@d @i %i has an unallocated @b #%B. "
+#. @-expanded: directory inode %i has an unallocated %B.
+#: e2fsck/problem.c:1171
+#, fuzzy
+msgid "@d @i %i has an unallocated %B. "
msgstr "El @i de @d %i té un @b #%B no ubicat. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1078
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "L'@e de @d «.» en el @i de @d %i no acaba en NUL\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1083
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "L'@e de @d «..» en el @i de @d %i no acaba en NUL\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1088
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "El @i %i (%Q) és un @v de caràcters @I.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1093
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "El @i %i (%Q) és un @v de blocs @I.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1098
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "L'@E és un duplicat de l'@e «.»\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1103
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "L'@E és un duplicat de l'@e «..»\n"
-#: e2fsck/problem.c:1108 e2fsck/problem.c:1403
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "S'ha produït un error intern: no s'ha trobat dir_info per a %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1113
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr ""
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1118
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "@A de l'estructura icount: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1123
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "S'ha produït en iterar pels @bs de @d: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1128
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "S'ha produït un error en llegir el @b de @d %b (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1133
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "S'ha produït un error en escriure el @b de @d %b (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1138
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr ""
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1143
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "S'ha produït un error en desubicar el @i %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1148
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "L'@e de @d per a «.» a %p (%i) és gran. \n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1153
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "El @i %i (%Q) és una FIFO no vàlida.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1158
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "El @i %i (%Q) és un sòcol @I.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1163
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "S'està establint el tipus de fitxer per a l'@E a %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1168
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "El tipus de fitxer de l'@E és incorrecte (és %Dt, @s %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1173
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "El tipus de fitxer de l@E està definit.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1178
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "El nom de l'@E és de @z.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1183
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "L'enllaç simbòlic %Q (@i #%i) és @n.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1188
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "El @b d'@a @F @n (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1193
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr ""
"El @f conté fitxers grans, però li manca el senyalador LARGE_FILE al @S.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) not referenced\n
-#: e2fsck/problem.c:1198
-msgid "@p @h %d: node (%B) not referenced\n"
+#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
+#: e2fsck/problem.c:1296
+#, fuzzy
+msgid "@p @h %d: %B not referenced\n"
msgstr "S'ha produït un @p al @h %d: el node (%B) no està referenciat\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) referenced twice\n
-#: e2fsck/problem.c:1203
-msgid "@p @h %d: node (%B) referenced twice\n"
+#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
+#: e2fsck/problem.c:1301
+#, fuzzy
+msgid "@p @h %d: %B referenced twice\n"
msgstr ""
"S'ha produït un @p al @h %d: el node (%B) està referenciat dues vegades\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad min hash\n
-#: e2fsck/problem.c:1208
-msgid "@p @h %d: node (%B) has bad min hash\n"
-msgstr ""
+#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
+#: e2fsck/problem.c:1306
+#, fuzzy
+msgid "@p @h %d: %B has bad min hash\n"
+msgstr "@p en el @h %d: el node (%B) té una profunditat (%N) @na\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad max hash\n
-#: e2fsck/problem.c:1213
-msgid "@p @h %d: node (%B) has bad max hash\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
+#: e2fsck/problem.c:1311
+msgid "@p @h %d: %B has bad max hash\n"
msgstr ""
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1218
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "el @h %d (%q) és @n. "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1222
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1232
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr ""
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid limit (%N)\n
-#: e2fsck/problem.c:1237
-msgid "@p @h %d: node (%B) has @n limit (%N)\n"
-msgstr ""
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
+#: e2fsck/problem.c:1335
+#, fuzzy
+msgid "@p @h %d: %B has @n limit (%N)\n"
+msgstr "@p en el @h %d: el node (%B) té una profunditat (%N) @na\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid count (%N)\n
-#: e2fsck/problem.c:1242
-msgid "@p @h %d: node (%B) has @n count (%N)\n"
-msgstr ""
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
+#: e2fsck/problem.c:1340
+#, fuzzy
+msgid "@p @h %d: %B has @n count (%N)\n"
+msgstr "@p en el @h %d: el node (%B) té una profunditat (%N) @na\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
-#: e2fsck/problem.c:1247
-msgid "@p @h %d: node (%B) has an unordered hash table\n"
-msgstr ""
+#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
+#: e2fsck/problem.c:1345
+#, fuzzy
+msgid "@p @h %d: %B has an unordered hash table\n"
+msgstr "@p en el @h %d: el node (%B) té una profunditat (%N) @na\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth (%N)\n
-#: e2fsck/problem.c:1252
-msgid "@p @h %d: node (%B) has @n depth (%N)\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
+#: e2fsck/problem.c:1350
+#, fuzzy
+msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "@p en el @h %d: el node (%B) té una profunditat (%N) @na\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1257
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "S'ha trobat una @E duplicada. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1262
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2079,7 +2256,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1267
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2090,111 +2267,116 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1272
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr ""
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1277
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "No s'esperava el @b al @h %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1281
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1286
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
+#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
+#: e2fsck/problem.c:1389
+msgid "i_file_acl_hi @F %N, @s zero.\n"
+msgstr ""
+
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1293
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Pas 3: comprovació de la connectivitat dels @ds\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1298
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "El @r no està ubicat. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1303
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "No hi ha prou espai en el @d @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1308
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "@i de @d %i desconnectat (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1313
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "No s'ha trobat /@l. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1318
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "«..» a %Q (%i) és %P (%j), @s %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1323
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "El directori /@l no existeix o està malmès. No es pot reconnectar.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1328
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "No s'ha pogut expandir el directori /@l: %m\n"
-#: e2fsck/problem.c:1333
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "No s'ha pogut reconnectar %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1338
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "S'ha produït un error en cercar el directori /@l: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1343
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_block: %m en intentar crear el @d /@l\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1348
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_inode: %m en intentar crear el @d /@l\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr "ext2fs_new_dir_block: %m en crear el @b de @d nou\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr "ext2fs_new_dir_block: %m en crear el @b de @d nou per a /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "S'ha produït un error en ajustar el nombre de nodes-i al @i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1368
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2205,7 +2387,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1373
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2215,76 +2397,76 @@ msgstr ""
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1383
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "S'ha produït un error en crear el @d arrel (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1388
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "S'ha produït un error en crear el @d /@l (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1393
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "el @r no és un @d; s'interromprà.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1398
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "No es pot continuar sense un @r.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1408
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/@l no és un @d (node-i=%i)\n"
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Pas 3A: optimització dels directoris\n"
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1523
#, fuzzy, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "No s'ha pogut crear l'iterador dirs_to_hash: %m"
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1528
#, fuzzy
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "No s'ha pogut optimitzar el directori %q (%d): %m"
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "S'estan optimitzant els directoris: "
-#: e2fsck/problem.c:1447
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Pas 4: comprovació dels nombres de referències\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1452
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "@i de @z %i @u. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1457
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "@i %i @u\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1462
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "el nombre de referències del @i %s és %Il, @s %N."
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
-#: e2fsck/problem.c:1466
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2298,148 +2480,152 @@ msgstr ""
# FIXME
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1476
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Pas 5: comprovació del resum de la informació del @g\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1481
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr ""
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1486
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr ""
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1491
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr ""
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1511
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr ""
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1531
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
-"El nombre de nodes-i lliures no es correcte per al @g núm. %g (%i, recompte=%"
-"j).\n"
+"El nombre de nodes-i lliures no es correcte per al @g núm. %g (%i, recompte="
+"%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1536
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
"El nombre de directoris no es correcte per al @g núm. %g (%i, recompte=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1541
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "El nombre de nodes-i lliures no es correcte (%i, recompte=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1546
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr ""
-"El nombre de @bs lliures no es correcte per al @g núm. %g (%i, recompte=%"
-"j).\n"
+"El nombre de @bs lliures no es correcte per al @g núm. %g (%i, recompte="
+"%j).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1551
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "El nombre de @bs lliures no es correcte (%i, recompte=%j).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1556
+#: e2fsck/problem.c:1659
msgid ""
"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
"endpoints (%i, %j)\n"
msgstr ""
-#: e2fsck/problem.c:1562
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr ""
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1567
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr ""
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1572
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr ""
-#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1597
-#, fuzzy
-msgid "Recreate @j"
-msgstr "Torna a crear"
-
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1602
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr ""
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1607
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1725
+#. @-expanded: Recreate journal
+#: e2fsck/problem.c:1712
+#, fuzzy
+msgid "Recreate @j"
+msgstr "Torna a crear"
+
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr ""
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "S'ha produït un error amb un codi no gestionat (0x%x)\n"
-#: e2fsck/problem.c:1820
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "IGNORAT"
-#: e2fsck/scantest.c:81
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Memòria utilitzada: %d, temps transcorregut: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:100
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "mida del node-i=%d\n"
-#: e2fsck/scantest.c:121
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "en iniciar l'exploració dels nodes-i"
-#: e2fsck/scantest.c:132
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "en fer l'exploració dels nodes-i"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "en fer la crida a ext2fs_block_iterate per al node-i %d"
-#: e2fsck/super.c:209
-#, c-format
-msgid "while calling ext2fs_adjust_ea_refcount for inode %d"
+#: e2fsck/super.c:213
+#, fuzzy, c-format
+msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "en fer la crida a ext2fs_adjust_ea_refcount per al node-i %d"
-#: e2fsck/super.c:267
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Truncament"
-#: e2fsck/super.c:268
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Neteja"
-#: e2fsck/unix.c:76
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2452,8 +2638,7 @@ msgstr ""
"\t\t[-l|-L fitxer_de_blocs_erronis] [-C fd] [-j reg_de_trans_extern]\n"
"\t\t[-E opcions_ampliades] dispositiu\n"
-#: e2fsck/unix.c:82
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
@@ -2474,8 +2659,7 @@ msgstr ""
" -f Força la comprovació encara que el sistema de fitxers "
"s'hagi marcat com a net\n"
-#: e2fsck/unix.c:88
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2485,39 +2669,158 @@ msgid ""
" -L bad_blocks_file Set badblocks list\n"
msgstr ""
-#: e2fsck/unix.c:132
-#, c-format
-msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %u/%u blocks\n"
+#: e2fsck/unix.c:131
+#, fuzzy, c-format
+msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %u/%u fitxers (%0d.%d%% no contigus), %u/%u blocs\n"
-# ind: indirect, dind: double indirect, tind: triple indirect (dpm)
-#: e2fsck/unix.c:150
+#: e2fsck/unix.c:157
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " nombre de nodes-i amb blocs ind/dind/tind: %u/%u/%u\n"
+msgid ""
+"\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
+msgid_plural ""
+"\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
+msgstr[0] ""
+msgstr[1] ""
-#: e2fsck/unix.c:157
+#: e2fsck/unix.c:161
#, c-format
-msgid " Extent depth histogram: "
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:166
+#, c-format
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+# ind: indirect, dind: double indirect, tind: triple indirect (dpm)
+#: e2fsck/unix.c:171
+#, fuzzy, c-format
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " nombre de nodes-i amb blocs ind/dind/tind: %u/%u/%u\n"
+
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
msgstr ""
-#: e2fsck/unix.c:207 misc/badblocks.c:916 misc/tune2fs.c:1567 misc/util.c:151
-#: resize/main.c:248
+#: e2fsck/unix.c:188
+#, c-format
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:192
+#, fuzzy, c-format
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%u nodes-i, %u blocs\n"
+msgstr[1] "%u nodes-i, %u blocs\n"
+
+#: e2fsck/unix.c:194
+#, fuzzy, c-format
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "fitxer normal"
+msgstr[1] "fitxer normal"
+
+#: e2fsck/unix.c:196
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u regular file\n"
+msgid_plural ""
+"\n"
+"%12u regular files\n"
+msgstr[0] "fitxer normal"
+msgstr[1] "fitxer normal"
+
+#: e2fsck/unix.c:198
+#, fuzzy, c-format
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "directori"
+msgstr[1] "directori"
+
+#: e2fsck/unix.c:200
+#, fuzzy, c-format
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "dispositiu"
+msgstr[1] "dispositiu"
+
+#: e2fsck/unix.c:203
+#, fuzzy, c-format
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "dispositiu d'accés per bloc"
+msgstr[1] "dispositiu d'accés per bloc"
+
+#: e2fsck/unix.c:205
+#, c-format
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:207
+#, c-format
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:209
+#, fuzzy, c-format
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "enllaç simbòlic"
+msgstr[1] "enllaç simbòlic"
+
+#: e2fsck/unix.c:211
+#, fuzzy, c-format
+msgid " (%u fast symbolic link)\n"
+msgid_plural " (%u fast symbolic links)\n"
+msgstr[0] "enllaç simbòlic"
+msgstr[1] "enllaç simbòlic"
+
+#: e2fsck/unix.c:215
+#, fuzzy, c-format
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "sòcol"
+msgstr[1] "sòcol"
+
+#: e2fsck/unix.c:219
+#, c-format
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "en determinar si %s està muntat."
-#: e2fsck/unix.c:225
-#, c-format
-msgid "Warning! %s is mounted.\n"
+#: e2fsck/unix.c:252
+#, fuzzy, c-format
+msgid "Warning! %s is %s.\n"
msgstr "Avís! %s està muntat.\n"
-#: e2fsck/unix.c:229
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s està muntat. "
+msgid "%s is %s.\n"
+msgstr ""
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2525,13 +2828,13 @@ msgstr ""
"No es pot continuar, s'interromprà.\n"
"\n"
-#: e2fsck/unix.c:232
-#, c-format
+#: e2fsck/unix.c:264
+#, fuzzy
msgid ""
"\n"
"\n"
-"\a\a\a\aWARNING!!! Running e2fsck on a mounted filesystem may cause\n"
-"SEVERE filesystem damage.\a\a\a\n"
+"WARNING!!! The filesystem is mounted. If you continue you ***WILL***\n"
+"cause ***SEVERE*** filesystem damage.\n"
"\n"
msgstr ""
"\n"
@@ -2540,121 +2843,140 @@ msgstr ""
"pot causar-li danys GREUS.\a\a\a\n"
"\n"
-#: e2fsck/unix.c:235
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Esteu segur que voleu continuar?"
-#: e2fsck/unix.c:237
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "s'ha interromput la comprovació.\n"
-#: e2fsck/unix.c:310
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " conté un sistema de fitxers amb errors"
-#: e2fsck/unix.c:312
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " no es va desmuntar correctament"
-#: e2fsck/unix.c:314
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr ""
" les característiques del superbloc primari són diferents de les del de la "
"còpia de seguretat"
-#: e2fsck/unix.c:318
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " s'ha muntat %u vegades sense haver estat comprovat"
-#: e2fsck/unix.c:324
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
msgstr ""
"té la darrera hora de comprovació del sistema de fitxers és en el futur"
-#: e2fsck/unix.c:330
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " no s'ha comprovat des de fa %u dies"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", es forçarà la comprovació.\n"
-#: e2fsck/unix.c:342
-#, c-format
-msgid "%s: clean, %u/%u files, %u/%u blocks"
+#: e2fsck/unix.c:427
+#, fuzzy, c-format
+msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: net, %u/%u fitxers, %u/%u blocs"
-#: e2fsck/unix.c:359
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (s'ha ajornat la comprovació; s'està utilitzant la bateria)"
-#: e2fsck/unix.c:362
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (es comprovarà després del muntatge següent)"
-#: e2fsck/unix.c:364
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
-msgstr " (es comprovarà en %ld mesos)"
+msgstr " (es comprovarà en %ld muntades)"
-#: e2fsck/unix.c:511
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "ERROR: no s'ha pogut obrir /dev/null (%s)\n"
-#: e2fsck/unix.c:581
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "La versió dels atributs ampliats no és vàlida.\n"
-#: e2fsck/unix.c:590
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Es desconeix l'opció ampliada: %s\n"
-#: e2fsck/unix.c:612
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-"Hi ha un error de sintaxi al fitxer de configuració de l'e2fsck (%s, línia #%"
-"d)\n"
+"Hi ha un error de sintaxi al fitxer de configuració de l'e2fsck (%s, línia #"
+"%d)\n"
"\t%s\n"
-#: e2fsck/unix.c:680
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "S'ha produït un error en validar el descriptor de fitxer %d: %s\n"
-#: e2fsck/unix.c:684
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr ""
-#: e2fsck/unix.c:699
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr ""
"Només es pot especificar una de les opcions -p/-a, -n o -y a la vegada."
-#: e2fsck/unix.c:720
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "L'opció -t no està implementada en aquesta versió de l'e2fsck.\n"
-#: e2fsck/unix.c:801 misc/tune2fs.c:549 misc/tune2fs.c:833 misc/tune2fs.c:850
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "No s'ha pogut resoldre «%s»"
-#: e2fsck/unix.c:831
-#, c-format
+#: e2fsck/unix.c:918
+#, fuzzy
+msgid "The -n and -D options are incompatible."
+msgstr ""
+"%s: les opcions -n i -w són mutualment exclusives.\n"
+"\n"
+
+#: e2fsck/unix.c:923
+#, fuzzy
+msgid "The -n and -c options are incompatible."
+msgstr ""
+"%s: les opcions -n i -w són mutualment exclusives.\n"
+"\n"
+
+#: e2fsck/unix.c:928
+#, fuzzy
+msgid "The -n and -l/-L options are incompatible."
+msgstr ""
+"%s: les opcions -n i -w són mutualment exclusives.\n"
+"\n"
+
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "No es poden utilitzar les opcions -c i -l/-L al mateix temps.\n"
-#: e2fsck/unix.c:879
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
@@ -2663,7 +2985,7 @@ msgstr ""
"E2FSCK_JBD_DEBUG «%s» no és un enter\n"
"\n"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2674,39 +2996,65 @@ msgstr ""
"L'argument no numèric de -%c no és vàlid («%s»)\n"
"\n"
-#: e2fsck/unix.c:929
+#: e2fsck/unix.c:1129
#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
+#, fuzzy
+msgid "while checking MMP block"
+msgstr "en configurar el súperbloc"
+
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
+msgid ""
+"If you are sure the filesystem is not in use on any node, run:\n"
+"'tune2fs -f -E clear_mmp {device}'\n"
+msgstr ""
+
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Error: la versió de la biblioteca de l'ext2fs és massa antiga.\n"
-#: e2fsck/unix.c:937
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "en intentar inicialitzar el programa"
-#: e2fsck/unix.c:951
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tS'utilitza %s, %s\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "cal un terminal per a les reparacions interactives"
-#: e2fsck/unix.c:1010
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s provant els blocs de còpia de seguretat...\n"
-#: e2fsck/unix.c:1012
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Súperbloc no vàlid,"
-#: e2fsck/unix.c:1013
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Els descriptors de grup no estan en bon estat..."
-#: e2fsck/unix.c:1040
-#, c-format
+#: e2fsck/unix.c:1312
+#, fuzzy, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s provant els blocs de còpia de seguretat...\n"
+
+#: e2fsck/unix.c:1316
+#, fuzzy, c-format
+msgid "%s: going back to original superblock\n"
+msgstr "%s: no s'ha trobat cap súperbloc del registre de transaccions vàlid\n"
+
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2717,32 +3065,33 @@ msgstr ""
"(O bé el superbloc del sistema de fitxers està malmès)\n"
"\n"
-#: e2fsck/unix.c:1046
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "Pot ser que això sigui una partició de mida zero?\n"
-#: e2fsck/unix.c:1048
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr ""
"Cal que tingueu accés de %s al sistema de fitxers o bé que sigueu l'usuari "
"primari\n"
-#: e2fsck/unix.c:1053
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "Pot ser que no existeixi el dispositiu o bé que sigui d'intercanvi?\n"
-#: e2fsck/unix.c:1055
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"Pot ser que el sistema de fitxers l'hagi muntat o obert un altre programa de "
"manera exclusiva?\n"
-#: e2fsck/unix.c:1059
-#, c-format
+#: e2fsck/unix.c:1366
+#, fuzzy
+msgid "Possibly non-existent device?\n"
+msgstr "Pot ser que no existeixi el dispositiu o bé que sigui d'intercanvi?\n"
+
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -2750,17 +3099,16 @@ msgstr ""
"El disc està protegit contra escriptura; utilitzeu l'opció\n"
"-n per a fer una comprovació de només-lectura del dispositiu.\n"
-#: e2fsck/unix.c:1123
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Hauríeu d'obtenir una versió més recent de l'e2fsck"
-#: e2fsck/unix.c:1147
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "en comprovar el registre de transaccions per a %s"
-#: e2fsck/unix.c:1158
-#, c-format
+#: e2fsck/unix.c:1489
msgid ""
"Warning: skipping journal recovery because doing a read-only filesystem "
"check.\n"
@@ -2768,65 +3116,52 @@ msgstr ""
"Avís: s'ometrà la recuperació del registre de canvis perquè s'està "
"comprovant el sistema de fitxers en mode de només-lectura.\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "no s'han pogut definir els senyaladors del superbloc a %s\n"
-#: e2fsck/unix.c:1177
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "en recuperar el registre de canvis ext3 de %s"
-#: e2fsck/unix.c:1201
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s té funcionalitats no implementades:"
-#: e2fsck/unix.c:1217
-msgid "Warning: compression support is experimental.\n"
+#: e2fsck/unix.c:1547
+#, fuzzy, c-format
+msgid "%s: warning: compression support is experimental.\n"
msgstr "Avís: el funcionament amb compressió és experimentat.\n"
-#: e2fsck/unix.c:1222
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-#: e2fsck/unix.c:1276
-msgid "while reading bad blocks inode"
+#: e2fsck/unix.c:1605
+#, fuzzy, c-format
+msgid "%s: %s while reading bad blocks inode\n"
msgstr "en llegir el node-i dels blocs erronis"
-#: e2fsck/unix.c:1278
-#, c-format
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Això no és un bon presagi, però s'intentarà continuar...\n"
-#: e2fsck/unix.c:1304
-msgid "Couldn't determine journal size"
-msgstr "No s'ha pogut determinar la mida del registre de canvis"
-
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Creació del registre de canvis (%d blocs): "
-#: e2fsck/unix.c:1314 misc/mke2fs.c:2091
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\ten intentar crear el registre de canvis"
-
-#: e2fsck/unix.c:1317
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " Fet.\n"
-#: e2fsck/unix.c:1318
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
@@ -2834,25 +3169,24 @@ msgstr ""
"\n"
"*** registre de canvis recreat - el sist. de fitxers torna a ser ext3 ***\n"
-#: e2fsck/unix.c:1325
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "S'està tornant a iniciar l'e2fsck des del començament...\n"
-#: e2fsck/unix.c:1329
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "en reiniciar el context"
-#: e2fsck/unix.c:1336
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: s'ha cancel·lat l'e2fsck.\n"
-#: e2fsck/unix.c:1341
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "s'ha interromput"
-#: e2fsck/unix.c:1353
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -2861,12 +3195,12 @@ msgstr ""
"\n"
"%s: ***** S'HA MODIFICAT EL SISTEMA DE FITXERS *****\n"
-#: e2fsck/unix.c:1356
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** REINICIEU EL LINUX *****\n"
-#: e2fsck/unix.c:1364
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -2877,43 +3211,43 @@ msgstr ""
"%s: ********** AVÃS: el sistema de fitxers encara té errors **********\n"
"\n"
-#: e2fsck/unix.c:1400
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr "en establir la informació de suma de verificació del grup de blocs"
-#: e2fsck/util.c:138 misc/util.c:68
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "sS"
-#: e2fsck/util.c:139
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:153
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<s>"
-#: e2fsck/util.c:155
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:157
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (s/n)"
-#: e2fsck/util.c:172
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "s'ha cancel·lat\n"
-#: e2fsck/util.c:187
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "sí\n"
-#: e2fsck/util.c:189
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "no\n"
-#: e2fsck/util.c:199
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -2922,7 +3256,7 @@ msgstr ""
"%s? no\n"
"\n"
-#: e2fsck/util.c:203
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -2931,38 +3265,38 @@ msgstr ""
"%s? sí\n"
"\n"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "yes"
msgstr "sí"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "no"
msgstr "no"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr ""
-#: e2fsck/util.c:226
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr ""
-#: e2fsck/util.c:231
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "en tornar a intentar la lectura dels mapes de bits per a %s"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "escriptura dels mapes de bits de bloc i de node-i"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr "en tornar a escriure els mapes de bits de bloc i de node-i per de %s"
-#: e2fsck/util.c:260
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -2975,45 +3309,52 @@ msgstr ""
"%s: INCONSISTÈNCIA INESPERADA; EXECUTEU fsck MANUALMENT.\n"
"\t(és a dir, sense les opcions -a o -p)\n"
-#: e2fsck/util.c:336
-#, c-format
-msgid "Memory used: %dk/%dk (%dk/%dk), "
+#: e2fsck/util.c:396
+#, fuzzy, c-format
+msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Memòria utilitzada: %dk/%dk (%dk/%dk), "
-#: e2fsck/util.c:340
-#, c-format
-msgid "Memory used: %d, "
+#: e2fsck/util.c:400
+#, fuzzy, c-format
+msgid "Memory used: %lu, "
msgstr "Memòria utilitzada: %d, "
-#: e2fsck/util.c:346
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "temps: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:351
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "temps transcorregut: %6.3f\n"
-#: e2fsck/util.c:385 e2fsck/util.c:399
-#, c-format
-msgid "while reading inode %ld in %s"
+#: e2fsck/util.c:447 e2fsck/util.c:461
+#, fuzzy, c-format
+msgid "while reading inode %lu in %s"
msgstr "en llegir el node-i %ld a %s"
-#: e2fsck/util.c:413 e2fsck/util.c:426
-#, c-format
-msgid "while writing inode %ld in %s"
+#: e2fsck/util.c:475 e2fsck/util.c:488
+#, fuzzy, c-format
+msgid "while writing inode %lu in %s"
msgstr "en escriure el node-i %ld a %s"
-#: e2fsck/util.c:575
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr ""
-#: misc/badblocks.c:66
-msgid "done \n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+
+#: misc/badblocks.c:69
+#, fuzzy
+msgid "done \n"
msgstr "fet \n"
-#: misc/badblocks.c:89
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
@@ -3029,7 +3370,7 @@ msgstr ""
" [-p nombre_de_passos] [-t patró_de_prova [-t patró_de_prova [...]]]\n"
" dispositiu [darrer_bloc [bloc_d'inici]]\n"
-#: misc/badblocks.c:100
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
@@ -3038,85 +3379,85 @@ msgstr ""
"%s: les opcions -n i -w són mutualment exclusives.\n"
"\n"
-#: misc/badblocks.c:202
+#: misc/badblocks.c:218
#, c-format
-msgid "%6.2f%% done, %s elapsed"
+msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr ""
-#: misc/badblocks.c:289
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Comprovació amb un patró arbitrari: "
-#: misc/badblocks.c:307
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Comprovació amb el patró 0x"
-#: misc/badblocks.c:335 misc/badblocks.c:404
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "durant la cerca"
-#: misc/badblocks.c:346
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Valor estrany (%ld) a do_read\n"
-#: misc/badblocks.c:424
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "durant l'execució de ext2fs_sync_device"
-#: misc/badblocks.c:440 misc/badblocks.c:699
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "en iniciar la iteració per la llista de blocs erronis"
-#: misc/badblocks.c:454 misc/badblocks.c:551 misc/badblocks.c:709
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "en ubicar els búfers"
-#: misc/badblocks.c:458
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Comprovació dels blocs %lu a %lu\n"
-#: misc/badblocks.c:463
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "S'està comprovant si hi ha blocs erronis en mode de només-lectura\n"
-#: misc/badblocks.c:472
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "S'està comprovant si hi ha blocs erronis (prova de només-lectura): "
-#: misc/badblocks.c:480 misc/badblocks.c:583 misc/badblocks.c:628
-#: misc/badblocks.c:772
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr "Hi ha massa blocs erronis, s'interromprà la comprovació\n"
-#: misc/badblocks.c:558
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr ""
"S'està comprovant si hi ha blocs erronis en mode de lectura-escriptura\n"
-#: misc/badblocks.c:560 misc/badblocks.c:722
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Dels blocs %lu a %lu\n"
-#: misc/badblocks.c:618
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Lectura i comparació: "
-#: misc/badblocks.c:721
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr ""
"S'està comprovant si hi ha blocs erronis en mode de lectura-escriptura no "
"destructiu\n"
-#: misc/badblocks.c:727
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr ""
"S'està comprovant si hi ha blocs erronis (prova en mode de lectura-"
"escriptura no destructiu)\n"
-#: misc/badblocks.c:734
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3124,63 +3465,58 @@ msgstr ""
"\n"
"S'ha interceptat una interrupció; s'iniciaran les tasques de neteja\n"
-#: misc/badblocks.c:810
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "durant l'escriptura de les dades de prova, bloc %lu"
-#: misc/badblocks.c:921 misc/util.c:156
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s està muntat; "
# FIXME: Hope - esperem ? (dpm)
-#: misc/badblocks.c:923
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"s'ha forçat badblocks de totes maneres. Segurament /etc/mtab sigui "
"incorrecte.\n"
-#: misc/badblocks.c:928
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "l'execució de badblocks no és segura!\n"
-#: misc/badblocks.c:933 misc/util.c:167
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s està essent utilitzat pel sistema; "
-#: misc/badblocks.c:936
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "s'ha forçat badblocks de totes maneres.\n"
-#: misc/badblocks.c:956
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "%s no vàlid - %s"
-#: misc/badblocks.c:1015
-#, c-format
-msgid "bad block size - %s"
-msgstr "mida del bloc erroni - %s"
-
-#: misc/badblocks.c:1070
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "no es pot assignar memòria per al patró_de_prova - %s"
-#: misc/badblocks.c:1097
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr ""
"Només es pot especificar un patró_de_prova com a màxim en mode de només-"
"lectura"
-#: misc/badblocks.c:1103
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr ""
"No es pot utilitzar un patró_de_prova arbitrari en mode de només-lectura"
-#: misc/badblocks.c:1117
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
@@ -3188,144 +3524,168 @@ msgstr ""
"No s'ha pogut determinar la mida del dispositiu;\n"
"l'haureu d'especificar manualment\n"
-#: misc/badblocks.c:1123
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "en intentar determinar la mida del dispositiu"
-#: misc/badblocks.c:1128
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "últim bloc"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "primer bloc"
-#: misc/badblocks.c:1137
-#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+#: misc/badblocks.c:1209
+#, fuzzy, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "bloc d'inici no vàlid (%lu): hauria de ser menor de %lu"
+
+#: misc/badblocks.c:1216
+#, fuzzy, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
msgstr "bloc d'inici no vàlid (%lu): hauria de ser menor de %lu"
-#: misc/badblocks.c:1193
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "en crear la llista de blocs erronis en memòria"
-#: misc/badblocks.c:1208
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr ""
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "en afegir a la llista de blocs erronis en memòria"
-#: misc/badblocks.c:1232
-#, c-format
-msgid "Pass completed, %u bad blocks found.\n"
+#: misc/badblocks.c:1323
+#, fuzzy, c-format
+msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Pas completat; s'han trobat %u blocs erronis.\n"
-#: misc/chattr.c:85
-#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdijsSu] [-v version] files...\n"
+#: misc/chattr.c:86
+#, fuzzy, c-format
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
msgstr "Forma d'ús: %s [-RVf] [-+=AacDdijsSu] [-v versió] fitxers...\n"
-#: misc/chattr.c:152
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "versió no vàlida - %s\n"
-#: misc/chattr.c:198 misc/lsattr.c:113
+#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "en intentar mostrar la informació de %s"
-#: misc/chattr.c:204 misc/chattr.c:222
-#, c-format
-msgid "Flags of %s set as "
-msgstr "S'han establert els senyaladors de %s com a "
-
-#: misc/chattr.c:214
+#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr "en llegir els senyaladors a %s"
-#: misc/chattr.c:231
+#: misc/chattr.c:213 misc/chattr.c:225
+#, c-format
+msgid "Flags of %s set as "
+msgstr "S'han establert els senyaladors de %s com a "
+
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "en establir els senyaladors a %s"
-#: misc/chattr.c:239
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "S'ha establert la versió de %s a %lu\n"
-#: misc/chattr.c:243
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "en establir la versió a %s"
-#: misc/chattr.c:263
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "No s'ha pogut assignar la variable del camí a chattr_dir_proc"
-#: misc/chattr.c:302
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= no és compatible amb - i +\n"
-#: misc/chattr.c:310
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Cal utilitzar «-v», =, - o +\n"
-#: misc/dumpe2fs.c:53
-#, c-format
-msgid "Usage: %s [-bfhixV] [-ob superblock] [-oB blocksize] device\n"
+#: misc/dumpe2fs.c:55
+#, fuzzy, c-format
+msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr ""
"Forma d'ús: %s [-bfhixV] [-ob superbloc] [-oB midadelbloc] dispositiu\n"
-#: misc/dumpe2fs.c:168
+#: misc/dumpe2fs.c:159
+#, fuzzy
+msgid "blocks"
+msgstr "bbloc"
+
+#: misc/dumpe2fs.c:169
+msgid "clusters"
+msgstr ""
+
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Grup %lu: (blocs "
-#: misc/dumpe2fs.c:173
-#, c-format
-msgid " Checksum 0x%04x, unused inodes %d\n"
+#: misc/dumpe2fs.c:205
+#, fuzzy, c-format
+msgid " Checksum 0x%04x"
msgstr "Suma de verificació 0x%04x, nodes-i no utilitzats %d\n"
-#: misc/dumpe2fs.c:178
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr ""
+
+#: misc/dumpe2fs.c:208
+#, fuzzy, c-format
+msgid ", unused inodes %u\n"
+msgstr ", %u nodes-i no utilitzats\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " superbloc %s a "
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Primari"
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Còpia de seguretat"
-#: misc/dumpe2fs.c:183
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", descriptors de grup a "
-#: misc/dumpe2fs.c:187
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
msgstr ""
-#: misc/dumpe2fs.c:194
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " descriptor de grup a "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Mapa de bits del bloc a "
-#: misc/dumpe2fs.c:205
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", mapa de bits del node-i a "
-#: misc/dumpe2fs.c:210
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3333,55 +3693,95 @@ msgstr ""
"\n"
" taula de nodes-i a "
-#: misc/dumpe2fs.c:217
-#, c-format
+#: misc/dumpe2fs.c:249
+#, fuzzy, c-format
msgid ""
"\n"
-" %u free blocks, %u free inodes, %u directories%s"
+" %u free %s, %u free inodes, %u directories%s"
msgstr ""
"\n"
" %u blocs lliures, %u nodes-i lliures, %u directoris %s"
-#: misc/dumpe2fs.c:224
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u nodes-i no utilitzats\n"
-#: misc/dumpe2fs.c:227
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Blocs liures: "
-#: misc/dumpe2fs.c:237
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Nodes-i lliures: "
-#: misc/dumpe2fs.c:264
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "en imprimir la llista de blocs erronis"
-#: misc/dumpe2fs.c:270
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Blocs erronis: %u"
-#: misc/dumpe2fs.c:292 misc/tune2fs.c:279
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "en llegir el node-i del registre de transaccions"
-#: misc/dumpe2fs.c:295
+#: misc/dumpe2fs.c:351
+#, fuzzy
+msgid "while opening journal inode"
+msgstr "en llegir el node-i del registre de transaccions"
+
+#: misc/dumpe2fs.c:357
+#, fuzzy
+msgid "while reading journal super block"
+msgstr "en llegir el superbloc del registre de transaccions"
+
+#: misc/dumpe2fs.c:364
+#, fuzzy
+msgid "Journal superblock magic number invalid!\n"
+msgstr "No s'ha trobat el súperbloc del registre de transaccions\n"
+
+#: misc/dumpe2fs.c:367
+#, fuzzy
+msgid "Journal features: "
+msgstr "Usuaris del registre de canvis: %s\n"
+
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Mida del registre de canvis: "
-#: misc/dumpe2fs.c:319 misc/tune2fs.c:200
+#: misc/dumpe2fs.c:391
+#, fuzzy, c-format
+msgid ""
+"Journal length: %u\n"
+"Journal sequence: 0x%08x\n"
+"Journal start: %u\n"
+msgstr ""
+"\n"
+"Mida de bloc del reg. de canvis: %u\n"
+"Llargada del reg. de canvis: %u\n"
+"Primer bloc del reg. de canvis: %u\n"
+"Seqüència del reg. de canvis: 0x%08x\n"
+"Inici del registre de canvis: %u\n"
+"Nombre d'usuaris del reg. de canvis: %u\n"
+
+#: misc/dumpe2fs.c:398
+#, fuzzy, c-format
+msgid "Journal errno: %d\n"
+msgstr "Usuaris del registre de canvis: %s\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "en llegir el superbloc del registre de transaccions"
-#: misc/dumpe2fs.c:327
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr ""
"No s'han trobat els números màgics del superbloc del registre de transaccions"
-#: misc/dumpe2fs.c:331
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3400,27 +3800,26 @@ msgstr ""
"Inici del registre de canvis: %u\n"
"Nombre d'usuaris del reg. de canvis: %u\n"
-#: misc/dumpe2fs.c:344
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Usuaris del registre de canvis: %s\n"
-#: misc/dumpe2fs.c:360 misc/mke2fs.c:693 misc/tune2fs.c:868
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr "No s'ha pogut assignar memòria per a analitzar les opcions\n"
-#: misc/dumpe2fs.c:386
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Paràmetre del superbloc no vàlid: %s\n"
-#: misc/dumpe2fs.c:401
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Paràmetre de mida de bloc no vàlida: %s\n"
-#: misc/dumpe2fs.c:412
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3434,18 +3833,17 @@ msgid ""
"\tblocksize=<blocksize>\n"
msgstr ""
-#: misc/dumpe2fs.c:471 misc/mke2fs.c:1355
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tEn utilitzar %s\n"
-#: misc/dumpe2fs.c:507 misc/e2image.c:674 misc/tune2fs.c:1518
-#: resize/main.c:311
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "No s'ha trobat un súperbloc del sistema de fitxers vàlid.\n"
-#: misc/dumpe2fs.c:532
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3454,77 +3852,303 @@ msgstr ""
"\n"
"%s: %s: s'ha produït un error en llegir els mapes de bits: %s\n"
-#: misc/e2image.c:52
-#, c-format
-msgid "Usage: %s [-rsI] device image_file\n"
+#: misc/e2image.c:101
+#, fuzzy, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
msgstr "Forma d'ús: %s [-rsI] dispositiu fitxer_imatge\n"
-#: misc/e2image.c:64
-msgid "Couldn't allocate header buffer\n"
-msgstr ""
+#: misc/e2image.c:103
+#, fuzzy, c-format
+msgid " %s -I device image-file\n"
+msgstr "Forma d'ús: %s [-rsI] dispositiu fitxer_imatge\n"
-#: misc/e2image.c:83
+#: misc/e2image.c:104
#, c-format
-msgid "short write (only %d bytes) for writing image header"
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+#, fuzzy
+msgid "while allocating buffer"
+msgstr "en ubicar els búfers"
+
+#: misc/e2image.c:174
+#, fuzzy, c-format
+msgid "Writing block %llu\n"
+msgstr "Comprovació dels blocs %lu a %lu\n"
+
+#: misc/e2image.c:188
+#, fuzzy, c-format
+msgid "error writing block %llu"
+msgstr "S'ha produït un error en escriure el bloc %lu (%s). "
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
+
+#: misc/e2image.c:208
+msgid "Error: header size is bigger than wrt_size\n"
+msgstr ""
+
+#: misc/e2image.c:213
+msgid "Couldn't allocate header buffer\n"
msgstr ""
-#: misc/e2image.c:102
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "en escriure el superbloc"
-#: misc/e2image.c:110
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "en escriure la taula de nodes-i"
-#: misc/e2image.c:117
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "en escriure el mapa de bits dels blocs"
-#: misc/e2image.c:124
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "en escriure el mapa de bits dels nodes-i"
-#: misc/e2label.c:57
+#: misc/e2image.c:502
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "El bloc de directori %u (#%d) en el node-i %u és buit\n"
+
+#: misc/e2image.c:514
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "El bloc de directori %u (#%d) en el node-i %u és buit\n"
+
+#: misc/e2image.c:555
+#, fuzzy, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%u nodes-i, %u blocs\n"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, fuzzy, c-format
+msgid "error reading block %llu"
+msgstr "S'ha produït un error en llegir el bloc %lu (%s). "
+
+#: misc/e2image.c:715
+#, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr ""
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+#, fuzzy
+msgid "while allocating l1 table"
+msgstr "en ubicar els búfers"
+
+#: misc/e2image.c:800
+#, fuzzy
+msgid "while allocating l2 cache"
+msgstr "en ubicar els búfers"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+#, fuzzy
+msgid "while allocating ext2_qcow2_image"
+msgstr "en fer la crida a ext2fs_block_iterate"
+
+#: misc/e2image.c:1152
+#, fuzzy
+msgid "while initializing ext2_qcow2_image"
+msgstr "en fer la crida a ext2fs_block_iterate"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+#, fuzzy
+msgid "while allocating block bitmap"
+msgstr "en escriure el mapa de bits dels blocs"
+
+#: misc/e2image.c:1278
+#, fuzzy
+msgid "while allocating scramble block bitmap"
+msgstr "en escriure el mapa de bits dels blocs"
+
+#: misc/e2image.c:1285
+#, fuzzy
+msgid "Scanning inodes...\n"
+msgstr "Escaneig de la taula de nodes-i"
+
+#: misc/e2image.c:1297
+#, fuzzy
+msgid "Can't allocate block buffer"
+msgstr "No s'ha pogut assignar el bloc del búfer (mida=%d)\n"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, fuzzy, c-format
+msgid "while iterating over inode %u"
+msgstr "en obtenir el node-i següent"
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+#, fuzzy
+msgid "error reading bitmaps"
+msgstr "en llegir els mapes de bits"
+
+#: misc/e2image.c:1415
+#, fuzzy
+msgid "while opening device file"
+msgstr "en obrir l'escaneig de nodes-i"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "en escriure la taula de nodes-i"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+#, fuzzy
+msgid "checking if mounted"
+msgstr " (es comprovarà en %ld muntades)"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
+#, c-format
+msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
+msgstr ""
+
+#: misc/e2image.c:1639
+#, fuzzy
+msgid "The -c option only supported in raw mode\n"
+msgstr "L'opció -t no està implementada en aquesta versió de l'e2fsck.\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "L'opció -t no està implementada en aquesta versió de l'e2fsck.\n"
+
+#: misc/e2image.c:1651
+#, fuzzy
+msgid "while allocating check_buf"
+msgstr "en ubicar els búfers"
+
+#: misc/e2image.c:1657
+#, fuzzy
+msgid "The -p option only supported in raw mode\n"
+msgstr "L'opció -t no està implementada en aquesta versió de l'e2fsck.\n"
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
+
+#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
msgstr "e2label: no es pot obrir %s\n"
-#: misc/e2label.c:62
+#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
msgstr "e2label: no es pot anar al súperbloc\n"
-#: misc/e2label.c:67
+#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
msgstr "e2label: s'ha produït un error en llegir el súperbloc\n"
-#: misc/e2label.c:71
+#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: aquest no és un sistema de fitxers ext2\n"
-#: misc/e2label.c:96 misc/tune2fs.c:1653
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Avís: l'etiqueta és massa llarga, es truncarà.\n"
-#: misc/e2label.c:99
+#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
msgstr "e2label: no es pot tornar a anar al súperbloc\n"
-#: misc/e2label.c:104
+#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2lable: s'ha produït un error en escriure el superbloc\n"
-#: misc/e2label.c:116 misc/tune2fs.c:541
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Forma d'ús: e2label dispositiu [etiquetanova]\n"
-#: misc/e2undo.c:35
+#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
msgstr "Forma d'ús: %s <fitxer de transaccions> <sistema de fitxers>\n"
@@ -3533,7 +4157,7 @@ msgstr "Forma d'ús: %s <fitxer de transaccions> <sistema de fitxers>\n"
msgid "Failed to read the file system data \n"
msgstr "No s'han pogut llegir les dades del sistema de fitxers \n"
-#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:204
+#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
msgid "Failed tdb_fetch %s\n"
msgstr "Ha fallat la tdb_fetch %s\n"
@@ -3547,50 +4171,51 @@ msgstr "L'hora de muntatge del sistema de fitxers no concorda amb %u\n"
msgid "The file system UUID didn't match \n"
msgstr "L'UUID del sistema de fitxers no concorda \n"
-#: misc/e2undo.c:161
+#: misc/e2undo.c:163
#, c-format
msgid "Failed tdb_open %s\n"
msgstr "Ha fallat la tdb_open %s\n"
-#: misc/e2undo.c:167
+#: misc/e2undo.c:169
#, c-format
msgid "Error while determining whether %s is mounted.\n"
msgstr "S'ha produït un error en determinar si %s està muntat.\n"
-#: misc/e2undo.c:173
+#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
msgstr ""
"e2undo només s'hauria d'executar en un sistema de fitxers sense muntar\n"
-#: misc/e2undo.c:182
+#: misc/e2undo.c:184
#, c-format
msgid "Failed to open %s\n"
msgstr "No s'ha pogut obrir %s\n"
-#: misc/e2undo.c:208
-#, c-format
-msgid "Replayed transaction of size %zd at location %ld\n"
+#: misc/e2undo.c:210
+#, fuzzy, c-format
+msgid "Replayed transaction of size %zd at location %llu\n"
msgstr ""
"S'ha tornat a dur a terme la transacció de mida %zd a la ubicació %ld\n"
-#: misc/e2undo.c:214
+#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
msgstr "Ha fallat l'escriptura %s\n"
-#: misc/fsck.c:347
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "AVÃS: no s'ha pogut obrir %s: %s\n"
-#: misc/fsck.c:357
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "AVÃS: format erroni a la línia %d de %s\n"
-#: misc/fsck.c:372
+#: misc/fsck.c:370
+#, fuzzy
msgid ""
-"\a\a\aWARNING: Your /etc/fstab does not contain the fsck passno\n"
+"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"
@@ -3600,37 +4225,37 @@ msgstr ""
"\tsolucionar arreglant el fitxer /etc/fstab com més aviat millor.\n"
"\n"
-#: misc/fsck.c:481
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: no s'ha trobat\n"
-#: misc/fsck.c:597
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: wait: no hi ha cap més procés fill!?\n"
-#: misc/fsck.c:619
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Avís... %s per al dispositiu %s ha sortit amb el senyal %d.\n"
-#: misc/fsck.c:625
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: l'estat és %x, cosa que no hauria de succeir mai.\n"
-#: misc/fsck.c:664
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "S'ha finalitzat amb %s (estat de sortida %d)\n"
-#: misc/fsck.c:724
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: s'ha produït l'error %d en executar l'fsck.%s per a %s\n"
-#: misc/fsck.c:745
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3639,106 +4264,107 @@ msgstr ""
"prefixar\n"
"amb «no» o «!».\n"
-#: misc/fsck.c:764
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "No s'ha pogut assignar memòria per al sistema de fitxers\n"
-#: misc/fsck.c:887
+#: misc/fsck.c:884
#, c-format
msgid ""
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
"number\n"
msgstr ""
-#: misc/fsck.c:914
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: no es pot comprovar %s: no s'ha trobat el fsck.%s\n"
-#: misc/fsck.c:970
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "S'estan comprovant tots els sistemes de fitxers.\n"
-#: misc/fsck.c:1061
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--en espera-- (pas %d)\n"
-#: misc/fsck.c:1081
+#: misc/fsck.c:1078
msgid ""
"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
"Forma d'ús: fsck [-AMNPRTV] [ -C [ fd ] ] [-t tipusdesistdefitxers] [opcions-"
"delsistdefitxers] [sistdefitxers ...]\n"
-#: misc/fsck.c:1123
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: s'han especificat massa dispositius\n"
-#: misc/fsck.c:1156 misc/fsck.c:1242
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: s'han especificat massa arguments\n"
-#: misc/lsattr.c:73
+#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
msgstr "Forma d'ús: %s [-RVadlv] [fitxers...]\n"
-#: misc/lsattr.c:83
+#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
msgstr "En llegir els senyaladors a %s"
-#: misc/lsattr.c:90
+#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
msgstr "En llegir la versió a %s"
-#: misc/mke2fs.c:104
+#: misc/mke2fs.c:123
#, c-format
msgid ""
-"Usage: %s [-c|-l filename] [-b block-size] [-f fragment-size]\n"
+"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
-#: misc/mke2fs.c:206
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "S'està executant l'ordre: %s\n"
-#: misc/mke2fs.c:210
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "en intentar executar «%s»"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "en processar la llista de blocs erronis des del programa"
-#: misc/mke2fs.c:244
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr ""
-#: misc/mke2fs.c:246
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Els blocs %u fins a %u han d'ésser correctes per a poder crear un sistema de "
"fitxers.\n"
-#: misc/mke2fs.c:249
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "S'està interrompent...\n"
-#: misc/mke2fs.c:269
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -3749,193 +4375,264 @@ msgstr ""
"\tcontenen blocs erronis.\n"
"\n"
-#: misc/mke2fs.c:288
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "en marcar els blocs erronis com a utilitzats"
-#: misc/mke2fs.c:346
-msgid "done \n"
-msgstr "fet \n"
-
-#: misc/mke2fs.c:360
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Escriptura de les taules de nodes-i:"
-#: misc/mke2fs.c:383
-#, c-format
+#: misc/mke2fs.c:405
+#, fuzzy, c-format
msgid ""
"\n"
-"Could not write %d blocks in inode table starting at %u: %s\n"
+"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
"No s'han pogut escriure %d blocs a la taula de nodes-i amb inici a %u: %s\n"
-#: misc/mke2fs.c:407
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
+msgid "done \n"
+msgstr "fet \n"
+
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "en crear el directori arrel"
-#: misc/mke2fs.c:414
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "en llegir el node arrel"
-#: misc/mke2fs.c:428
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "en establir la propietat del node-i arrel"
-#: misc/mke2fs.c:446
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "en crear /lost+found"
-#: misc/mke2fs.c:453
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "en cercar el /lost+found"
-#: misc/mke2fs.c:466
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "en expandir el /lost+found"
-#: misc/mke2fs.c:481
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "en establir el node-i de blocs erronis"
-#: misc/mke2fs.c:508
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "S'ha exhaurit la memòria en esborrar els sectors %d-%d\n"
-#: misc/mke2fs.c:518
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Avís: no s'ha pogut llegir el bloc 0: %s\n"
-#: misc/mke2fs.c:534
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Avís: no s'ha pogut esborrar el sector %d: %s\n"
-#: misc/mke2fs.c:550
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "en inicialitzar el súperbloc del registre de transaccions"
-#: misc/mke2fs.c:556
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "S'estan escrivint zeros al dispositiu de registre de transaccions:"
-#: misc/mke2fs.c:569
-#, c-format
-msgid "while zeroing journal device (block %u, count %d)"
+#: misc/mke2fs.c:591
+#, fuzzy, c-format
+msgid "while zeroing journal device (block %llu, count %d)"
msgstr ""
"en escriure zeros al dispositiu de registre de transaccions (bloc %u, "
"recompte %d)"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "en escriure el súperbloc del registre de transaccions"
-#: misc/mke2fs.c:601
-#, c-format
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"El sistema de fitxers a %s té ara una mida de %u blocs.\n"
+"\n"
+
+#: misc/mke2fs.c:632
+#, fuzzy, c-format
msgid ""
-"warning: %u blocks unused.\n"
+"warning: %llu blocks unused.\n"
"\n"
msgstr ""
"avís: %u blocs no utilitzats.\n"
"\n"
-#: misc/mke2fs.c:606
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Etiqueta del sistema de fitxers=%s\n"
-#: misc/mke2fs.c:607
-msgid "OS type: "
+#: misc/mke2fs.c:640
+#, fuzzy, c-format
+msgid "OS type: %s\n"
msgstr "Tipus de sistema operatiu: "
# FIXME: log
-#: misc/mke2fs.c:612
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Mida del bloc=%u (log=%u)\n"
-#: misc/mke2fs.c:614
+# FIXME: log
+#: misc/mke2fs.c:646
+#, fuzzy, c-format
+msgid "Cluster size=%u (log=%u)\n"
+msgstr "Mida del bloc=%u (log=%u)\n"
+
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Mida del fragment=%u (log=%u)\n"
-#: misc/mke2fs.c:616
+#: misc/mke2fs.c:652
#, c-format
-msgid "%u inodes, %u blocks\n"
+msgid "Stride=%u blocks, Stripe width=%u blocks\n"
+msgstr ""
+
+#: misc/mke2fs.c:654
+#, fuzzy, c-format
+msgid "%u inodes, %llu blocks\n"
msgstr "%u nodes-i, %u blocs\n"
-#: misc/mke2fs.c:618
-#, c-format
-msgid "%u blocks (%2.2f%%) reserved for the super user\n"
+#: misc/mke2fs.c:656
+#, fuzzy, c-format
+msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%u blocs (%2.2f%%) reservats per al superusuari\n"
-#: misc/mke2fs.c:621
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Bloc de dades inicial=%u\n"
-#: misc/mke2fs.c:623
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Màxim de blocs del sistema de fitxers=%lu\n"
-#: misc/mke2fs.c:627
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u grups de blocs\n"
-#: misc/mke2fs.c:629
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u grup de blocs\n"
-#: misc/mke2fs.c:630
+#: misc/mke2fs.c:672
+#, fuzzy, c-format
+msgid "%u blocks per group, %u clusters per group\n"
+msgstr "%u blocs per grup, %u fragments per grup\n"
+
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u blocs per grup, %u fragments per grup\n"
-#: misc/mke2fs.c:632
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u nodes-i per grup\n"
-#: misc/mke2fs.c:639
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Etiqueta del sistema de fitxers=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Còpies de seguretat del superbloc desades en els blocs: "
-#: misc/mke2fs.c:718
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, fuzzy, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "mida de node-i errònia - %s"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "mida de node-i errònia - %s"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
+#, fuzzy, c-format
+msgid "Invalid mmp_update_interval: %s\n"
+msgstr "el patró_de_prova no és vàlid: %s\n"
+
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Paràmetre del superbloc no vàlid: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:733
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:755
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Paràmetre de canvi de mida no vàlid: %s\n"
-#: misc/mke2fs.c:762
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
"El màxim del canvi de mida ha de ser més gran que la mida del sistema de "
"fitxers.\n"
-#: misc/mke2fs.c:786
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"El canvi de mida en línia no és compatible amb sistemes de fitxers de "
"revisió 0\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, fuzzy, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "S'ha establert una opció de muntatge no vàlida: %s\n"
+
+#: misc/mke2fs.c:976
+#, fuzzy, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "Paràmetre del superbloc no vàlid: %s\n"
+
+#: misc/mke2fs.c:987
#, c-format
msgid ""
"\n"
@@ -3945,15 +4642,25 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
+"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
+"\tdiscard\n"
+"\tnodiscard\n"
+"\tquotatype=<usr OR grp>\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:824
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -3961,7 +4668,7 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:856
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -3970,22 +4677,26 @@ msgstr ""
"Error de sintaxi en el fitxer de configuració del mke2fs (%s, línia no. %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:869 misc/tune2fs.c:353
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "S'ha definit una opció del sistema de fitxers no vàlida: %s\n"
-#: misc/mke2fs.c:979
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
+msgid "Invalid mount option set: %s\n"
+msgstr "S'ha establert una opció de muntatge no vàlida: %s\n"
+
+#: misc/mke2fs.c:1218
+#, fuzzy, c-format
msgid ""
"\n"
-"Warning! Your mke2fs.conf file does not define the %s filesystem type.\n"
+"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
"\n"
"Avís: no s'ha definit el sistema de fitxers %s al fitxer mke2fs.conf.\n"
-#: misc/mke2fs.c:982
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
@@ -3993,124 +4704,142 @@ msgstr ""
"Segurament cal que instal·leu un fitxer mke2fs.conf actualitzat.\n"
"\n"
-#: misc/mke2fs.c:1177
+#: misc/mke2fs.c:1226
+#, fuzzy
+msgid "Aborting...\n"
+msgstr "S'està interrompent...\n"
+
+#: misc/mke2fs.c:1267
+#, c-format
+msgid ""
+"\n"
+"Warning: the fs_type %s is not defined in mke2fs.conf\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:1435
+#, fuzzy
+msgid "Couldn't allocate memory for new PATH.\n"
+msgstr "No s'ha pogut assignar memòria per al sistema de fitxers\n"
+
+#: misc/mke2fs.c:1476
+#, c-format
+msgid "Couldn't init profile successfully (error: %ld).\n"
+msgstr ""
+
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "mida de bloc invàlida - %s"
-#: misc/mke2fs.c:1181
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
"Avís: la mida de bloc %d no es pot utilitzar a la majoria dels sistemes.\n"
-#: misc/mke2fs.c:1197
-#, c-format
-msgid "invalid fragment size - %s"
-msgstr "mida de fragment invàlida - %s"
+#: misc/mke2fs.c:1529
+#, fuzzy, c-format
+msgid "invalid cluster size - %s"
+msgstr "mida de bloc invàlida - %s"
-#: misc/mke2fs.c:1203
-#, c-format
-msgid "Warning: fragments not supported. Ignoring -f option\n"
-msgstr "Avís: els fragments no són compatibles. S'ignorarà l'opció -f\n"
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr ""
-#: misc/mke2fs.c:1210
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Nombre no vàlid per als blocs per grup"
-#: misc/mke2fs.c:1215
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "el nombre de blocs per grup ha de ser múltiple de 8"
-#: misc/mke2fs.c:1223
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Número no vàlid per a la mida de flex_bg"
-#: misc/mke2fs.c:1229
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "la mida de flex_bg ha de ser una potència de 2"
-#: misc/mke2fs.c:1239
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "ràtio de nodes-i %s no vàlida (mín %d/màx %d)"
-#: misc/mke2fs.c:1256
+#: misc/mke2fs.c:1590
+#, c-format
+msgid "invalid inode size - %s"
+msgstr "mida de node-i errònia - %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr ""
-#: misc/mke2fs.c:1265
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "percentatge de blocs reservats no vàlid - %s"
-#: misc/mke2fs.c:1283
+#: misc/mke2fs.c:1642
+#, c-format
+msgid "bad num inodes - %s"
+msgstr "nombre de nodes-i no vàlid - %s"
+
+#: misc/mke2fs.c:1659
#, c-format
msgid "bad revision level - %s"
msgstr "nivell de revisió erroni - %s"
-#: misc/mke2fs.c:1295
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "mida de node-i errònia - %s"
+#: misc/mke2fs.c:1673
+#, fuzzy
+msgid "The -t option may only be used once"
+msgstr "-o només es pot especificar una vegada"
-#: misc/mke2fs.c:1315
-#, c-format
-msgid "bad num inodes - %s"
-msgstr "nombre de nodes-i no vàlid - %s"
+#: misc/mke2fs.c:1681
+#, fuzzy
+msgid "The -T option may only be used once"
+msgstr "-o només es pot especificar una vegada"
-#: misc/mke2fs.c:1380 misc/mke2fs.c:2052
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "en intentar obrir el dispositiu de registre de transaccions %s\n"
-#: misc/mke2fs.c:1386
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
"La mida de bloc del dispositiu de registre de transaccions (%d) és menor que "
"la mida mínima de bloc %d\n"
-#: misc/mke2fs.c:1392
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr ""
"Mida de bloc del dispositiu de registre de transaccions a utilitzar: %d\n"
-#: misc/mke2fs.c:1401
-#, c-format
-msgid "%d-byte blocks too big for system (max %d)"
-msgstr ""
-
-#: misc/mke2fs.c:1405
-#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-
-#: misc/mke2fs.c:1413
-#, c-format
-msgid "invalid blocks count - %s"
+#: misc/mke2fs.c:1757
+#, fuzzy, c-format
+msgid "invalid blocks '%s' on device '%s'"
msgstr "nombre de blocs no vàlid - %s"
-#: misc/mke2fs.c:1423
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "sistema de fitxers"
-#: misc/mke2fs.c:1459
-#, c-format
-msgid ""
-"%s: Size of device %s too big to be expressed in 32 bits\n"
-"\tusing a blocksize of %d.\n"
-msgstr ""
-"%s: la mida del dispositiu %s és massa gran per a expressar-la en 32 bits\n"
-"\ts'utilitzarà una mida de bloc de %d.\n"
-
-#: misc/mke2fs.c:1468 resize/main.c:371
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "en intentar determinar la mida del sistema de fitxers"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4118,7 +4847,7 @@ msgstr ""
"No s'ha pogut determinar la mida del dispositiu; hau d'especificar\n"
"la mida del sistema de fitxers\n"
-#: misc/mke2fs.c:1482
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4131,102 +4860,178 @@ msgstr ""
"\tser que hàgiu de reiniciar perquè es pugui tornar a llegir la taula de.\n"
"\tparticions.\n"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr ""
"La mida del sistema de fitxers és més gran que la mida aparent del "
"dispositiu."
-#: misc/mke2fs.c:1506
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "No s'ha pogut analitzar la llista de sistemes de fitxers\n"
-#: misc/mke2fs.c:1542
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "en intentar determinar la mida del sector del maquinari"
+
+#: misc/mke2fs.c:1887
+#, fuzzy
+msgid "while trying to determine physical sector size"
+msgstr "en intentar determinar la mida del sector del maquinari"
+
+#: misc/mke2fs.c:1919
+#, fuzzy
+msgid "while setting blocksize; too small for device\n"
+msgstr "en establir la informació de suma de verificació del grup de blocs"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+
+#: misc/mke2fs.c:1948
+#, fuzzy, c-format
+msgid ""
+"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
+"\tin 32 bits using a blocksize of %d.\n"
+msgstr ""
+"%s: la mida del dispositiu %s és massa gran per a expressar-la en 32 bits\n"
+"\ts'utilitzarà una mida de bloc de %d.\n"
+
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
msgstr ""
-#: misc/mke2fs.c:1549
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
"Les funcions del sistema de fitxers no són compatibles amb sistemes de "
"fitxers de revisió 0\n"
-#: misc/mke2fs.c:1556
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"Els súperblocs dispersos no són compatibles amb sistemes de fitxers de "
"revisió 0\n"
-#: misc/mke2fs.c:1568
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
"Els registres de canvis no són compatibles amb sistemes de fitxers de "
"revisió 0\n"
-#: misc/mke2fs.c:1586
+#: misc/mke2fs.c:2005
+#, fuzzy, c-format
+msgid "invalid reserved blocks percent - %lf"
+msgstr "percentatge de blocs reservats no vàlid - %s"
+
+#: misc/mke2fs.c:2022
+msgid ""
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2042
+#, fuzzy
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr ""
+"El màxim del canvi de mida ha de ser més gran que la mida del sistema de "
+"fitxers.\n"
+
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
+
+#: misc/mke2fs.c:2067
+#, c-format
+msgid "warning: Unable to get device geometry for %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:2070
+#, c-format
+msgid "%s alignment is offset by %lu bytes.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2072
#, c-format
msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2093
+#, c-format
+msgid "%d-byte blocks too big for system (max %d)"
+msgstr ""
+
+#: misc/mke2fs.c:2097
+#, c-format
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"They can not be both enabled simultaneously.\n"
msgstr ""
"Les funcions resize_inode i meta_bg no són compatibles.\n"
"No es poden activar de manera simultània.\n"
-#: misc/mke2fs.c:1603
-msgid "while trying to determine hardware sector size"
-msgstr "en intentar determinar la mida del sector del maquinari"
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
-#: misc/mke2fs.c:1661
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
-#: misc/mke2fs.c:1670
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "el nombre de blocs per grup està fora de l'interval permès"
-#: misc/mke2fs.c:1685
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
"La funció flex_bg no està habilitada, per la qual cosa no és permès "
"especificar la mida de flex_bg"
-#: misc/mke2fs.c:1697
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "mida de node-i no vàlida (%d) (mín %d/màx %d)"
-#: misc/mke2fs.c:1711
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "hi ha massa nodes-i (%llu), voleu incrementar-ne la ràtio?"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr ""
"hi ha massa nodes-i (%llu), hauríeu d'especificar-ne un nombre menor a 2^32"
-#: misc/mke2fs.c:1731
-#, c-format
+#: misc/mke2fs.c:2256
+#, fuzzy, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
-"\tfilesystem with %lu blocks, specify higher inode_ratio (-i)\n"
+"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
"El producte inode_size (%u) * inodes_count (%u) és massa gran per a\n"
"\tun sistema de fitxers amb %lu blocs. Especifiqueu una inode_ratio (-i)\n"
"\tmajor o bé un nombre menor de nodes-i (-N).\n"
-#: misc/mke2fs.c:1828 misc/tune2fs.c:1462
-#, c-format
-msgid "while trying to delete %s"
-msgstr "en intentar suprimir %s"
-
-#: misc/mke2fs.c:1837
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4238,38 +5043,71 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:1885
+#: misc/mke2fs.c:2397
+#, fuzzy
+msgid "while trying to setup undo file\n"
+msgstr ""
+"\n"
+"\ten intentar crear el fitxer del registre de transaccions"
+
+#: misc/mke2fs.c:2423
+#, fuzzy
+msgid "Discarding device blocks: "
+msgstr ""
+"Mida de bloc del dispositiu de registre de transaccions a utilitzar: %d\n"
+
+#: misc/mke2fs.c:2439
+msgid "failed - "
+msgstr ""
+
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "en configurar el súperbloc"
-#: misc/mke2fs.c:1936
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "sistema operatiu desconegut - %s"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2717
+#, fuzzy
+msgid "Allocating group tables: "
+msgstr "Escriptura de les taules de nodes-i:"
+
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "en intentar assignar les taules del sistema de fitxers"
-#: misc/mke2fs.c:2021
-#, c-format
-msgid "while zeroing block %u at end of filesystem"
+#: misc/mke2fs.c:2734
+#, fuzzy
+msgid ""
+"\n"
+"\twhile converting subcluster bitmap"
+msgstr "en escriure el mapa de bits dels blocs"
+
+#: misc/mke2fs.c:2777
+#, fuzzy, c-format
+msgid "while zeroing block %llu at end of filesystem"
msgstr "en escriure zeros al bloc %u al final del sistema de fitxers"
-#: misc/mke2fs.c:2034
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "en reservar blocs per al canvi de mida en línia"
-#: misc/mke2fs.c:2045 misc/tune2fs.c:477
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "registre de transaccions"
-#: misc/mke2fs.c:2057
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Addició d'un registre de transaccions al dispositiu %s:"
-#: misc/mke2fs.c:2064
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4278,25 +5116,45 @@ msgstr ""
"\n"
"\ten intentar afegir un registre de canvis al dispositiu %s"
-#: misc/mke2fs.c:2069 misc/mke2fs.c:2095 misc/tune2fs.c:506 misc/tune2fs.c:520
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "fet\n"
-#: misc/mke2fs.c:2083
+#: misc/mke2fs.c:2834
+msgid "Skipping journal creation in super-only mode\n"
+msgstr ""
+
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Creació del registre de transaccions (%u blocs): "
-#: misc/mke2fs.c:2100
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\ten intentar crear el registre de canvis"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
+msgid ""
+"\n"
+"Error while enabling multiple mount protection feature."
+msgstr ""
+
+#: misc/mke2fs.c:2871
#, c-format
+msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
"Escriptura de la informació dels súperblocs i de comptabilitat del sistema "
"de fitxers:"
-#: misc/mke2fs.c:2105
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4304,8 +5162,7 @@ msgstr ""
"\n"
"Avís: hi ha hagut problemes en escriure els súperblocs."
-#: misc/mke2fs.c:2108
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4313,12 +5170,11 @@ msgstr ""
"fet\n"
"\n"
-#: misc/mklost+found.c:49
-#, c-format
+#: misc/mklost+found.c:50
msgid "Usage: mklost+found\n"
msgstr "Forma d'ús: mklost+found\n"
-#: misc/partinfo.c:39
+#: misc/partinfo.c:41
#, c-format
msgid ""
"Usage: %s device...\n"
@@ -4333,98 +5189,103 @@ msgstr ""
"Per exemple: %s /dev/hda\n"
"\n"
-#: misc/partinfo.c:49
+#: misc/partinfo.c:51
#, c-format
msgid "Cannot open %s: %s"
msgstr "No es pot obrir %s: %s"
-#: misc/partinfo.c:55
+#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
msgstr "No es pot obtenir la geometria de %s: %s"
-#: misc/partinfo.c:63
+#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
msgstr "No es pot obtenir la mida de %s: %s"
-#: misc/partinfo.c:69
+#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s: h=%3d s=%3d c=%4d inici=%8d mida=%8lu final=%8d\n"
-#: misc/tune2fs.c:96
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Hauríeu d'executar l'e2fsck en el sistema de fitxers.\n"
-#: misc/tune2fs.c:103
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] \n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-#: misc/tune2fs.c:188
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "en intentar obrir el registre de transaccions extern"
-#: misc/tune2fs.c:192
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s no és un dispositiu de registre de transaccions.\n"
-#: misc/tune2fs.c:207
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "No s'ha trobat el súperbloc del registre de transaccions\n"
-#: misc/tune2fs.c:219
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr ""
"No s'ha trobat l'UUID del sistema de fitxers en el dispositiu del registre "
"de transaccions.\n"
-#: misc/tune2fs.c:240
-msgid "Journal NOT removed\n"
-msgstr "NO s'ha suprimit el registre de transaccions\n"
+#: misc/tune2fs.c:269
+msgid ""
+"Cannot locate journal device. It was NOT removed\n"
+"Use -f option to remove missing journal device.\n"
+msgstr ""
-#: misc/tune2fs.c:246
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "S'ha suprimit el registre de transaccions\n"
-#: misc/tune2fs.c:286
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "en llegir els mapes de bits"
-#: misc/tune2fs.c:294
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "en netejar el node-i del registre de transaccions"
-#: misc/tune2fs.c:305
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "en escriure al node-i del registre de transaccions"
-#: misc/tune2fs.c:320
-#, c-format
-msgid "Invalid mount option set: %s\n"
-msgstr "S'ha establert una opció de muntatge no vàlida: %s\n"
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
+msgid "(and reboot afterwards!)\n"
+msgstr "(i reinicieu després)\n"
-#: misc/tune2fs.c:356
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr "La funció de neteja del sistema de fitxers «%s» no està implementada.\n"
+msgstr ""
+"La funció de neteja del sistema de fitxers «%s» no està implementada.\n"
-#: misc/tune2fs.c:362
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr ""
-"L'establiment de la funció del sistema de fitxers «%s» no està implementada.\n"
+"L'establiment de la funció del sistema de fitxers «%s» no està "
+"implementada.\n"
-#: misc/tune2fs.c:371
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4432,7 +5293,7 @@ msgstr ""
"La funció has_journal només es pot esborrar si el sistema de fitxers no\n"
"està muntat, o bé està muntat en mode de només lectura.\n"
-#: misc/tune2fs.c:379
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4440,13 +5301,58 @@ msgstr ""
"El senyalador needs_recovery està establert. Hauríeu d'executar l'e2fsck\n"
"abans de netejar el senyalador has_journal.\n"
-#: misc/tune2fs.c:412
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"L'establiment de la funció del sistema de fitxers «%s» no està "
+"implementada.\n"
+
+#: misc/tune2fs.c:475
+#, fuzzy
+msgid ""
+"The multiple mount protection feature can't\n"
+"be set if the filesystem is mounted or\n"
+"read-only.\n"
+msgstr ""
+"La funció huge_file només es pot esborrar si el sistema de fitxers no\n"
+"està muntat, o bé està muntat en mode de només lectura.\n"
+
+#: misc/tune2fs.c:493
+#, c-format
+msgid "Multiple mount protection has been enabled with update interval %ds.\n"
+msgstr ""
+
+#: misc/tune2fs.c:502
+msgid ""
+"The multiple mount protection feature cannot\n"
+"be disabled if the filesystem is readonly.\n"
+msgstr ""
+
+#: misc/tune2fs.c:510
+#, fuzzy
+msgid "Error while reading bitmaps\n"
+msgstr "en llegir els mapes de bits"
+
+#: misc/tune2fs.c:519
+#, c-format
+msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
+msgstr ""
+
+#: misc/tune2fs.c:524
+#, fuzzy
+msgid "while reading MMP block."
+msgstr "en llegir el node-i dels blocs erronis"
+
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-#: misc/tune2fs.c:423
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4454,16 +5360,17 @@ msgstr ""
"La funció huge_file només es pot esborrar si el sistema de fitxers no\n"
"està muntat, o bé està muntat en mode de només lectura.\n"
-#: misc/tune2fs.c:451
-#, c-format
-msgid "(and reboot afterwards!)\n"
-msgstr "(i reinicieu després)\n"
+#: misc/tune2fs.c:627
+msgid ""
+"\n"
+"Warning: '^quota' option overrides '-Q'arguments.\n"
+msgstr ""
-#: misc/tune2fs.c:472
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "El sistema de fitxers ja té un registre de transaccions.\n"
-#: misc/tune2fs.c:490
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4472,21 +5379,21 @@ msgstr ""
"\n"
"\ten intentar obrir el registre de transaccions a %s\n"
-#: misc/tune2fs.c:494
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Creació del registre de transaccions al dispositiu %s:"
-#: misc/tune2fs.c:502
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "en afegir un sistema de fitxers al registre de transaccions a %s"
-#: misc/tune2fs.c:508
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Creació del node-i del registre de transaccions:"
-#: misc/tune2fs.c:517
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -4494,86 +5401,116 @@ msgstr ""
"\n"
"\ten intentar crear el fitxer del registre de transaccions"
-#: misc/tune2fs.c:584
+#: misc/tune2fs.c:799
+#, fuzzy
+msgid "Couldn't allocate memory to parse quota options!\n"
+msgstr "No s'ha pogut assignar memòria per a analitzar les opcions\n"
+
+#: misc/tune2fs.c:821
+msgid ""
+"\n"
+"Bad quota options specified.\n"
+"\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
+"\t[^]usrquota\n"
+"\t[^]grpquota\n"
+"\n"
+"\n"
+msgstr ""
+
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "No s'ha pogut analitzar l'especificador de data/hora: %s"
-#: misc/tune2fs.c:608 misc/tune2fs.c:621
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "nombre de muntatges erroni - %s"
-#: misc/tune2fs.c:637
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "comportament d'error erroni - %s"
-#: misc/tune2fs.c:664
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "nom de grup/gid erroni - %s"
-#: misc/tune2fs.c:697
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "interval erroni - %s"
-#: misc/tune2fs.c:725
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "ràtio de blocs reservats errònia - %s"
-#: misc/tune2fs.c:740
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o només es pot especificar una vegada"
-#: misc/tune2fs.c:750
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O només es pot especificar una vegada"
-#: misc/tune2fs.c:760
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "número de blocs reservats erroni - %s"
-#: misc/tune2fs.c:789
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "nom d'usuari/uid erroni - %s"
-#: misc/tune2fs.c:806
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "mida del node-i errònia - %s"
-#: misc/tune2fs.c:813
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "La mida del node-i ha de ser una potència de 2 - %s"
-#: misc/tune2fs.c:900
+#: misc/tune2fs.c:1215
+#, c-format
+msgid "mmp_update_interval too big: %lu\n"
+msgstr ""
+
+#: misc/tune2fs.c:1220
+#, fuzzy, c-format
+msgid "Setting multiple mount protection update interval to %lu second\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Establiment del nombre màxim de muntatges a %d\n"
+msgstr[1] "Establiment del nombre màxim de muntatges a %d\n"
+
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr ""
-#: misc/tune2fs.c:915
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr ""
-#: misc/tune2fs.c:930
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Algorisme de resum no vàlid: %s\n"
-#: misc/tune2fs.c:936
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Establiment de l'algorisme de resum predeterminat a %s (%d)\n"
-#: misc/tune2fs.c:944
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -4582,18 +5519,61 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tclear_mmp\n"
+"\thash_alg=<hash algorithm>\n"
+"\tmount_opts=<extended default mount options>\n"
"\tstride=<RAID per-disk chunk size in blocks>\n"
"\tstripe_width=<RAID stride*data disks in blocks>\n"
-"\thash_alg=<hash algorithm>\n"
"\ttest_fs\n"
"\t^test_fs\n"
msgstr ""
-#: misc/tune2fs.c:1384 misc/tune2fs.c:1389 resize/resize2fs.c:760
+#: misc/tune2fs.c:1764
+#, fuzzy
+msgid "Failed to read inode bitmap\n"
+msgstr "en llegir els mapes de bits"
+
+#: misc/tune2fs.c:1769
+#, fuzzy
+msgid "Failed to read block bitmap\n"
+msgstr "en escriure el mapa de bits dels blocs"
+
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "blocs a moure"
-#: misc/tune2fs.c:1471
+#: misc/tune2fs.c:1789
+msgid "Failed to allocate block bitmap when increasing inode size\n"
+msgstr ""
+
+#: misc/tune2fs.c:1795
+msgid "Not enough space to increase inode size \n"
+msgstr ""
+
+#: misc/tune2fs.c:1800
+#, fuzzy
+msgid "Failed to relocate blocks during inode resize \n"
+msgstr "en reservar blocs per al canvi de mida en línia"
+
+#: misc/tune2fs.c:1832
+msgid ""
+"Error in resizing the inode size.\n"
+"Run e2undo to undo the file system changes. \n"
+msgstr ""
+"S'ha produït un error en canviar la mida del node-i.\n"
+"Executeu l'e2undo per a desfer els canvis al sistema de fitxers. \n"
+
+#: misc/tune2fs.c:1859
+#, fuzzy
+msgid "Couldn't allocate memory for tdb filename\n"
+msgstr "No s'ha pogut assignar memòria per al sistema de fitxers\n"
+
+#: misc/tune2fs.c:1880
+#, c-format
+msgid "while trying to delete %s"
+msgstr "en intentar suprimir %s"
+
+#: misc/tune2fs.c:1888
#, fuzzy, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -4604,57 +5584,74 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1529
+#: misc/tune2fs.c:1957
#, c-format
-msgid "The inode size is already %d\n"
+msgid ""
+"MMP block magic is bad. Try to fix it by running:\n"
+"'e2fsck -f %s'\n"
+msgstr ""
+
+#: misc/tune2fs.c:1975
+#, fuzzy, c-format
+msgid "The inode size is already %lu\n"
msgstr "La mida del node-i ja és %d\n"
-#: misc/tune2fs.c:1534
-#, c-format
-msgid "Shrinking the inode size is not supported\n"
+#: misc/tune2fs.c:1982
+#, fuzzy
+msgid "Shrinking inode size is not supported\n"
msgstr "La reducció de la mida del node-i no està implementada\n"
-#: misc/tune2fs.c:1577
+#: misc/tune2fs.c:1987
+#, fuzzy, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "mida de node-i no vàlida (%d) (mín %d/màx %d)"
+
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Establiment del nombre màxim de muntatges a %d\n"
-#: misc/tune2fs.c:1583
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Establiment del nombre de muntatges actual a %d\n"
-#: misc/tune2fs.c:1588
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Establiment del comportament d'error a %d\n"
-#: misc/tune2fs.c:1593
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Establiment del GID dels blocs reservats a %lu\n"
-#: misc/tune2fs.c:1598
+#: misc/tune2fs.c:2055
+#, fuzzy, c-format
+msgid "interval between checks is too big (%lu)"
+msgstr "Establiment de l'interval entre comprovacions a %lu segons\n"
+
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Establiment de l'interval entre comprovacions a %lu segons\n"
-#: misc/tune2fs.c:1605
-#, c-format
-msgid "Setting reserved blocks percentage to %g%% (%u blocks)\n"
-msgstr ""
+#: misc/tune2fs.c:2069
+#, fuzzy, c-format
+msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
+msgstr "Establiment del nombre de blocs reservats a %lu\n"
-#: misc/tune2fs.c:1612
-#, c-format
-msgid "reserved blocks count is too big (%lu)"
+#: misc/tune2fs.c:2075
+#, fuzzy, c-format
+msgid "reserved blocks count is too big (%llu)"
msgstr "el nombre de blocs reservats és massa gran (%lu)"
-#: misc/tune2fs.c:1618
-#, c-format
-msgid "Setting reserved blocks count to %lu\n"
+#: misc/tune2fs.c:2082
+#, fuzzy, c-format
+msgid "Setting reserved blocks count to %llu\n"
msgstr "Establiment del nombre de blocs reservats a %lu\n"
-#: misc/tune2fs.c:1624
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -4662,7 +5659,14 @@ msgstr ""
"\n"
"El sitema de fitxers ja té súperblocs dispersos.\n"
-#: misc/tune2fs.c:1631
+#: misc/tune2fs.c:2092
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -4671,73 +5675,135 @@ msgstr ""
"\n"
"S'ha establert el senyalador de súperbloc dispers. %s"
-#: misc/tune2fs.c:1636
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
"La neteja del senyalador de súperbloc dispers no està implementada.\n"
-#: misc/tune2fs.c:1643
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Establiment de la darrera comprovació del sistema de fitxers a %s\n"
-#: misc/tune2fs.c:1649
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Establiment de l'UID dels blocs reservats a %lu\n"
-#: misc/tune2fs.c:1700
+#: misc/tune2fs.c:2154
+msgid "Error in using clear_mmp. It must be used with -f\n"
+msgstr ""
+
+#: misc/tune2fs.c:2172
+#, fuzzy
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"La mida del node-i només es pot canviar quan el sistema de fitxers està "
+"desmuntat.\n"
+
+#: misc/tune2fs.c:2191
+#, fuzzy
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"La mida del node-i només es pot canviar quan el sistema de fitxers està "
+"desmuntat.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "El format de l'UUID no és vàlid\n"
-#: misc/tune2fs.c:1712
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"La mida del node-i només es pot canviar quan el sistema de fitxers està "
"desmuntat.\n"
-#: misc/tune2fs.c:1719
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-#: misc/tune2fs.c:1731
-msgid ""
-"Error in resizing the inode size.\n"
-"Run e2undo to undo the file system changes. \n"
-msgstr ""
-"S'ha produït un error en canviar la mida del node-i.\n"
-"Executeu l'e2undo per a desfer els canvis al sistema de fitxers. \n"
-
-#: misc/tune2fs.c:1735
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Establiment de la mida de node-i a %lu\n"
-#: misc/tune2fs.c:1745
+#: misc/tune2fs.c:2256
+#, fuzzy
+msgid "Failed to change inode size\n"
+msgstr "No s'ha pogut obrir %s\n"
+
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr ""
-#: misc/tune2fs.c:1750
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr ""
-#: misc/util.c:72
+#: misc/tune2fs.c:2279
+#, fuzzy, c-format
+msgid "Setting extended default mount options to '%s'\n"
+msgstr "Establiment del nombre de muntatges actual a %d\n"
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Voleu continuar de totes maneres? (s,n)"
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Voleu continuar de totes maneres? (s,n)"
-#: misc/util.c:93
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "nombre de muntatges erroni - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "nombre de muntatges erroni - %s"
+
+#: misc/util.c:135
+#, c-format
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "No s'ha pogut fer al crida stat %s --%s\n"
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "fitxer normal"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "No es pot obrir %s: %s"
-#: misc/util.c:96
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -4746,38 +5812,56 @@ msgstr ""
"Sembla que el dispositiu no existeix. Assegureu-vos que l'heu especificat "
"correctament\n"
-#: misc/util.c:107
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "el %s no és un dispositiu especial de blocs.\n"
-#: misc/util.c:136
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " conté un sistema de fitxers amb errors"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " conté un sistema de fitxers amb errors"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s és el dispositiu complet, no pas només una partició\n"
-#: misc/util.c:158
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"s'ha forçat el mke2fs de totes maneres. Amb una mica de sort el fitxer /etc/"
"mtab és incorrecte.\n"
-#: misc/util.c:163
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "no es farà un %s aquí\n"
-#: misc/util.c:170
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "s'ha forçat el mke2fs de totes maneres.\n"
-#: misc/util.c:186
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr ""
"No s'ha pogut ubicat memòria per a analitzar les opcions del registre de "
"transaccions\n"
-#: misc/util.c:228
+#: misc/util.c:368
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Could not find journal device matching %s\n"
+msgstr ""
+"No s'han trobat els números màgics del superbloc del registre de transaccions"
+
+#: misc/util.c:395
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -4788,12 +5872,13 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
msgstr ""
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -4801,7 +5886,7 @@ msgstr ""
"\n"
"El sistema de fitxers és massa petit per a un registre de transaccions\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -4809,7 +5894,7 @@ msgid ""
"between 1024 and 10240000 blocks. Aborting.\n"
msgstr ""
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -4818,34 +5903,158 @@ msgstr ""
"La mida del registre de transaccions és massa gran per al sistema de "
"fitxers.\n"
-#: misc/util.c:283
+#: misc/util.c:455
#, 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 ""
-#: misc/uuidgen.c:31
+#: misc/uuidd.c:48
+#, c-format
+msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
+msgstr ""
+
+#: misc/uuidd.c:50
+#, c-format
+msgid " %s [-r|t] [-n num] [-s socketpath]\n"
+msgstr ""
+
+#: misc/uuidd.c:52
+#, c-format
+msgid " %s -k\n"
+msgstr ""
+
+#: misc/uuidd.c:154
+#, fuzzy
+msgid "bad arguments"
+msgstr "%s: s'han especificat massa arguments\n"
+
+#: misc/uuidd.c:172
+msgid "connect"
+msgstr ""
+
+#: misc/uuidd.c:191
+msgid "write"
+msgstr ""
+
+#: misc/uuidd.c:199
+msgid "read count"
+msgstr ""
+
+#: misc/uuidd.c:205
+msgid "bad response length"
+msgstr ""
+
+#: misc/uuidd.c:270
+#, c-format
+msgid "uuidd daemon already running at pid %s\n"
+msgstr ""
+
+#: misc/uuidd.c:278
+#, fuzzy, c-format
+msgid "Couldn't create unix stream socket: %s"
+msgstr "No s'ha pogut analitzar l'especificador de data/hora: %s"
+
+#: misc/uuidd.c:307
+#, fuzzy, c-format
+msgid "Couldn't bind unix socket %s: %s\n"
+msgstr "No s'ha pogut reconnectar %i: %m\n"
+
+#: misc/uuidd.c:315
+#, fuzzy, c-format
+msgid "Couldn't listen on unix socket %s: %s\n"
+msgstr "No s'ha pogut reconnectar %i: %m\n"
+
+#: misc/uuidd.c:353
+#, fuzzy, c-format
+msgid "Error reading from client, len = %d\n"
+msgstr "S'ha produït un error en llegir el @i %i: %m\n"
+
+#: misc/uuidd.c:361
+#, c-format
+msgid "operation %d, incoming num = %d\n"
+msgstr ""
+
+#: misc/uuidd.c:380
+#, c-format
+msgid "Generated time UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:390
+#, c-format
+msgid "Generated random UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:399
+#, c-format
+msgid "Generated time UUID %s and subsequent UUID\n"
+msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:420
+#, c-format
+msgid "Generated %d UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:432
+#, fuzzy, c-format
+msgid "Invalid operation %d\n"
+msgstr "La versió dels atributs ampliats no és vàlida.\n"
+
+#: misc/uuidd.c:476 misc/uuidd.c:498
+#, c-format
+msgid "Bad number: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:533 misc/uuidd.c:562
+#, fuzzy, c-format
+msgid "Error calling uuidd daemon (%s): %s\n"
+msgstr "S'ha produït un error en crear el @d /@l (%s): %m\n"
+
+#: misc/uuidd.c:543
+#, c-format
+msgid "%s and subsequent UUID\n"
+msgid_plural "%s and subsequent %d UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:547
+msgid "List of UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:568
+#, c-format
+msgid "Unexpected reply length from server %d\n"
+msgstr ""
+
+#: misc/uuidd.c:585
+#, c-format
+msgid "Couldn't kill uuidd running at pid %d: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:591
+#, c-format
+msgid "Killed uuidd running at pid %d\n"
+msgstr ""
+
+#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
msgstr "Forma d'ús: %s [-r] [-t]\n"
-#: resize/extent.c:196
+#: resize/extent.c:202
msgid "# Extent dump:\n"
msgstr "# Bolcat de l'extensió:\n"
# FIXME: «Sorted» (dpm)
-#: resize/extent.c:197
-#, c-format
-msgid "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n"
+#: resize/extent.c:203
+#, fuzzy, c-format
+msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tNúm=%d, Mida=%d, Cursor=%d, Ordenat=%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:42
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -4855,158 +6064,207 @@ msgstr ""
"dispositiu [mida nova]\n"
"\n"
-#: resize/main.c:64
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Ampliació de la taula de nodes-i"
-#: resize/main.c:67
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Reubicació dels blocs"
-#: resize/main.c:70
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Escaneig de la taula de nodes-i"
-#: resize/main.c:73
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Actualització de les referències dels nodes-i"
-#: resize/main.c:76
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Trasllat de la taula de nodes-i"
-#: resize/main.c:79
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Pas desconegut!?"
-#: resize/main.c:82
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Inici del pas %d (màx = %lu)\n"
-#: resize/main.c:264
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "en obrir %s"
-#: resize/main.c:276
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "eon obtenir la informació d'«stat» per a %s"
-#: resize/main.c:337
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
+"Please run 'e2fsck -f %s' first.\n"
+"\n"
msgstr ""
-"%s: la combinació de les funcions flex_bg i\n"
-"\t!resize_inode no és compatible amb el resize2fs.\n"
+"Executeu «e2fsck -f %s» primer.\n"
+"\n"
-#: resize/main.c:345
-#, c-format
-msgid "Estimated minimum size of the filesystem: %u\n"
+#: resize/main.c:342
+#, fuzzy, c-format
+msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Mida mínima estimada del sistema de fitxers: %u\n"
-#: resize/main.c:381
+#: resize/main.c:378
#, fuzzy, c-format
msgid "Invalid new size: %s\n"
msgstr "mida de node-i errònia - %s"
#: resize/main.c:394
+msgid "New size too large to be expressed in 32 bits\n"
+msgstr ""
+
+#: resize/main.c:402
+#, fuzzy, c-format
+msgid "New size smaller than minimum (%llu)\n"
+msgstr ""
+"La mida de bloc del dispositiu de registre de transaccions (%d) és menor que "
+"la mida mínima de bloc %d\n"
+
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr ""
-#: resize/main.c:418
-#, c-format
+#: resize/main.c:432
+#, fuzzy, c-format
msgid ""
-"The containing partition (or device) is only %u (%dk) blocks.\n"
-"You requested a new size of %u blocks.\n"
+"The containing partition (or device) is only %llu (%dk) blocks.\n"
+"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
"La partició (o dispositiu) contenidora té una mida de només %u (%dk) blocs.\n"
"N'heu requerit una mida nova de %u blocs.\n"
"\n"
-#: resize/main.c:425
-#, c-format
+#: resize/main.c:439
+#, fuzzy, c-format
msgid ""
-"The filesystem is already %u blocks long. Nothing to do!\n"
+"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
"El sistema de fitxer ja té %u blocs. No cal fer res\n"
"\n"
-#: resize/main.c:436
-#, c-format
-msgid ""
-"Please run 'e2fsck -f %s' first.\n"
-"\n"
+#: resize/main.c:456
+#, fuzzy, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
-"Executeu «e2fsck -f %s» primer.\n"
+"El sistema de fitxers a %s té ara una mida de %u blocs.\n"
"\n"
-#: resize/main.c:447
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "en intentar redimensionar %s"
-#: resize/main.c:452
+#: resize/main.c:468
#, c-format
msgid ""
-"The filesystem on %s is now %u blocks long.\n"
+"Please run 'e2fsck -fy %s' to fix the filesystem\n"
+"after the aborted resize operation.\n"
+msgstr ""
+
+#: resize/main.c:474
+#, fuzzy, c-format
+msgid ""
+"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
"El sistema de fitxers a %s té ara una mida de %u blocs.\n"
"\n"
-#: resize/online.c:37
+#: resize/main.c:489
+#, fuzzy, c-format
+msgid "while trying to truncate %s"
+msgstr "en intentar mostrar la informació de %s"
+
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "El nucli no és compatible amb el canvi de mida en línia"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
"El sistema de fitxers a %s està muntat a %s; cal un canvi de mida en línia\n"
-#: resize/online.c:41
-#, c-format
-msgid "On-line shrinking from %u to %u not supported.\n"
+#: resize/online.c:91
+#, fuzzy
+msgid "On-line shrinking not supported"
msgstr "La reducció de mida en línia de %u a %u no és compatible.\n"
-#: resize/online.c:61
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr "El sistema de fitxers no és compatible amb el canvi de mida en línia"
-#: resize/online.c:68
+#: resize/online.c:125
+#, fuzzy
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "en reservar blocs per al canvi de mida en línia"
+
+#: resize/online.c:132
+#, fuzzy
+msgid "Kernel does not support resizing a file system this large"
+msgstr "El nucli no és compatible amb el canvi de mida en línia"
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "en intentar obrir el punt de muntatge %s"
-#: resize/online.c:76
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr ""
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "S'ha denegat el permís per a canviar la mida del sistema de fitxers"
-#: resize/online.c:79
-msgid "Kernel does not support online resizing"
-msgstr "El nucli no és compatible amb el canvi de mida en línia"
-
-#: resize/online.c:82
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "En comprovar la compatibilitat amb el canvi de mida en línia"
-#: resize/online.c:111
-#, c-format
-msgid "Performing an on-line resize of %s to %u (%dk) blocks.\n"
+#: resize/online.c:184
+msgid "Kernel does not support online resizing"
+msgstr "El nucli no és compatible amb el canvi de mida en línia"
+
+#: resize/online.c:223
+#, fuzzy, c-format
+msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr "Canvi de mida en línia de %s a %u (%dk) blocs.\n"
-#: resize/online.c:121
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr "En intentar ampliar el darrer grup"
-#: resize/online.c:180
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr "En intentar afegir el grup #%d"
-#: resize/online.c:191
+#: resize/online.c:298
#, c-format
msgid ""
"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
@@ -5015,25 +6273,838 @@ msgstr ""
"El sistema de fitxers a %s està muntat a %s, i aquest sistema no és "
"compatible amb el canvi de mida en línia.\n"
-#: resize/resize2fs.c:322
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "el nombre de nodes-i (%llu) ha de ser menor que %u"
-#: resize/resize2fs.c:755
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "blocs reservats"
-#: resize/resize2fs.c:765
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "blocs de metadades"
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "blocs de metadades"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
# FIXME: (dpm)
-#: resize/resize2fs.c:1703
-#, c-format
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Això no hauria de passar mai: canvi de mida del node-i malmesa\n"
+#: lib/ext2fs/ext2_err.c:11
+msgid "EXT2FS Library version 1.42.10"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:12
+msgid "Wrong magic number for ext2_filsys structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:13
+msgid "Wrong magic number for badblocks_list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:14
+msgid "Wrong magic number for badblocks_iterate structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:15
+msgid "Wrong magic number for inode_scan structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:16
+msgid "Wrong magic number for io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:17
+msgid "Wrong magic number for unix io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:18
+msgid "Wrong magic number for io_manager structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:19
+msgid "Wrong magic number for block_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:20
+msgid "Wrong magic number for inode_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:21
+msgid "Wrong magic number for generic_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:22
+msgid "Wrong magic number for test io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:23
+msgid "Wrong magic number for directory block list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:24
+msgid "Wrong magic number for icount structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:25
+msgid "Wrong magic number for Powerquest io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:26
+msgid "Wrong magic number for ext2 file structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:27
+msgid "Wrong magic number for Ext2 Image Header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:28
+msgid "Wrong magic number for inode io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:29
+msgid "Wrong magic number for ext4 extent handle"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:30
+#, fuzzy
+msgid "Bad magic number in super-block"
+msgstr "s'està llegint el súperbloc del registre de transaccions\n"
+
+#: lib/ext2fs/ext2_err.c:31
+msgid "Filesystem revision too high"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:32
+msgid "Attempt to write to filesystem opened read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:33
+#, fuzzy
+msgid "Can't read group descriptors"
+msgstr ", descriptors de grup a "
+
+#: lib/ext2fs/ext2_err.c:34
+#, fuzzy
+msgid "Can't write group descriptors"
+msgstr ", descriptors de grup a "
+
+#: lib/ext2fs/ext2_err.c:35
+msgid "Corrupt group descriptor: bad block for block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:36
+msgid "Corrupt group descriptor: bad block for inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:37
+msgid "Corrupt group descriptor: bad block for inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:38
+#, fuzzy
+msgid "Can't write an inode bitmap"
+msgstr "en escriure el mapa de bits dels nodes-i"
+
+#: lib/ext2fs/ext2_err.c:39
+#, fuzzy
+msgid "Can't read an inode bitmap"
+msgstr "escriptura dels mapes de bits de bloc i de node-i"
+
+#: lib/ext2fs/ext2_err.c:40
+#, fuzzy
+msgid "Can't write a block bitmap"
+msgstr "en escriure el mapa de bits dels blocs"
+
+#: lib/ext2fs/ext2_err.c:41
+#, fuzzy
+msgid "Can't read a block bitmap"
+msgstr "en escriure el mapa de bits dels blocs"
+
+#: lib/ext2fs/ext2_err.c:42
+#, fuzzy
+msgid "Can't write an inode table"
+msgstr "en escriure la taula de nodes-i"
+
+#: lib/ext2fs/ext2_err.c:43
+#, fuzzy
+msgid "Can't read an inode table"
+msgstr "Escaneig de la taula de nodes-i"
+
+#: lib/ext2fs/ext2_err.c:44
+msgid "Can't read next inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:45
+#, fuzzy
+msgid "Filesystem has unexpected block size"
+msgstr ""
+"La mida del sistema de fitxers és més gran que la mida aparent del "
+"dispositiu."
+
+#: lib/ext2fs/ext2_err.c:46
+msgid "EXT2 directory corrupted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:47
+msgid "Attempt to read block from filesystem resulted in short read"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:48
+msgid "Attempt to write block to filesystem resulted in short write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:49
+msgid "No free space in the directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:50
+#, fuzzy
+msgid "Inode bitmap not loaded"
+msgstr ", mapa de bits del node-i a "
+
+#: lib/ext2fs/ext2_err.c:51
+#, fuzzy
+msgid "Block bitmap not loaded"
+msgstr " Mapa de bits del bloc a "
+
+#: lib/ext2fs/ext2_err.c:52
+#, fuzzy
+msgid "Illegal inode number"
+msgstr "Nombre de blocs invàlid\n"
+
+#: lib/ext2fs/ext2_err.c:53
+#, fuzzy
+msgid "Illegal block number"
+msgstr "Nombre de blocs invàlid\n"
+
+#: lib/ext2fs/ext2_err.c:54
+msgid "Internal error in ext2fs_expand_dir"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:55
+msgid "Not enough space to build proposed filesystem"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:56
+msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:57
+msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:58
+msgid "Illegal block number passed to ext2fs_test_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:59
+msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:60
+msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:61
+msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:62
+msgid "Attempt to fudge end of block bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:63
+msgid "Attempt to fudge end of inode bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:64
+#, fuzzy
+msgid "Illegal indirect block found"
+msgstr "s'estan llegint els blocs indirectes del node-i %u"
+
+#: lib/ext2fs/ext2_err.c:65
+#, fuzzy
+msgid "Illegal doubly indirect block found"
+msgstr "s'estan llegint els blocs indirectes del node-i %u"
+
+#: lib/ext2fs/ext2_err.c:66
+#, fuzzy
+msgid "Illegal triply indirect block found"
+msgstr "s'estan llegint els blocs indirectes del node-i %u"
+
+#: lib/ext2fs/ext2_err.c:67
+#, fuzzy
+msgid "Block bitmaps are not the same"
+msgstr " Mapa de bits del bloc a "
+
+#: lib/ext2fs/ext2_err.c:68
+#, fuzzy
+msgid "Inode bitmaps are not the same"
+msgstr ", mapa de bits del node-i a "
+
+#: lib/ext2fs/ext2_err.c:69
+msgid "Illegal or malformed device name"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:70
+msgid "A block group is missing an inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:71
+msgid "The ext2 superblock is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:72
+msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:73
+msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:74
+msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:75
+msgid "Too many symbolic links encountered."
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:76
+msgid "The callback function will not handle this case"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:77
+msgid "The inode is from a bad block in the inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:78
+#, fuzzy
+msgid "Filesystem has unsupported feature(s)"
+msgstr "%s té funcionalitats no implementades:"
+
+#: lib/ext2fs/ext2_err.c:79
+#, fuzzy
+msgid "Filesystem has unsupported read-only feature(s)"
+msgstr "%s té funcionalitats no implementades:"
+
+#: lib/ext2fs/ext2_err.c:80
+msgid "IO Channel failed to seek on read or write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:81
+#, fuzzy
+msgid "Memory allocation failed"
+msgstr "Aerror en la ubicació"
+
+#: lib/ext2fs/ext2_err.c:82
+msgid "Invalid argument passed to ext2 library"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:83
+#, fuzzy
+msgid "Could not allocate block in ext2 filesystem"
+msgstr "No s'ha pogut assignar memòria per al sistema de fitxers\n"
+
+#: lib/ext2fs/ext2_err.c:84
+#, fuzzy
+msgid "Could not allocate inode in ext2 filesystem"
+msgstr "No s'ha pogut assignar memòria per al sistema de fitxers\n"
+
+#: lib/ext2fs/ext2_err.c:85
+msgid "Ext2 inode is not a directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:86
+msgid "Too many references in table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:87
+msgid "File not found by ext2_lookup"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:88
+msgid "File open read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:89
+#, fuzzy
+msgid "Ext2 directory block not found"
+msgstr "El bloc de directori %u (#%d) en el node-i %u és buit\n"
+
+#: lib/ext2fs/ext2_err.c:90
+msgid "Ext2 directory already exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:91
+msgid "Unimplemented ext2 library function"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:92
+msgid "User cancel requested"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:93
+msgid "Ext2 file too big"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:94
+#, fuzzy
+msgid "Supplied journal device not a block device"
+msgstr ""
+"Mida de bloc del dispositiu de registre de transaccions a utilitzar: %d\n"
+
+#: lib/ext2fs/ext2_err.c:95
+#, fuzzy
+msgid "Journal superblock not found"
+msgstr "No s'ha trobat el súperbloc del registre de transaccions\n"
+
+#: lib/ext2fs/ext2_err.c:96
+msgid "Journal must be at least 1024 blocks"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:97
+msgid "Unsupported journal version"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:98
+#, fuzzy
+msgid "Error loading external journal"
+msgstr "en intentar obrir el registre de transaccions extern"
+
+#: lib/ext2fs/ext2_err.c:99
+#, fuzzy
+msgid "Journal not found"
+msgstr "No s'ha trobat el súperbloc del registre de transaccions\n"
+
+#: lib/ext2fs/ext2_err.c:100
+msgid "Directory hash unsupported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:101
+#, fuzzy
+msgid "Illegal extended attribute block number"
+msgstr "aatribut ampliat"
+
+#: lib/ext2fs/ext2_err.c:102
+msgid "Cannot create filesystem with requested number of inodes"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:103
+msgid "E2image snapshot not in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:104
+#, fuzzy
+msgid "Too many reserved group descriptor blocks"
+msgstr "<El node-i del descriptor de grup>"
+
+#: lib/ext2fs/ext2_err.c:105
+msgid "Resize inode is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:106
+msgid "Tried to set block bmap with missing indirect block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:107
+msgid "TDB: Success"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:108
+msgid "TDB: Corrupt database"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:109
+msgid "TDB: IO Error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:110
+msgid "TDB: Locking error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:111
+msgid "TDB: Out of memory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:112
+msgid "TDB: Record exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:113
+msgid "TDB: Lock exists on other keys"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:114
+#, fuzzy
+msgid "TDB: Invalid parameter"
+msgstr "Paràmetre de canvi de mida no vàlid: %s\n"
+
+#: lib/ext2fs/ext2_err.c:115
+msgid "TDB: Record does not exist"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:116
+msgid "TDB: Write not permitted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:117
+msgid "Ext2fs directory block list is empty"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:118
+msgid "Attempt to modify a block mapping via a read-only block iterator"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:119
+msgid "Wrong magic number for ext4 extent saved path"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:120
+msgid "Wrong magic number for 64-bit generic bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:121
+msgid "Wrong magic number for 64-bit block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:122
+msgid "Wrong magic number for 64-bit inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:123
+msgid "Wrong magic number --- RESERVED_13"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:124
+msgid "Wrong magic number --- RESERVED_14"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:125
+msgid "Wrong magic number --- RESERVED_15"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:126
+msgid "Wrong magic number --- RESERVED_16"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:127
+msgid "Wrong magic number --- RESERVED_17"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:128
+msgid "Wrong magic number --- RESERVED_18"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:129
+msgid "Wrong magic number --- RESERVED_19"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:130
+msgid "Corrupt extent header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:131
+msgid "Corrupt extent index"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:132
+msgid "Corrupt extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:133
+msgid "No free space in extent map"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:134
+msgid "Inode does not use extents"
+msgstr ""
+
+# http://en.wikipedia.org/wiki/Extent_(file_systems). Hi ha la ubicació basada en blocs i la ubicació basada en «extents» (dpm).
+#: lib/ext2fs/ext2_err.c:135
+#, fuzzy
+msgid "No 'next' extent"
+msgstr "xextensió"
+
+#: lib/ext2fs/ext2_err.c:136
+msgid "No 'previous' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:137
+msgid "No 'up' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:138
+msgid "No 'down' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:139
+msgid "No current node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:140
+msgid "Ext2fs operation not supported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:141
+msgid "No room to insert extent in node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:142
+msgid "Splitting would result in empty node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:143
+#, fuzzy
+msgid "Extent not found"
+msgstr "No s'ha trobat /@l. "
+
+#: lib/ext2fs/ext2_err.c:144
+msgid "Operation not supported for inodes containing extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:145
+msgid "Extent length is invalid"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:146
+msgid "I/O Channel does not support 64-bit block numbers"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:147
+msgid "Can't check if filesystem is mounted due to missing mtab file"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:148
+msgid "Filesystem too large to use legacy bitmaps"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:149
+msgid "MMP: invalid magic number"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:150
+msgid "MMP: device currently active"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:151
+msgid "MMP: fsck being run"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:152
+msgid "MMP: block number beyond filesystem range"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:153
+msgid "MMP: undergoing an unknown operation"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:154
+msgid "MMP: filesystem still in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:155
+msgid "MMP: open with O_DIRECT failed"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:156
+#, fuzzy
+msgid "Block group descriptor size incorrect"
+msgstr "<El node-i del descriptor de grup>"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+#, fuzzy
+msgid "Superblock checksum does not match superblock"
+msgstr "Còpies de seguretat del superbloc desades en els blocs: "
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:11
+msgid "Profile version 0.0"
+msgstr ""
+
+#: e2fsck/prof_err.c:12
+msgid "Bad magic value in profile_node"
+msgstr ""
+
+#: e2fsck/prof_err.c:13
+#, fuzzy
+msgid "Profile section not found"
+msgstr "en crear /lost+found"
+
+#: e2fsck/prof_err.c:14
+#, fuzzy
+msgid "Profile relation not found"
+msgstr "en crear /lost+found"
+
+#: e2fsck/prof_err.c:15
+msgid "Attempt to add a relation to node which is not a section"
+msgstr ""
+
+#: e2fsck/prof_err.c:16
+msgid "A profile section header has a non-zero value"
+msgstr ""
+
+#: e2fsck/prof_err.c:17
+msgid "Bad linked list in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:18
+msgid "Bad group level in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:19
+msgid "Bad parent pointer in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:20
+msgid "Bad magic value in profile iterator"
+msgstr ""
+
+#: e2fsck/prof_err.c:21
+msgid "Can't set value on section node"
+msgstr ""
+
+#: e2fsck/prof_err.c:22
+msgid "Invalid argument passed to profile library"
+msgstr ""
+
+#: e2fsck/prof_err.c:23
+msgid "Attempt to modify read-only profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:24
+msgid "Profile section header not at top level"
+msgstr ""
+
+#: e2fsck/prof_err.c:25
+msgid "Syntax error in profile section header"
+msgstr ""
+
+#: e2fsck/prof_err.c:26
+msgid "Syntax error in profile relation"
+msgstr ""
+
+#: e2fsck/prof_err.c:27
+msgid "Extra closing brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:28
+msgid "Missing open brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:29
+msgid "Bad magic value in profile_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:30
+msgid "Bad magic value in profile_section_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:31
+msgid "Iteration through all top level section not supported"
+msgstr ""
+
+#: e2fsck/prof_err.c:32
+#, fuzzy
+msgid "Invalid profile_section object"
+msgstr "S'ha definit una opció del sistema de fitxers no vàlida: %s\n"
+
+#: e2fsck/prof_err.c:33
+msgid "No more sections"
+msgstr ""
+
+#: e2fsck/prof_err.c:34
+msgid "Bad nameset passed to query routine"
+msgstr ""
+
+#: e2fsck/prof_err.c:35
+msgid "No profile file open"
+msgstr ""
+
+#: e2fsck/prof_err.c:36
+msgid "Bad magic value in profile_file_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:37
+#, fuzzy
+msgid "Couldn't open profile file"
+msgstr "No s'ha pogut clonar el fitxer: %m\n"
+
+#: e2fsck/prof_err.c:38
+msgid "Section already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:39
+msgid "Invalid boolean value"
+msgstr ""
+
+#: e2fsck/prof_err.c:40
+msgid "Invalid integer value"
+msgstr ""
+
+#: e2fsck/prof_err.c:41
+msgid "Bad magic value in profile_file_data_t"
+msgstr ""
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "No s'ha pogut fer al crida stat %s --%s\n"
+
+#~ msgid "<The ACL index inode>"
+#~ msgstr "<El node-i de l'índex de les ACL>"
+
+#~ msgid "<The ACL data inode>"
+#~ msgstr "<El node-i de les dades de les ACL>"
+
#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
#~ msgstr ""
#~ "El @S no té un senyalador «has_journal» (té_@j), però té el @j ext3 %s.\n"
@@ -5046,8 +7117,33 @@ msgstr "Això no hauria de passar mai: canvi de mida del node-i malmesa\n"
#~ "Voleu tornar a crear el jornal per a fer que el sistema de fitxers torni "
#~ "a ser ext3?\n"
-#~ msgid "while calling ext2fs_block_iterate"
-#~ msgstr "en fer la crida a ext2fs_block_iterate"
+#~ msgid "%s is mounted. "
+#~ msgstr "%s està muntat. "
+
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "No s'ha pogut determinar la mida del registre de canvis"
+
+#~ msgid "bad block size - %s"
+#~ msgstr "mida del bloc erroni - %s"
+
+#~ msgid "invalid fragment size - %s"
+#~ msgstr "mida de fragment invàlida - %s"
+
+#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
+#~ msgstr "Avís: els fragments no són compatibles. S'ignorarà l'opció -f\n"
+
+#~ msgid "Journal NOT removed\n"
+#~ msgstr "NO s'ha suprimit el registre de transaccions\n"
+
+#~ msgid "#\t\t %u -> %u (%d)\n"
+#~ msgstr "#\t\t %u -> %u (%d)\n"
+
+#~ msgid ""
+#~ "%s: The combination of flex_bg and\n"
+#~ "\t!resize_inode features is not supported by resize2fs.\n"
+#~ msgstr ""
+#~ "%s: la combinació de les funcions flex_bg i\n"
+#~ "\t!resize_inode no és compatible amb el resize2fs.\n"
#~ msgid "while calling iterator function"
#~ msgstr "en fer la crida a la funció d'iteració"
@@ -5065,8 +7161,5 @@ msgstr "Això no hauria de passar mai: canvi de mida del node-i malmesa\n"
#~ msgstr ""
#~ "%s: l'ordre dels bytes del sistema de fitxers ja està normalitzat.\n"
-#~ msgid "invalid test_pattern: %s\n"
-#~ msgstr "el patró_de_prova no és vàlid: %s\n"
-
#~ msgid "invalid starting block - %s"
#~ msgstr "bloc d'inici no vàlid - %s"
diff --git a/po/cs.gmo b/po/cs.gmo
index c3515448..ccc20b38 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 4c1e9f7e..9e8fecb2 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -2,7 +2,7 @@
# Copyright (C) 2008 Theodore Tso (msgids)
# This file is distributed under the same license as the e2fsprogs package.
# Miloslav Trmac <mitr@volny.cz>, 2003.
-# Petr Pisar <petr.pisar@atlas.cz>, 2008, 2009, 2010, 2011.
+# Petr Pisar <petr.pisar@atlas.cz>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
#
#. 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,
@@ -64,10 +64,10 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42\n"
+"Project-Id-Version: e2fsprogs 1.42.9\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-11-29 16:03-0500\n"
-"PO-Revision-Date: 2011-12-19 20:54+0100\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2014-01-03 20:11+0100\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\n"
@@ -76,7 +76,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Špatný blok %u mimo rozsah; ignorován.\n"
@@ -89,11 +89,11 @@ msgstr "při kontrole správnosti iuzlu špatných bloků"
msgid "while reading the bad blocks inode"
msgstr "pÅ™i Ätení iuzlu Å¡patných bloků"
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1239 e2fsck/unix.c:1324 misc/badblocks.c:1215
-#: misc/badblocks.c:1223 misc/badblocks.c:1237 misc/badblocks.c:1249
-#: misc/dumpe2fs.c:572 misc/e2image.c:1170 misc/e2image.c:1288
-#: misc/e2image.c:1301 misc/mke2fs.c:193 misc/tune2fs.c:1907 resize/main.c:308
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "při pokusu otevřít %s"
@@ -103,7 +103,7 @@ msgstr "při pokusu otevřít %s"
msgid "while trying popen '%s'"
msgstr "při pokusu popen „%s“"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "pÅ™i naÄítání seznamu Å¡patných bloků ze souboru"
@@ -111,15 +111,16 @@ msgstr "pÅ™i naÄítání seznamu Å¡patných bloků ze souboru"
msgid "while updating bad block inode"
msgstr "při aktualizaci iuzlu špatných bloků"
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr "Varování: v iuzlu špatných bloků nalezen nepovolený blok %u. Vymazán.\n"
+msgstr ""
+"Varování: v iuzlu špatných bloků nalezen nepovolený blok %u. Vymazán.\n"
#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
-msgstr "Chyba pÅ™i Ätení bloku %lu (%s) pÅ™i %s. "
+msgstr "Chyba pÅ™i Ätení bloku %lu (%s) bÄ›hem %s. "
#: e2fsck/ehandler.c:58
#, c-format
@@ -184,59 +185,64 @@ msgstr ""
"ioctl BLKFLSBUF nepodporováno! Nemohu synchronizovat vyrovnávací paměti.\n"
"\n"
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Použití: %s [-F] [-I bloky_inode_bufferů] zařízení\n"
-#: e2fsck/iscan.c:84 e2fsck/unix.c:902
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "při otevírání %s pro synchronizaci"
-#: e2fsck/iscan.c:89 e2fsck/unix.c:908 resize/main.c:284
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "při pokusu synchronizovat %s"
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1065
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr "při pokusu otevřít „%s“"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "při zahájení průchodu iuzly"
-#: e2fsck/iscan.c:130 misc/e2image.c:1083
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "při získávání dalšího iuzlu"
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "prozkoumáno %u iuzlů.\n"
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "Ätení superbloku žurnálu\n"
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: nenalezen platný superblok žurnálu\n"
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: žurnál příliš krátký\n"
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: obnovuje se žurnál\n"
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr "%s: v režimu jen pro Ätení se žurnál obnovovat nebude\n"
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "při pokusu znovu otevřít %s"
@@ -406,68 +412,61 @@ msgstr "<Rezervovaný iuzel 9>"
msgid "<Reserved inode 10>"
msgstr "<Rezervovaný iuzel 10>"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "obyÄejný soubor"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "adresář"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "znakové zařízení"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "blokové zařízení"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "pojmenovaná roura"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "symbolický odkaz"
-#: e2fsck/message.c:344 misc/uuidd.c:161
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "soket"
-#: e2fsck/message.c:346
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "neznámý druh souboru o módu 0%o"
# Expansion of %B in singular nominativ
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr "nepřímý blok"
# Expansion of %B in singular nominativ
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr "dvojnásobně nepřímý blok"
# Expansion of %B in singular nominativ
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr "trojnásobně nepřímý blok"
# Expansion of %B in singular nominativ
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
msgstr "překladový blok"
# Expansion of %B in singular nominativ
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "blok Ä."
@@ -475,104 +474,104 @@ msgstr "blok Ä."
msgid "multiply claimed inode map"
msgstr "mapa několikrát alokovaných iuzlů"
-#: e2fsck/pass1b.c:608 e2fsck/pass1b.c:727
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
msgstr "vnitřní chyba: nemohu najít dup_blk pro %llu\n"
-#: e2fsck/pass1b.c:818
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "vrácený z clone_file_block"
-#: e2fsck/pass1b.c:840
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "Vnitřní chyba: nemohu najít záznam EA bloku pro %llu"
-#: e2fsck/pass1b.c:852
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr "Vnitřní chyba: nemohu najít záznam EA iuzlu pro %u"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:777
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "Ätení adresářového bloku"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "mapa používaných iuzlů"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "mapa iuzlů adresářů"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "mapa iuzlů obyÄejných souborů"
-#: e2fsck/pass1.c:622
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "mapa používaných bloků"
-#: e2fsck/pass1.c:684
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "otevírání průzkumu iuzlů"
-#: e2fsck/pass1.c:718
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "získávání dalšího iuzlu z průzkumu"
-#: e2fsck/pass1.c:1228
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Průchod 1"
-#: e2fsck/pass1.c:1285
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "Ätu nepřímé bloky iuzlu %u"
-#: e2fsck/pass1.c:1335
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "mapa špatných iuzlů"
-#: e2fsck/pass1.c:1357
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "iuzel v mapě špatných bloků"
-#: e2fsck/pass1.c:1377
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "mapa imagic iuzlů"
-#: e2fsck/pass1.c:1404
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr "mapa několikrát alokovaných bloků"
-#: e2fsck/pass1.c:1504
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "mapa bloků rozšířených atributů"
-#: e2fsck/pass1.c:2252
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr "%6lu(%c): oÄekáváno %6lu, obdrženo fyz. %6lu (bloků %lld)\n"
-#: e2fsck/pass1.c:2613
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "bitmapa bloků"
-#: e2fsck/pass1.c:2619
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "bitmapa iuzlů"
-#: e2fsck/pass1.c:2625
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "tabulka iuzlů"
-#: e2fsck/pass2.c:278
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Průchod 2"
-#: e2fsck/pass2.c:800
+#: e2fsck/pass2.c:805
msgid "Can not continue."
msgstr "Nemohu pokraÄovat."
@@ -580,19 +579,19 @@ msgstr "Nemohu pokraÄovat."
msgid "inode done bitmap"
msgstr "bitmapa hotových iuzlů"
-#: e2fsck/pass3.c:85
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Maximum paměti"
-#: e2fsck/pass3.c:135
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Průchod 3"
-#: e2fsck/pass3.c:321
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "bitmapa detekce cyklů iuzlů"
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Průchod 4"
@@ -781,21 +780,25 @@ msgstr ""
"VAROVÃNÃ: MOŽNà VÃŽNà ZTRÃTA DAT.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
#: e2fsck/problem.c:122
-#, c-format
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -809,7 +812,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -822,7 +825,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:138
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -833,18 +836,18 @@ msgstr ""
"od velikosti bloku.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "V superbloku blocks_per_group = %b, mělo by být %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "V superbloku first_data_block = %b, mělo by být %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -852,7 +855,7 @@ msgstr ""
"Systém souborů neměl UUID; generuji je.\n"
"\n"
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -871,48 +874,48 @@ msgstr ""
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:169
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "V superbloku nalezeno poškození. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:174
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "Chyba při zjišťování velikosti fyzického zařízení: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "PoÄet iuzlů v superbloku je %i, mÄ›l by být %j.\n"
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "Hurd nepodporuje vlastnost filetype.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "Superblok má neplatný žurnál (iuzel %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "Externí žurnál používá více systémů souborů (nepodporováno).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Nemohu nalézt externí žurnál\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "Externí žurnál má špatný superblok\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "Externí žurnál nepodporuje tento systém souborů\n"
@@ -920,92 +923,104 @@ msgstr "Externí žurnál nepodporuje tento systém souborů\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:213
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"Superblok žurnálu systému souborů je neznámého typu %N (nepodporováno).\n"
-"Je pravděpodobné, že vaše kopie e2fsck je stará a/nebo nepodporuje tento formát žurnálu.\n"
+"Je pravděpodobné, že vaše kopie e2fsck je stará a/nebo nepodporuje tento "
+"formát žurnálu.\n"
"Je také možné, že superblok žurnálu je poškozen.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
msgstr "Superblok žurnálu je poškozen.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr "Příznak superbloku has_journal (má_žurnál) není nastaven, avšak žurnálový %s je přítomen.\n"
+msgstr ""
+"Příznak superbloku has_journal (má_žurnál) není nastaven, avšak žurnálový %s "
+"je přítomen.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
-msgstr "Superblok má nastaven příznak needs_recovery (potřebuje_obnovit), avšak žádný žurnál neexistuje.\n"
+msgstr ""
+"Superblok má nastaven příznak needs_recovery (potřebuje_obnovit), avšak "
+"žádný žurnál neexistuje.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr "Příznak superbloku needs_recovery (potřebuje_obnovit) není nastaven, avšak žurnál obsahuje data.\n"
+msgstr ""
+"Příznak superbloku needs_recovery (potřebuje_obnovit) není nastaven, avšak "
+"žurnál obsahuje data.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Vymazat žurnál"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:246 e2fsck/problem.c:690
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr "Systém souborů má příznak(y) vlastností nastaveny, aÄkoliv se jedná o revizi 0. "
+msgstr ""
+"Systém souborů má příznak(y) vlastností nastaveny, aÄkoliv se jedná o revizi "
+"0. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s osiřelý iuzel %i (uid=%Iu, gid=%Ig, práva=%Im, velikost=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "Neplatný %B (%b) nalezen v osiřelém iuzlu %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "Již vymazaný %B (%b) nalezen v osiřelém iuzlu %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "V superbloku neplatný osiřelý iuzel %i.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "Neplatný iuzel %i v seznamu osiřelých iuzlů.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "Superblok žurnálu má nastaven příznak neznámé vlastnosti „jen pro Ätení“.\n"
+msgstr ""
+"Superblok žurnálu má nastaven příznak neznámé vlastnosti „jen pro Ätení“.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "Superblok žurnálu má nastaven příznak neznámé vlastnosti „nekompatibilní“.\n"
+msgstr ""
+"Superblok žurnálu má nastaven příznak neznámé vlastnosti „nekompatibilní“.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:286
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "Verze žurnálu nepodporována tímto e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1016,7 +1031,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1028,7 +1043,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:301
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1039,18 +1054,20 @@ msgstr ""
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
msgstr "Přesto spustit žurnál"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
-msgstr "Příznak obnovení není nastaven v záložním superbloku, takže přesto spouštím žurnál.\n"
+msgstr ""
+"Příznak obnovení není nastaven v záložním superbloku, takže přesto spouštím "
+"žurnál.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1060,7 +1077,7 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:322
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1069,18 +1086,18 @@ msgstr ""
"ale s_reserved_gdt_blocks je %N, aÄkoliv by mÄ›lo být nula."
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr "Resize_inode není zapnuto, avšak iuzel pro měnění velikosti není nula."
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
-msgstr "Měnění velikosti iuzlu není platné. "
+msgstr "Iuzel na měnění velikosti není platný. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1090,7 +1107,7 @@ msgstr ""
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1099,14 +1116,14 @@ msgstr ""
"\tnyní = %T) leží v budoucnosti.\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr "Nápověda superbloku pro externí superblok by měla být %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
@@ -1114,212 +1131,226 @@ msgstr ""
"Do souborového systému přidávám nápovědu pro dirhash.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:357
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
-msgstr "Kontrolní souÄet deskriptoru skupiny %g je chybný. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
+msgstr "Kontrolní souÄet deskriptoru skupiny %g je %04x, mÄ›l by být %04y. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr "Deskriptor skupiny %g oznaÄen jako neinicializovaný bez sady vlastností.\n"
-
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:367
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr "Bitmapa bloků skupiny %g neinicializována, aÄkoliv bitmapa iuzlů je použita.\n"
+msgstr ""
+"Deskriptor skupiny %g oznaÄen jako neinicializovaný bez sady vlastností.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr "Deskriptor skupiny %g má neplatný poÄet nepoužitých bloků %b. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr "Poslední bitmapa bloků skupiny není inicializována. "
-#: e2fsck/problem.c:382
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr "Transakce žurnálu %i byla poškozena, přehrání bylo zrušeno.\n"
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr "Příznak test_fs je nastaven (a ext4 je dostupný). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:391
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
"Čas posledního připojení superbloku leží v budoucnosti.\n"
-"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové hodiny "
+"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové "
+"hodiny "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:397
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
"Čas posledního zápisu superbloku leží v budoucnosti.\n"
-"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové hodiny. "
+"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové "
+"hodiny. "
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr "Jeden nebo více kontrolních souÄtů deskriptoru skupiny bloků je chybných. "
+msgstr ""
+"Jeden nebo více kontrolních souÄtů deskriptoru skupiny bloků je chybných. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:405
msgid "Setting free @is count to %j (was %i)\n"
msgstr "Nastavuje se poÄet volných iuzlů na %j (byl %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:410
msgid "Setting free @bs count to %c (was %b)\n"
msgstr "Nastavuje se poÄet volných bloků na %c (byl %b)\n"
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-#: e2fsck/problem.c:418
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
-msgstr ""
-"Iuzly kvóty se oznaÄují jako za skryté.\n"
-"\n"
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr "Iuzel kvóty %i (%Q) se oznaÄuje jako skrytý.\n"
#. @-expanded: superblock has invalid MMP block.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:420
msgid "@S has invalid MMP block. "
msgstr "Superblok má špatný blok MMP. "
#. @-expanded: superblock has invalid MMP magic.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:425
msgid "@S has invalid MMP magic. "
msgstr "Superblok má neplatná Äísla MMP. "
-#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr "ext2fs_open2: %m\n"
+
#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr "ext2fs_check_desc: %m\n"
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+"Superblok 64bitových souborových systémů potřebuje rozsahy, aby bylo možné "
+"přistoupit na celý disk. "
+
+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Průchod 1: Kontrolují se iuzly, bloky a velikosti\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:439
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "Kořenový iuzel není adresář. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr "Kořenový iuzel má nastaven dtime (možná kvůli starém mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:449
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "Rezervovaný iuzel %i (%Q) má špatný mód. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "Odstraněný iuzel %i má nulový dtime. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "Iuzel %i se používá, ale má nastaven dtime. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "Iuzel %i je adresář nulové délky. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
-msgstr "Bitmapa bloků skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr ""
+"Bitmapa bloků skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
-msgstr "Bitmapa iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr ""
+"Bitmapa iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
-msgstr "Tabulka iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr ""
+"Tabulka iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr "Bitmapa bloků skupiny %g (%b) je špatná. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr "Bitmapa iuzlů skupiny %g (%b) je špatná. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "V iuzlu %i je i_size %Is, měla by být %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "V iuzlu %i je i_blocks %Ib, mělo by být %N. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
msgstr "Neplatný %B (%b) v iuzlu %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr "%B (%b) se překrývá s metadaty systému souborů v iuzlu %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "Iuzel %i má neplatný blok(y). "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Příliš mnoho neplatných bloků v iuzlu %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
msgstr "Neplatný %B (%b) v iuzlu špatných bloků. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "Iuzel špatných bloků má neplatný blok(y). "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "Používá se duplikátní nebo špatný blok!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr "Špatný blok %b používán jako nepřímý blok špatných bloků. "
@@ -1327,7 +1358,7 @@ msgstr "Špatný blok %b používán jako nepřímý blok špatných bloků. "
#. @-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:544
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1340,7 +1371,7 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:551
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1351,7 +1382,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:556
+#: e2fsck/problem.c:568
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"
@@ -1362,274 +1393,287 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "Primární superblok (%b) je na seznamu špatných bloků.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Blok %b v primárních deskriptorech skupin je na seznamu špatných bloků\n"
+msgstr ""
+"Blok %b v primárních deskriptorech skupin je na seznamu špatných bloků\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:573
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Varování: superblok skupiny %g (%b) je špatný.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr "Varování: Kopie deskriptorů skupin ve skupině %g má špatný blok (%b).\n"
+msgstr ""
+"Varování: Kopie deskriptorů skupin ve skupině %g má špatný blok (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr "Chyba při programování? Blok #%b bezdůvodně použit v process_bad_blocks.\n"
+msgstr ""
+"Chyba při programování? Blok #%b bezdůvodně použit v process_bad_blocks.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:590
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr "Chyba při alokaci %N souvislých bloků ve skupině bloků %g pro %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "Chyba při alokaci vyrovnávací paměti bloků pro přemístění %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Přemísťuji %s skupiny %g z %b do %c…\n"
# FIXME: no-c-format so that I can reorder it properly
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Přemísťuji skupiny %g %s do %c…\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Varování: nemohu naÄíst blok %s %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Varování: nemohu zapsat blok %b pro %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:620 e2fsck/problem.c:1455
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "Chyba při alokaci bitmapy iuzlů (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:625
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "Chyba při alokaci bitmapy bloků (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr "Chyba při alokaci informací odkazů icount: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "Chyba při alokaci pole bloků adresáře: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Chyba při zkoumání iuzlů (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr "Chyba při iteraci přes bloky v iuzlu %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr "Chyba pÅ™i ukládání informace o Äetnosti iuzlu (iuzel=%i, poÄet=%N): %m\n"
+msgstr ""
+"Chyba pÅ™i ukládání informace o Äetnosti iuzlu (iuzel=%i, poÄet=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr "Chyba pÅ™i ukládání informace o bloku adresáře (iuzel=%i, blok=%b, Äís=%N): %m\n"
+msgstr ""
+"Chyba pÅ™i ukládání informace o bloku adresáře (iuzel=%i, blok=%b, Äís=%N): "
+"%m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:661
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Chyba pÅ™i Ätení iuzlu %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "Iuzel %i má nastaven příznak imagic. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Speciální (zařízení/socket/fifo/symbolický odkaz) soubor (iuzel %i) má nastaven\n"
-"příznak immutable nebo append-only. "
+"Speciální soubor (zařízení/socket/fifo/symbolický odkaz, iuzel %i)\n"
+"má nastaven příznak immutable nebo append-only. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:680
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr "Iuzel %i má nastaven příznak komprimace na systému souborů bez podpory komprimace. "
+msgstr ""
+"Iuzel %i má nastaven příznak komprimace na systému souborů bez podpory "
+"komprimace. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr "Speciální (zařízení/socket/fifo) iuzel %i má nenulovou délku. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "Iuzel žurnálu se nepoužívá, ale obsahuje data. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "Žurnál není obyÄejný soubor. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "Iuzel %i byl souÄástí seznamu osiÅ™elých iuzlů. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:711
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "Nalezeny iuzly, které byly souÄástí poÅ¡kozeného spojového seznamu osiÅ™elých. "
+msgstr ""
+"Nalezeny iuzly, které byly souÄástí poÅ¡kozeného spojového seznamu osiÅ™elých. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "Chyba při alokaci struktury refcount (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr "Chyba pÅ™i Ätení bloku rozšířených atributů %b pro iuzel %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "Iuzel %i má špatný blok rozšířených atributů %b. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "Chyba pÅ™i Ätení bloku rozšířených atributů %b (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
msgstr "Blok rozšířených atributů %b má poÄet odkazů %r, mÄ›l by být %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "Chyba při zápisu bloku rozšířených atributů %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr "Blok rozšířených atributů %b má h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "Chyba při alokaci bloku rozšířených atributů %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "Blok rozšířených atributů %b je poškozen (kolize alokace). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "Blok rozšířených atributů %b je poškozen (neplatný název). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "Blok rozšířených atributů %b je poškozen (neplatná hodnota). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "Iuzel %i je příliš velká. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:775
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
msgstr "%B (%b) způsobuje, že adresář je příliš velký. "
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
msgstr "%B (%b) způsobuje, že soubor je příliš velký. "
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
msgstr "%B (%b) způsobuje, že symbolický odkaz je příliš velký. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr "Iuzel %i má nastaven příznak INDEX_FL na systému souborů bez podpory htree.\n"
+msgstr ""
+"Iuzel %i má nastaven příznak INDEX_FL na systému souborů bez podpory htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "Iuzel %i má nastaven příznak INDEX_FL, ale není adresář.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "Iuzel HTREE adresáře %i má neplatný kořenový uzel.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr "Iuzel HTREE adresáře %i má nepodporovanou verzi hashe (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr "Iuzel HTREE adresáře %i používá nekompatibilní příznak kořenového uzlu htree.\n"
+msgstr ""
+"Iuzel HTREE adresáře %i používá nekompatibilní příznak kořenového uzlu "
+"htree.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
-msgstr "Iuzel HTREE adresáře %i má hloubku stromu (%N), která je příliš velká\n"
+msgstr ""
+"Iuzel HTREE adresáře %i má hloubku stromu (%N), která je příliš velká\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
@@ -1638,55 +1682,59 @@ msgstr ""
"souborového systému. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:826
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "(Znovu) vytvoření iuzlu pro změny velikosti selhalo: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "Iuzel %i má velikost navíc (%IS), která není platná\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "Rozšířený atribut v iuzlu %i má délku jména (%N), která není platná\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr "Rozšířený atribut v iuzlu %i má pozici hodnoty (%N), která není platná\n"
+msgstr ""
+"Rozšířený atribut v iuzlu %i má pozici hodnoty (%N), která není platná\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr "Rozšířený atribut v iuzlu %i má blok hodnot (%N), který není platný (musí být 0)\n"
+msgstr ""
+"Rozšířený atribut v iuzlu %i má blok hodnot (%N), který není platný (musí "
+"být 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "Rozšířený atribut v iuzlu %i má velikost hodnoty (%N), která není platná\n"
+msgstr ""
+"Rozšířený atribut v iuzlu %i má velikost hodnoty (%N), která není platná\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "Rozšířený atribut v iuzlu %i má hash (%N), který není platný\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr "Iuzel %i je %It, ale ve skuteÄnosti vypadá na adresář.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr "Chyba pÅ™i proÄítání stromu @x v iuzlu %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1696,7 +1744,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:877
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1706,7 +1754,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
@@ -1715,31 +1763,33 @@ msgstr ""
"\t(logický blok %c, fyzický blok %b, neplatná délka %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr "Iuzel %i má nastaven příznak EXTENTS_FL na systému souborů bez podpory rozsahů.\n"
+msgstr ""
+"Iuzel %i má nastaven příznak EXTENTS_FL na systému souborů bez podpory "
+"rozsahů.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr "Iuzel %i rozsahový formát, ale superbloku chybí vlastnost EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr "Iuzlu %i chybí EXTENT_FL, ale je v rozsahovém formátu\n"
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr "Rychlý symbolický odkaz %i na nastaveno EXTENT_FL. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
@@ -1748,45 +1798,71 @@ msgstr ""
"\t(neplatný logický blok %c, fyzický blok %b, délka %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:911
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr "Iuzel %i má neplatný uzel rozsahů (op %s, blk %b, lblk %c): %m\n"
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:915
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr "Iuzel %i by neměl mít nastaveno EOFBLOCKS_FL (velikost %Is, lblk %r)\n"
-
#. @-expanded: Error converting subcluster block bitmap: %m\n
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
msgstr "Chyba při převodu bitmapy bloků subclusteru: %m\n"
#. @-expanded: quota inode is not regular file.
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
msgid "@q @i is not regular file. "
msgstr "Iuzel kvóty není obyÄejný soubor. "
#. @-expanded: quota inode is not in use, but contains data.
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
msgid "@q @i is not in use, but contains data. "
msgstr "Iuzel kvóty se nepoužívá, ale obsahuje data. "
#. @-expanded: quota inode is visible to the user.
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
msgid "@q @i is visible to the user. "
msgstr "Iuzel kvóty je pro uživatele viditelný. "
#. @-expanded: The bad block inode looks invalid.
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
msgid "The bad @b @i looks @n. "
msgstr "Iuzel špatných bloků se zdá být neplatný. "
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"Iuzel %i má rozsah o nulové délce\n"
+"\t(neplatný logický blok %c, fyzický blok %b)\n"
+
+# ??? WTF
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+"Úroveň vnitřních rozsahový uzlů %N iuzlu %i:\n"
+"Logický zaÄátek %b neodpovídá logickému zaÄátku %c na další úrovni. "
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"Iuzel %i, konec rozsahu pÅ™ekraÄuje povolenou hodnotu\n"
+"\t(logický blok %c, fyzický blok %b, délka %N)\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:948
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1798,46 +1874,47 @@ msgstr ""
"Průchod 1B: Znovu vyšetřuji více krát alokované bloky\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:954
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "Více krát alokovaný(é) blok(y) v iuzlu %i:"
-#: e2fsck/problem.c:969
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Chyba při zkoumání iuzlů (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "Chyba při alokaci bitmapy iuzlů (inode_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr "Chyba při iteraci přes bloky v iuzlu %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:984 e2fsck/problem.c:1299
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr "Chyba pÅ™i úpravÄ› poÄtu odkazů bloku rozšířených atributů %b (iuzel %i): %m\n"
+msgstr ""
+"Chyba pÅ™i úpravÄ› poÄtu odkazů bloku rozšířených atributů %b (iuzel %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:989
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr "Průchod 1C: Hledání iuzlů s duplikovanými bloky v adresářích.\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Průchod 1D: Opravuji duplikátní bloky\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
@@ -1846,18 +1923,18 @@ msgstr ""
" má %r duplikovaný(ch) blok(ů) sdílený(ch) mezi %N soubory/souborem:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:1006
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr " %Q (iuzel %i, Äas zmÄ›ny %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<metadata systému souborů>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1867,7 +1944,7 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
@@ -1875,317 +1952,321 @@ msgstr ""
"Duplikátní bloky již přiřazeny nebo naklonovány.\n"
"\n"
-#: e2fsck/problem.c:1034
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "Nemohu klonovat soubor: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Průchod 2: Kontroluje se strukturu adresářů\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr "Å patné Äíslo iuzlu pro „.“ v iuzlu adresáře %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "Položka „%Dn“ v %p (%i) má Å¡patné Äíslo iuzlu: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr "Položka „%Dn“ v %p (%i) má odstraněný/nepoužívaný iuzel %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "Položka „%Dn“ v %p (%i) je odkaz na „.“ "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr "Položka „%Dn“ v %p (%i) ukazuje na iuzel (%Di) umístěný ve špatném bloku.\n"
+msgstr ""
+"Položka „%Dn“ v %p (%i) ukazuje na iuzel (%Di) umístěný ve špatném bloku.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "Položka „%Dn“ v %p (%i) je odkaz na adresář %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "Položka „%Dn“ v %p (%i) je odkaz na kořenový iuzel.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "Položka „%Dn“ v %p (%i) má ve svém jméně neplatné znaky.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "Chybí „.“ v iuzlu adresáře %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "Chybí „..“ v iuzlu adresáře %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr "První položka „%Dn“ (iuzel=%Di) v iuzlu adresáře %i (%p) by měla být „.“\n"
+msgstr ""
+"První položka „%Dn“ (iuzel=%Di) v iuzlu adresáře %i (%p) by měla být „.“\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "Druhá položka „%Dn“ (iuzel=%Di) v iuzlu adresáře %i by měla být „..“\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr "i_faddr pro iuzel %i (%Q) je %IF, měla by být nula.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "i_file_acl pro iuzel %i (%Q) je %If, mělo by být nula.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "i_dir_acl pro iuzel %i (%Q) je %N, mělo by být nula.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr "i_frag pro iuzel %i (%Q) je %N, mělo by být nula.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "i_fsize pro iuzel %i (%Q) je %N, měla by být nula.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "Iuzel %i (%Q) má špatný mód (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "Iuzel adresáře %i, %B, posun %N: adresář poškozen\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "Iuzel adresáře %i, blok %B, pozice %N: název souboru příliš dlouhý\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "Iuzel adresáře %i má nealokovaný %B. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "Položka adresáře „.“ v iuzlu adresáře %i není ukonÄena NULL\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "Položka adresáře „..“ v iuzlu adresáře %i není ukonÄena NULL\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "Iuzel %i (%q) je neplatné znakové zařízení.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "Iuzel %i (%Q) je neplatné blokové zařízení.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "Položka „%Dn“ v %p (%i) je duplikátní položka „.“.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "Položka „%Dn“ v %p (%i) je duplikátní položka „..“.\n"
-#: e2fsck/problem.c:1180 e2fsck/problem.c:1480
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "Interní chyba: nemohu najít dir_info pro %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "Položka „%Dn“ v %p (%i) má rec_len %Dr, měla by být %N.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "Chyba při alokaci struktury icount: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Chyba při iterování přes bloky adresáře: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Chyba pÅ™i Ätení bloku adresáře %b (iuzel %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Chyba při zápisu bloku adresáře %b (iuzel %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "Chyba při alokaci nového bloku adresáře pro iuzel %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Chyba při dealokaci iuzlu %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "Položka adresáře pro „.“ v %p (%i) je velká.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "Iuzel %i (%Q) je neplatná FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "Iuzel %i (%Q) je neplatný socket.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "Nastavuje se filetype pro položku „%Dn“ v %p (%i) na %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "Položka „%Dn“ v %p (%i) má chybný filetype (byl %Dt, měl by být %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "Položka „%Dn“ v %p (%i) má nastaven filetype.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "Položka „%Dn“ v %p (%i) má název nulové délky.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "Symbolický odkaz %Q (iuzel #%i) není platný.\n"
# FIXME: @F already ends with 'is'
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "Blok rozšířených atributů pro iuzel %i (%Q) není platný (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr "Systém souborů obsahuje velké soubory, ale v superbloku nemá příznak LARGE_FILE.\n"
+msgstr ""
+"Systém souborů obsahuje velké soubory, ale v superbloku nemá příznak "
+"LARGE_FILE.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
msgstr "Problém v iuzlu HTREE adresáře %d: na %B neexistuje odkaz\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
msgstr "Problém v iuzlu HTREE adresáře %d: na %B vedou dva odkazy\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
msgstr "Problém v iuzlu HTREE adresáře %d: %B má špatný min hash\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
msgstr "Problém v iuzlu HTREE adresáře %d: %B má špatný max hash\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "Neplatný iuzel HTREE adresáře %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "Problém v iuzlu HTREE adresáře %d (%q): Å¡patné Äíslo bloku %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1304
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "Problém v iuzlu HTREE adresáře %d: kořenový uzel není platný\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr "Problém v iuzlu HTREE adresáře %d: %B má špatný limit (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr "Problém v iuzlu HTREE adresáře %d: %B má Å¡patný poÄet (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr "Problém v iuzlu HTREE adresáře %d: %B má nesetříděnou hash tabulku\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "Problém v iuzlu HTREE adresáře %d: %B má špatnou hloubku (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "Nalezena duplikátní položka „%Dn“ v %p (%i). "
# FIXME: no-c-format
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2197,7 +2278,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2208,116 +2289,121 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "i_blocks_hi pro iuzel %i (%Q) je %N, měl by být nula.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "NeoÄekávaný blok v iuzlu HTREE adresáře %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr "Položka „%Di“ v %p (%i) odkazuje na iuzel %Di ve skupině %g, kde je nastaveno _INODE_UNINIT.\n"
+msgstr ""
+"Položka „%Di“ v %p (%i) odkazuje na iuzel %Di ve skupině %g, kde je "
+"nastaveno _INODE_UNINIT.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "Položka „%Dn“ v %p (%i) odkazuje na iuzel %Di nalezený ve skupině %g oblasti nepoužitých iuzlů.\n"
+msgstr ""
+"Položka „%Dn“ v %p (%i) odkazuje na iuzel %Di nalezený ve skupině %g oblasti "
+"nepoužitých iuzlů.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr "i_file_acl_hi pro iuzel %i (%Q) je %N, mělo by být nula.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Průchod 3: Kontroluje se dosažitelnost adresářů\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "Kořenový iuzel nealokován. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "Není místo v adresáři lost+found. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "Nepřipojený adresářový iuzel %i (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/lost+found nenalezeno. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "„..“ v %Q (%i) je %P (%j), mělo by být %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "Špatné nebo neexistující /lost+found. Nemohu znovu připojit.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "Nemohu zvětšit /lost+found: %m\n"
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "Nemohu znovu připojit %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "Chyba při pokusu najít /lost+found: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_block: %m při pokusu vytvořit adresář /lost+found\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_inode: %m při pokusu vytvořit adresář /lost+found\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr "ext2fs_new_dir_block: %m při pokusu vytváření nového adresáře /lost+found\n"
+msgstr ""
+"ext2fs_new_dir_block: %m při pokusu vytváření nového adresáře /lost+found\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr "ext2fs_write_dir_block: %m při zápisu bloku adresáře pro /lost+found\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Chyba pÅ™i úpravÄ› Äetnosti iuzlu v iuzlu %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2328,7 +2414,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2338,75 +2424,75 @@ msgstr ""
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1460
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Chyba při vytváření kořenového adresáře (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Chyba při vytváření adresáře /lost+found (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "KoÅ™enový iuzel není adresář; konÄím.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "Nemohu pokraÄovat bez koÅ™enového iuzlu.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1485
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/lost+found není adresář (ino=%i)\n"
-#: e2fsck/problem.c:1492
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Průchod 3A: Optimalizuji adresáře\n"
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Nemohu vytvořit iterátor dirs_to_hash: %m\n"
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Nemohu optimalizovat adresář %q (%d): %m\n"
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Optimalizuji adresáře: "
-#: e2fsck/problem.c:1524
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Průchod 4: Kontrolují se poÄty odkazů\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "Osiřelý iuzel %i s nulovou délkou. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "Osiřelý iuzel %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "PoÄet odkazů na iuzel %i je %Il, mÄ›l by být %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:1543
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2418,140 +2504,152 @@ msgstr ""
"inode_link_info[%i] je %N, inode.i_links_count je %Il. Měly by být stejné!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1553
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Průchod 5: Kontrolují se souhrnné informace skupin\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "Výplň na konci bitmapy iuzlů není nastavena. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "Výplň na konci bitmapy bloků není nastavena. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "Rozdíly v bitmapě bloků: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1588
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "Rozdíly v bitmapě iuzlů: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1608
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr "PoÄet volných iuzlů ve skupinÄ› Ä. %g Å¡patnÄ› (%i, spoÄteno=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr "PoÄet adresářů ve skupinÄ› Ä. %g Å¡patnÄ› (%i, spoÄteno=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "PoÄet volných iuzlů Å¡patnÄ› (%i, spoÄteno=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr "PoÄet volných bloků ve skupinÄ› Ä. %g Å¡patnÄ› (%b, spoÄteno=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "PoÄet volných bloků Å¡patnÄ› (%b, spoÄteno=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1633
-msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
-msgstr "CHYBA PŘI PROGRAMOVÃNÃ: hranice (%b, %c) bitmapy systému souborů (#%N) neodpovídají vypoÄteným hranicím bitmapy (%i, %j)\n"
+#: e2fsck/problem.c:1659
+msgid ""
+"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
+"endpoints (%i, %j)\n"
+msgstr ""
+"CHYBA PŘI PROGRAMOVÃNÃ: hranice (%b, %c) bitmapy systému souborů (#%N) "
+"neodpovídají vypoÄteným hranicím bitmapy (%i, %j)\n"
-#: e2fsck/problem.c:1639
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr "Interní chyba: pokažený konec bitmapy (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Chyba při kopírování do náhradní bitmapy iuzlů: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr "Chyba při kopírování do náhradní bitmapy bloků: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1674
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr "Blok(y) skupiny %g je/jsou používán(y), ale skupina je oznaÄena jako BLOCK_UNINIT\n"
+msgstr ""
+"Blok(y) skupiny %g je/jsou používán(y), ale skupina je oznaÄena jako "
+"BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr "Iuzel/iuzly skupiny %g je/jsou používán(y), ale skupina je oznaÄena jako INODE_UNINIT\n"
+msgstr ""
+"Iuzel/iuzly skupiny %g je/jsou používán(y), ale skupina je oznaÄena jako "
+"INODE_UNINIT\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1686
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
msgstr "Znovu vytvořit žurnál"
-#: e2fsck/problem.c:1805
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr "Aktualizovat údaje o kvótách pro druh kvót %N"
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Neobsloužený kód chyby (0x%x)!\n"
-#: e2fsck/problem.c:1905
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "IGNOROVÃNO"
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Použitá paměť: %d, strávený Äas: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "velikost iuzlu=%d\n"
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "při spouštění prohlídky iuzlů"
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "při provádění prohlídky iuzlů"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "při volání ext2fs_block_iterate pro iuzel %d"
-#: e2fsck/super.c:210
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "při volání ext2fs_adjust_ea_refcount2 pro iuzel %d"
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Usekávám"
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Mažu"
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2564,15 +2662,15 @@ msgstr ""
"\t\t[-l|-L soubor_špatných_bloků] [-C fd] [-j externí_žurnál]\n"
"\t\t[-E rozšířené-pÅ™epínaÄe] zařízení\n"
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
@@ -2580,11 +2678,12 @@ msgstr ""
" -p Automatická oprava (žádné otázky)\n"
" -n Neprovádět žádné změny systému souborů\n"
" -y Předpokládat „ano“ u všech otázek\n"
-" -c Hledat špatné bloky a přidat je do seznamu špatných bloků\n"
-" -f Vynutit kontrolu, i když je systém souborů oznaÄen Äistý\n"
+" -c Hledat špatné bloky a přidat je do seznamu špatných "
+"bloků\n"
+" -f Vynutit kontrolu, i když je systém souborů oznaÄen "
+"Äistý\n"
-#: e2fsck/unix.c:89
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2595,153 +2694,152 @@ msgid ""
msgstr ""
" -v Být podrobný\n"
" -b superblok Použít alternativní superblok\n"
-" -B velikost_bloku Vnutit velikost bloku při hledání superbloku\n"
+" -B velikost_bloku Vnutit velikost bloku při hledání superbloku\n"
" -j externí_žurnál Nastavit umístění externího žurnálu\n"
" -l soubor_špatných_bloků\n"
" Přidat do seznamu špatných bloků\n"
" -L soubor_špatných_bloků\n"
" Nastavit seznam špatných bloků\n"
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %'u/%'u souborů (%0d,%d %% nesouvislých), %'llu/%'llu bloků\n"
-#: e2fsck/unix.c:139
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u použitý iuzel (%2.2f %%)\n"
+"%12u použitý iuzel (%2.2f %% z %u)\n"
msgstr[1] ""
"\n"
-"%8u použité iuzly (%2.2f %%)\n"
+"%12u použité iuzly (%2.2f %% z %u)\n"
msgstr[2] ""
"\n"
-"%8u použitých iuzlů (%2.2f %%)\n"
+"%12u použitých iuzlů (%2.2f %% z %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u nesouvislý soubor (%0d,%d %%)\n"
-msgstr[1] "%8u nesouvislé soubory (%0d,%d %%)\n"
-msgstr[2] "%8u nesouvislých souborů (%0d,%d %%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u nesouvislý soubor (%0d,%d %%)\n"
+msgstr[1] "%12u nesouvislé soubory (%0d,%d %%)\n"
+msgstr[2] "%12u nesouvislých souborů (%0d,%d %%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u nesouvislý adresář (%0d,%d %%)\n"
-msgstr[1] "%8u nesouvislé adresáře (%0d,%d %%)\n"
-msgstr[2] "%8u nesouvislých adresářů (%0d,%d %%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u nesouvislý adresář (%0d,%d %%)\n"
+msgstr[1] "%12u nesouvislé adresáře (%0d,%d %%)\n"
+msgstr[2] "%12u nesouvislých adresářů (%0d,%d %%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " PoÄet iuzlů s ind/dind/tind bloky: %'u/%'u/%'u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " PoÄet iuzlů s ind/dind/tind bloky: %'u/%'u/%'u\n"
-#: e2fsck/unix.c:158
-#, c-format
-msgid " Extent depth histogram: "
-msgstr " Histogram hloubky rozsahu: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogram hloubky rozsahu: "
-#: e2fsck/unix.c:167
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu použitý blok (%2.2f %%)\n"
-msgstr[1] "%8llu použité bloky (%2.2f %%)\n"
-msgstr[2] "%8llu použitých bloků (%2.2f %%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu použitý blok (%2.2f %% z %llu)\n"
+msgstr[1] "%12llu použité bloky (%2.2f %% z %llu)\n"
+msgstr[2] "%12llu použitých bloků (%2.2f %% z %llu)\n"
-#: e2fsck/unix.c:170
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u chybný blok\n"
-msgstr[1] "%8u chybné bloky\n"
-msgstr[2] "%8u chybných bloků\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u chybný blok\n"
+msgstr[1] "%12u chybné bloky\n"
+msgstr[2] "%12u chybných bloků\n"
-#: e2fsck/unix.c:172
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u velký soubor\n"
-msgstr[1] "%8u velké soubory\n"
-msgstr[2] "%8u velkých souborů\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u velký soubor\n"
+msgstr[1] "%12u velké soubory\n"
+msgstr[2] "%12u velkých souborů\n"
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u obyÄejný soubor\n"
+"%12u obyÄejný soubor\n"
msgstr[1] ""
"\n"
-"%8u obyÄejné soubory\n"
+"%12u obyÄejné soubory\n"
msgstr[2] ""
"\n"
-"%8u obyÄejných souborů\n"
+"%12u obyÄejných souborů\n"
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u adresář\n"
-msgstr[1] "%8u adresáře\n"
-msgstr[2] "%8u adresářů\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u adresář\n"
+msgstr[1] "%12u adresáře\n"
+msgstr[2] "%12u adresářů\n"
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u znakové zařízení\n"
-msgstr[1] "%8u znaková zařízení\n"
-msgstr[2] "%8u znakových zařízení\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u znakové zařízení\n"
+msgstr[1] "%12u znaková zařízení\n"
+msgstr[2] "%12u znakových zařízení\n"
-#: e2fsck/unix.c:181
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u blokové zařízení\n"
-msgstr[1] "%8u bloková zařízení\n"
-msgstr[2] "%8u blokových zařízení\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u blokové zařízení\n"
+msgstr[1] "%12u bloková zařízení\n"
+msgstr[2] "%12u blokových zařízení\n"
-#: e2fsck/unix.c:183
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u roura\n"
-msgstr[1] "%8u roury\n"
-msgstr[2] "%8u rour\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u roura\n"
+msgstr[1] "%12u roury\n"
+msgstr[2] "%12u rour\n"
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u odkaz\n"
-msgstr[1] "%8u odkazy\n"
-msgstr[2] "%8u odkazů\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u odkaz\n"
+msgstr[1] "%12u odkazy\n"
+msgstr[2] "%12u odkazů\n"
-#: e2fsck/unix.c:188
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolický odkaz"
-msgstr[1] "%8u symbolické odkazy"
-msgstr[2] "%8u symbolických odkazů"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolický odkaz"
+msgstr[1] "%12u symbolické odkazy"
+msgstr[2] "%12u symbolických odkazů"
-#: e2fsck/unix.c:190
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
@@ -2749,39 +2847,39 @@ msgstr[0] "(%u rychlý symbolický odkaz)\n"
msgstr[1] "(%u rychlé symbolické odkazy)\n"
msgstr[2] "(%u rychlých symbolických odkazů)\n"
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u socket\n"
-msgstr[1] "%8u sockety\n"
-msgstr[2] "%8u socketů\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
+msgstr[1] "%12u sockety\n"
+msgstr[2] "%12u socketů\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u soubor\n"
-msgstr[1] "%8u soubory\n"
-msgstr[2] "%8u souborů\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u soubor\n"
+msgstr[1] "%12u soubory\n"
+msgstr[2] "%12u souborů\n"
-#: e2fsck/unix.c:209 misc/badblocks.c:984 misc/tune2fs.c:1978 misc/util.c:147
-#: resize/main.c:251
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "při zjišťování, jestli je %s připojen."
-#: e2fsck/unix.c:227
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
-msgstr "Varování! %s je připojen.\n"
+msgid "Warning! %s is %s.\n"
+msgstr "Pozor! %s je %s.\n"
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s je připojen. "
+msgid "%s is %s.\n"
+msgstr "%s je %s.\n"
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2789,8 +2887,7 @@ msgstr ""
"Nemohu pokraÄovat, konÄím.\n"
"\n"
-#: e2fsck/unix.c:235
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2804,79 +2901,77 @@ msgstr ""
"***ZPÅ®SOBÃTE VÃŽNÉ*** poÅ¡kození systému souborů.\n"
"\n"
-#: e2fsck/unix.c:239
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Chcete opravdu pokraÄovat"
-#: e2fsck/unix.c:241
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "kontrola přerušena.\n"
-#: e2fsck/unix.c:323
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " obsahuje systém souborů s chybami"
-#: e2fsck/unix.c:325
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " nebyl ÄistÄ› odpojen"
-#: e2fsck/unix.c:327
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr " vlastnosti primárního superbloku se liší od záložního"
-#: e2fsck/unix.c:331
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " byl připojen %ukrát bez kontroly"
-#: e2fsck/unix.c:338
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
msgstr " má Äas poslední kontroly systému souborů v budoucnosti"
-#: e2fsck/unix.c:344
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " nebyl kontrolován %u dní"
-#: e2fsck/unix.c:353
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", kontrola vynucena.\n"
-#: e2fsck/unix.c:386
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: Äistý, %'u/%'u souborů, %'llu/%'llu bloků"
-#: e2fsck/unix.c:404
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (kontrola odložena, běžím na baterii)"
-#: e2fsck/unix.c:407
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (kontrola po příštím připojení)"
-#: e2fsck/unix.c:409
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (kontrola za %ld připojení)"
-#: e2fsck/unix.c:559
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "CHYBA: Nemohu otevřít /dev/null (%s)\n"
-#: e2fsck/unix.c:628
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Neplatná verze EA.\n"
-#: e2fsck/unix.c:649
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Neznámý rozšířený pÅ™epínaÄ: %s\n"
-#: e2fsck/unix.c:674
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2885,48 +2980,47 @@ msgstr ""
"Syntaktická chyba v konfiguraÄním souboru e2fsck (%s, řádek Ä. %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:743
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Chyba při ověřování platnosti deskriptoru souboru %d: %s\n"
-#: e2fsck/unix.c:747
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr "Neplatný deskriptor souborů informace o dokonÄení"
-#: e2fsck/unix.c:762
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Může být zadán jen jeden z pÅ™epínaÄů -p/-a, -n nebo -y."
-#: e2fsck/unix.c:783
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "PÅ™epínaÄ -t není v této verzi e2fsck podporován.\n"
-#: e2fsck/unix.c:814 e2fsck/unix.c:886 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Nelze vyřešit „%s“"
-#: e2fsck/unix.c:865
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
msgstr "PÅ™epínaÄe -n a -D se vzájemnÄ› vyluÄují."
-#: e2fsck/unix.c:870
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
msgstr "PÅ™epínaÄe -n a -c se vzájemnÄ› vyluÄují."
-#: e2fsck/unix.c:875
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
msgstr "PÅ™epínaÄe -n a -l/-L se vzájemnÄ› vyluÄují."
-#: e2fsck/unix.c:915
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "PÅ™epínaÄe -c a -l/-L nemohou být použity zároveň.\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
@@ -2935,7 +3029,7 @@ msgstr ""
"E2FSCK_JBD_DEBUG „%s“ není celým Äíslem\n"
"\n"
-#: e2fsck/unix.c:972
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2946,56 +3040,69 @@ msgstr ""
"Neplatný neÄíselný argument u -%c („%s“)\n"
"\n"
-#: e2fsck/unix.c:1074 e2fsck/unix.c:1079
+#: e2fsck/unix.c:1129
+#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+"Interval MMP je %u sekund a celková doba Äekání je %u sekund. Prosím "
+"o strpení…\n"
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
msgstr "při kontrole bloku MMP"
-#: e2fsck/unix.c:1081 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Jste-li si jisti, že souborový systém není používán na žádném uzlu, spusťte:\n"
+"Jste-li si jisti, že souborový systém není používán na žádném uzlu, "
+"spusťte:\n"
"„tune2fs -f -E clear_mmp ZAŘÃZENÓ\n"
-#: e2fsck/unix.c:1130
-#, c-format
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Chyba: stará verze knihovny ext2fs!\n"
-#: e2fsck/unix.c:1138
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "při pokusu inicializovat program"
-#: e2fsck/unix.c:1149
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tPoužívám %s, %s\n"
-#: e2fsck/unix.c:1161
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "pro interaktivní opravy potřebuji terminál"
-#: e2fsck/unix.c:1200
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s zkouším záložní bloky…\n"
-#: e2fsck/unix.c:1202
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Neplatný superblok,"
-#: e2fsck/unix.c:1203
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Deskriptory skupin vypadají špatně…"
-#: e2fsck/unix.c:1215
+#: e2fsck/unix.c:1312
+#, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s při použití záložních bloků"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: návrat k původnímu superbloku\n"
-#: e2fsck/unix.c:1242
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -3005,33 +3112,28 @@ msgstr ""
"(Nebo je superblok systému souborů poškozen)\n"
"\n"
-#: e2fsck/unix.c:1248
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "Mohl by toto být oddíl nulové délky?\n"
-#: e2fsck/unix.c:1250
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Musíte mít přístup %s k systému souborů nebo být root\n"
-#: e2fsck/unix.c:1255
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "Pravděpodobně neexistující nebo odkládací zařízení?\n"
-#: e2fsck/unix.c:1257
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr "Systém souborů pÅ™ipojen nebo otevÅ™en výluÄnÄ› jiným programem?\n"
-#: e2fsck/unix.c:1260
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr "Pravděpodobně neexistující zařízení?\n"
-#: e2fsck/unix.c:1263
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -3039,83 +3141,71 @@ msgstr ""
"Disk chránÄ›n proti zápisu; použijte pÅ™epínaÄ -n pro provedení\n"
"kontroly zařízení jen pro Ätení.\n"
-#: e2fsck/unix.c:1327
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Sežeňte novější verzi e2fsck!"
-#: e2fsck/unix.c:1373
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "při kontrole žurnálu ext3 pro %s"
-#: e2fsck/unix.c:1384
-#, c-format
-msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+#: e2fsck/unix.c:1489
+msgid ""
+"Warning: skipping journal recovery because doing a read-only filesystem "
+"check.\n"
msgstr ""
"Varování: přeskakuji obnovu žurnálu, protože provádím kontrolu systému\n"
"souborů jen pro Ätení.\n"
-#: e2fsck/unix.c:1397
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "nemohu nastavit příznaky superbloku na %s\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "při obnově žurnálu ext3 %s"
-#: e2fsck/unix.c:1428
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s má nepodporovanou vlastnost(i):"
-#: e2fsck/unix.c:1444
-msgid "Warning: compression support is experimental.\n"
-msgstr "Varování: podpora komprese je experimentální.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s: pozor: podpora komprese je experimentální.\n"
-#: e2fsck/unix.c:1449
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"E2fsck nepřeložen s podporou HTREE,\n"
+"%s: E2fsck nepřeložen s podporou HTREE,\n"
"\tale systém souborů %s má adresáře HTREE.\n"
-#: e2fsck/unix.c:1502
-msgid "while reading bad blocks inode"
-msgstr "pÅ™i Ätení iuzlu Å¡patných bloků"
-
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1605
#, c-format
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s: %s pÅ™i Ätení iuzlu Å¡patných bloků\n"
+
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Toto nevypadá dobÅ™e, ale zkusíme pokraÄovat…\n"
-#: e2fsck/unix.c:1543
-msgid "Couldn't determine journal size"
-msgstr "Velikost žurnálu nelze urÄit"
-
-#: e2fsck/unix.c:1546
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Vytváří se žurnál (%d bloků): "
-#: e2fsck/unix.c:1553 misc/mke2fs.c:2535
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tpři pokusu vytvořit žurnál"
-
-#: e2fsck/unix.c:1556
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " Hotovo.\n"
-#: e2fsck/unix.c:1557
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
@@ -3123,25 +3213,24 @@ msgstr ""
"\n"
"*** žurnál by znovu vytvořen – souborový systém se opět stal ext3 ***\n"
-#: e2fsck/unix.c:1569
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "SpouÅ¡tím e2fsck od zaÄátku…\n"
-#: e2fsck/unix.c:1573
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "při nulování kontextu"
-#: e2fsck/unix.c:1580
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck přerušen.\n"
-#: e2fsck/unix.c:1585
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "přerušen"
-#: e2fsck/unix.c:1597 e2fsck/util.c:66
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -3150,12 +3239,12 @@ msgstr ""
"\n"
"%s: ***** SYSTÉM SOUBORŮ BYL ZMĚNĚN *****\n"
-#: e2fsck/unix.c:1600
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** ZNOVU ZAVEÄŽTE LINUX *****\n"
-#: e2fsck/unix.c:1608 e2fsck/util.c:72
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -3166,43 +3255,43 @@ msgstr ""
"%s: ********** VAROVÃNÃ: Systém souborů má stále chyby **********\n"
"\n"
-#: e2fsck/unix.c:1648
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr "pÅ™i nastavování informace o kontrolním souÄtu skupiny bloků"
-#: e2fsck/util.c:160 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "aA"
-#: e2fsck/util.c:161
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:175
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<a>"
-#: e2fsck/util.c:177
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:179
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (a/n)"
-#: e2fsck/util.c:194
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "přerušeno!\n"
-#: e2fsck/util.c:209
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "ano\n"
-#: e2fsck/util.c:211
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "ne\n"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3211,7 +3300,7 @@ msgstr ""
"%s? ne\n"
"\n"
-#: e2fsck/util.c:225
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3220,38 +3309,38 @@ msgstr ""
"%s? ano\n"
"\n"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "yes"
msgstr "ano"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "no"
msgstr "ne"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps: neplatný blok(y) bitmapy pro %s"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "Ätení bitmap iuzlů a bloků"
-#: e2fsck/util.c:253
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "pÅ™i opakovaném pokusu naÄíst bitmapy pro %s"
-#: e2fsck/util.c:265
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "zápisu bitmap bloků a iuzlů"
-#: e2fsck/util.c:270
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr "při přepisu bitmap bloků a iuzlů pro %s"
-#: e2fsck/util.c:282
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3264,53 +3353,57 @@ msgstr ""
"%s: NEOÄŒEKÃVANà NEKONZISTENCE; SPUSŤTE fsck RUÄŒNÄš.\n"
"\t(tj. bez pÅ™epínaÄů -a nebo -p)\n"
-#: e2fsck/util.c:363
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Použitá paměť: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:367
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr "Použitá paměť: %lu, "
-#: e2fsck/util.c:374
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "Äas: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:379
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "strávený Äas: %6.3f\n"
-#: e2fsck/util.c:413 e2fsck/util.c:427
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr "pÅ™i Ätení iuzlu %lu v %s"
-#: e2fsck/util.c:441 e2fsck/util.c:454
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr "při zápisu iuzlu %lu v %s"
-#: e2fsck/util.c:603
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "Při alokaci nulovací vyrovnávací paměti"
-#: e2fsck/util.c:755
-msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
-msgstr "NEČEKANà NEKONZISTENCE: souborový systém je měněn, zatímco fsck běží.\n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+"NEČEKANà NEKONZISTENCE: souborový systém je měněn, zatímco fsck běží.\n"
#: misc/badblocks.c:69
msgid "done \n"
msgstr "hotovo \n"
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
@@ -3320,7 +3413,7 @@ msgstr ""
" [-t zkušební_vzorek [-t zkušební_vzorek […]]]\n"
" zařízení [poslední_blok [první_blok]]\n"
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
@@ -3329,80 +3422,80 @@ msgstr ""
"%s: PÅ™epínaÄe „-n“ a „-w“ se vzájemnÄ› vyluÄují.\n"
"\n"
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr "%6.2f %% hotovo, %s uplynulo. (%d/%d/%d chyb)"
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Zkouším s náhodným vzorkem: "
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Zkouším se vzorkem 0x"
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "při posunu"
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Divná hodnota (%ld) v do_read\n"
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "při ext2fs_sync_device"
-#: misc/badblocks.c:489 misc/badblocks.c:750
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "pÅ™i zaÄátku iterace v seznamu Å¡patných bloků"
-#: misc/badblocks.c:503 misc/badblocks.c:603 misc/badblocks.c:760
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "při alokaci vyrovnávacích paměti"
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Ověřují se bloky %lu až %lu\n"
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Hledají se Å¡patné bloky v režimu jen pro Ätení\n"
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Hledají se Å¡patné bloky (test jen pro Ätení): "
-#: misc/badblocks.c:529 misc/badblocks.c:635 misc/badblocks.c:677
-#: misc/badblocks.c:823
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr "Příliš mnoho špatných bloků, přerušuji test\n"
-#: misc/badblocks.c:610
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Hledají se Å¡patné bloky v režimu Ätení i zápis\n"
-#: misc/badblocks.c:612 misc/badblocks.c:773
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Od bloku %lu do %lu\n"
-#: misc/badblocks.c:667
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Čtení a porovnání: "
-#: misc/badblocks.c:772
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr "Hledají se Å¡patné bloky v nedestruktivním režimu Ätení i zápis\n"
-#: misc/badblocks.c:778
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr "Hledají se Å¡patné bloky (nedestruktivní test Ätení i zápisu)\n"
-#: misc/badblocks.c:785
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3410,52 +3503,52 @@ msgstr ""
"\n"
"Zachyceno přerušení, uklízí se\n"
-#: misc/badblocks.c:868
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "při testovacím zápisu dat, blok %lu"
-#: misc/badblocks.c:989 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s je připojen; "
-#: misc/badblocks.c:991
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "badblocks přesto vynucen. Doufám, že /etc/mtab je nesprávný.\n"
-#: misc/badblocks.c:996
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "není bezpeÄné spouÅ¡tÄ›t badblocks!\n"
-#: misc/badblocks.c:1001 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s je zjevně systémem právě používán; "
-#: misc/badblocks.c:1004
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "badblocks přesto vynucen.\n"
-#: misc/badblocks.c:1024
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "neplatný %s – %s"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "Nemohu alokovat paměť pro zkušební_vzorek – %s"
-#: misc/badblocks.c:1164
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr "V režimu pouhého Ätení lze zadat nejvýše jeden zkuÅ¡ební_vzorek"
-#: misc/badblocks.c:1170
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "V režimu pouhého Ätení není náhodný zkuÅ¡ební_vzorek přípustný"
-#: misc/badblocks.c:1184
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
@@ -3463,42 +3556,51 @@ msgstr ""
"Nemohu zjistit velikost zařízení; musíte velikost\n"
"zadat ruÄnÄ›\n"
-#: misc/badblocks.c:1190
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "při pokusu zjistit velikost zařízení"
-#: misc/badblocks.c:1195
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "poslední blok"
-#: misc/badblocks.c:1201
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "první blok"
-#: misc/badblocks.c:1204
+#: misc/badblocks.c:1209
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
-msgstr "Å¡patný poÄáteÄní blok (%lu): musí být menší než %lu"
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "Å¡patný poÄáteÄní blok (%llu): musí být menší než %llu"
-#: misc/badblocks.c:1260
+#: misc/badblocks.c:1216
+#, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "špatný koncový blok (%llu): musí se jednat o 32bitovou hodnotu"
+
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "při vytváření seznam špatných bloků v paměti"
-#: misc/badblocks.c:1275
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr "vstupní soubor – chybný formát"
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "při přidávání do seznamu špatných bloků v paměti"
-#: misc/badblocks.c:1299
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Průchod dokonÄen, nalezeno %u Å¡patných bloků (%d/%d/%d chyb).\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Použití: %s [-RVf] [-+=AacDdeijsSu] [-v verze] soubory…\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Použití: %s [-RVf] [-+=AaCcDdeijsSu] [-v verze] soubory…\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "špatná verze – %s\n"
@@ -3513,88 +3615,90 @@ msgstr "při pokusu stat %s"
msgid "while reading flags on %s"
msgstr "pÅ™i Ätení příznaků %s"
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr "Odstranění příznaku rozsahu není na %s podporováno"
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "Příznaky %s nastaveny na "
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "při nastavování příznaků %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Verze %s nastavena na %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "při nastavování verze %s"
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Nemohu alokovat proměnou path v chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= je nesluÄitelné s - a +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Musíte použít '-v', =, - nebo +\n"
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr "Použití: %s [-bfhixV] [-o superblock=N] [-o blocksize=N] zařízení\n"
# Unit name after numeric value
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
msgstr "bloků"
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
msgstr "clusterů"
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Skupina %lu: (Bloky "
-#: misc/dumpe2fs.c:194
+#: misc/dumpe2fs.c:205
+#, c-format
+msgid " Checksum 0x%04x"
+msgstr " Kontrolní souÄet 0x%04x"
+
+#: misc/dumpe2fs.c:207
#, c-format
-msgid " Checksum 0x%04x, unused inodes %u\n"
-msgstr " Kontrolní souÄet 0x%04x, nepoužitých iuzlů %u\n"
+msgid " (EXPECTED 0x%04x)"
+msgstr " (OÄŒEKÃVÃNO 0x%04x)"
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:208
+#, c-format
+msgid ", unused inodes %u\n"
+msgstr ", nepoužitých iuzlů %u\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s superblok v "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Primární"
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Záložní"
-#: misc/dumpe2fs.c:204
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Deskriptory skupin v "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3602,20 +3706,19 @@ msgstr ""
"\n"
" Rezervované GDT bloky na "
-#: misc/dumpe2fs.c:215
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Deskriptor skupiny v "
-#: misc/dumpe2fs.c:221
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Bitmapa bloků v "
-#: misc/dumpe2fs.c:225
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", Bitmapa iuzlů v "
-#: misc/dumpe2fs.c:229
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3624,7 +3727,7 @@ msgstr ""
" Tabulka iuzlů v "
# The second string is i18ned `blocks' or `clusters'
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
@@ -3633,50 +3736,53 @@ msgstr ""
"\n"
" %u volných %s, %u volných iuzlů, %u adresářů%s"
-#: misc/dumpe2fs.c:242
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u nepoužitých iuzlů\n"
-#: misc/dumpe2fs.c:245
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Volné bloky: "
-#: misc/dumpe2fs.c:256
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Volné iuzly: "
-#: misc/dumpe2fs.c:287
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "při tisku seznamu špatných bloků"
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Špatné bloky: %u"
-#: misc/dumpe2fs.c:320 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "pÅ™i Ätení iuzlu žurnálu"
-#: misc/dumpe2fs.c:326
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr "při otevírání iuzlu žurnálu"
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr "pÅ™i Ätení superbloku žurnálu"
-#: misc/dumpe2fs.c:342
-#, c-format
+#: misc/dumpe2fs.c:364
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Magické Äíslo superbloku žurnálu je Å¡patnÄ›!\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr "Vlastnosti žurnálu: "
-#: misc/dumpe2fs.c:355
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Velikost žurnálu: "
-#: misc/dumpe2fs.c:366
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
@@ -3687,15 +3793,20 @@ msgstr ""
"Sekvence žurnálu: 0x%08x\n"
"ZaÄátek žurnálu: %u\n"
-#: misc/dumpe2fs.c:385 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr "Chybové Äíslo žurnálu: %d\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "pÅ™i Ätení superbloku žurnálu"
-#: misc/dumpe2fs.c:393
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Nemohu najít magická Äísla superbloku žurnálu"
-#: misc/dumpe2fs.c:397
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3714,27 +3825,26 @@ msgstr ""
"ZaÄátek žurnálu: %u\n"
"PoÄet uživatelů žurnálu: %u\n"
-#: misc/dumpe2fs.c:410
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Uživatelé žurnálu: %s\n"
-#: misc/dumpe2fs.c:426 misc/mke2fs.c:663 misc/tune2fs.c:1137
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Nemohu alokovat paměť pro zpracování pÅ™epínaÄů!\n"
-#: misc/dumpe2fs.c:452
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Neplatný parametr superblok: %s\n"
-#: misc/dumpe2fs.c:467
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Neplatný parametr blocksize (velikost_bloku): %s\n"
-#: misc/dumpe2fs.c:478
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3757,18 +3867,17 @@ msgstr ""
"\tsuperblock=<Äíslo superbloku>\n"
"\tblocksize=<velikost bloku>\n"
-#: misc/dumpe2fs.c:538 misc/mke2fs.c:1521
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tPoužívám %s\n"
-#: misc/dumpe2fs.c:574 misc/e2image.c:1290 misc/tune2fs.c:1923
-#: resize/main.c:310
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Nemohu najít platný superblok systému souborů.\n"
-#: misc/dumpe2fs.c:599
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3777,41 +3886,259 @@ msgstr ""
"\n"
"%s: %s: chyba pÅ™i Ätení bitmap: %s\n"
-#: misc/e2image.c:87
+#: misc/e2image.c:101
+#, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
+msgstr "Použití: %s [-r|Q] [-fr] zařízení soubor_s_obrazem\n"
+
+#: misc/e2image.c:103
+#, c-format
+msgid " %s -I device image-file\n"
+msgstr " %s -I zařízení soubor_s_obrazem\n"
+
+#: misc/e2image.c:104
+#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+" %s -ra [-cfnp] [-o pozice_zdroje] [ -O pozice_cíle]\n"
+" zdrojový_souborový_systém [cílový_souborový_systém]\n"
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+msgid "while allocating buffer"
+msgstr "při alokaci vyrovnávací paměti"
+
+#: misc/e2image.c:174
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Použití: %s [-rSIQ] ZAŘÃZENà SOUBOR_S_OBRAZEM\n"
+msgid "Writing block %llu\n"
+msgstr "Zapisuje se blok %llu\n"
-#: misc/e2image.c:135
+#: misc/e2image.c:188
#, c-format
+msgid "error writing block %llu"
+msgstr "chyba při zápisu bloku %llu"
+
+#: misc/e2image.c:191
+#, fuzzy
+msgid "error in generic_write()"
+msgstr "chyba ve funkci write()"
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
msgstr "Chyba: hlaviÄka je vÄ›tší než wrt_size\n"
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
msgstr "Nemohu alokovat vyrovnávací paměť hlaviÄky\n"
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "při zápisu superbloku"
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "při zápisu tabulky iuzlů"
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "při zápisu bitmapy bloků"
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "při zápisu bitmapy iuzlů"
-#: misc/e2image.c:1322
+#: misc/e2image.c:502
+#, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Poškozený blok adresáře %llu: chybný rec_len (%d)\n"
+
+#: misc/e2image.c:514
+#, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Poškozený blok adresáře %llu: chybný name_len (%d)\n"
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%llu/%llu bloků (%d %%)"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr "Kopíruje se "
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+"Zastavení na tomto místÄ› zniÄí souborový systém. Jste-li si jisti,\n"
+"vyvolejte přerušení znovu\n"
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr " %s zbývá při %.2f MB/s"
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, c-format
+msgid "error reading block %llu"
+msgstr "chyba pÅ™i Ätení bloku %llu"
+
+#: misc/e2image.c:715
+#, fuzzy, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr "%llu/%llu bloků (%d %%)"
+
+#: misc/e2image.c:719
+#, fuzzy, c-format
+msgid "at %.2f MB/s"
+msgstr " %s zbývá při %.2f MB/s"
+
+#: misc/e2image.c:755
+msgid "while allocating l1 table"
+msgstr "při alokaci tabulky l1"
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr "při alokaci vyrovnávacích paměti druhé úrovně"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+"Pozor: V okamžiku vkládání vyrovnávací paměti stále jsou ve vyrovnávací "
+"paměti tabulky, což vede ke ztrátě dat a obraz možná bude poškozený.\n"
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr "při alokaci ext2_qcow2_image"
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr "při inicializaci ext2_qcow2_image"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr "Chyba v programu: vytvoÅ™eny násobné bloky posloupných poÄtů odkazů!\n"
+
+#: misc/e2image.c:1269
+msgid "while allocating block bitmap"
+msgstr "při alokaci bitmapy bloků"
+
+#: misc/e2image.c:1278
+msgid "while allocating scramble block bitmap"
+msgstr "při alokaci bitmapy zatemňovacích bloků"
+
+#: misc/e2image.c:1285
+msgid "Scanning inodes...\n"
+msgstr "Hledají se iuzly…\n"
+
+#: misc/e2image.c:1297
+msgid "Can't allocate block buffer"
+msgstr "Nelze alokovat vyrovnávací paměť bloku"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, c-format
+msgid "while iterating over inode %u"
+msgstr "při procházení iuzlu %u"
+
+#: misc/e2image.c:1381
+#, fuzzy
+msgid "Raw and qcow2 images cannot be installed"
+msgstr "ObyÄejné a QCOW2 obrazy nelze nainstalovat"
+
+#: misc/e2image.c:1403
+msgid "error reading bitmaps"
+msgstr "chyba pÅ™i Ätení bitmap"
+
+#: misc/e2image.c:1415
+msgid "while opening device file"
+msgstr "při otevírání souboru zařízení"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "při zápisu tabulky iuzlů"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr "PÅ™epínaÄ -a lze použít jen s s obyÄejnými nebo QCOW2 obrazy."
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr "Pozice jsou dovoleny jen u obyÄejných obrazů."
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr "Režim pÅ™esunu je dovolen jen u obyÄejných obrazů."
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr "Režim přesunu vyžaduje režim všech dat."
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr "kontrola na připojení"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+"\n"
+"Použití e2image na souborový systém připojený pro zápis může vést\n"
+"k nekonzistentnímu obrazu, který se nehodí na ladění.\n"
+"Pokud tak opravdu chcete, použijte pÅ™epínaÄ -f.\n"
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr "QCOW2 obraz nelze zapsat na standardní výstup!\n"
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr "Obraz (%s) je komprimován.\n"
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr "Obraz (%s) je zašifrován\n"
+
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
msgstr "při pokusu převést obraz qcow2 (%s) do binární obrazu (%s)"
+#: misc/e2image.c:1639
+msgid "The -c option only supported in raw mode\n"
+msgstr "PÅ™epínaÄ -c je podporován jen v obyÄejném režimu\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "PÅ™epínaÄ -c není pÅ™i zápisu na standardní výstup podporován\n"
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr "při alokaci check_buf"
+
+#: misc/e2image.c:1657
+msgid "The -p option only supported in raw mode\n"
+msgstr "PÅ™epínaÄ -p je podporován jen v obyÄejném režimu\n"
+
+#: misc/e2image.c:1667
+#, fuzzy, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr "%d bloků již obsahuje data, která se měla zkopírovat.\n"
+
#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
@@ -3832,7 +4159,7 @@ msgstr "e2label: chyba pÅ™i Ätení superbloku\n"
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: není systém souborů ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2073
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Varování: jmenovka příliš dlouhá, zkracuji.\n"
@@ -3847,7 +4174,7 @@ msgstr "e2label: nemohu se zase posunout na superblok\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: chyba při zápisu superbloku\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Použití: e2label zařízení [novájmenovka]\n"
@@ -3904,17 +4231,17 @@ msgstr "Přehraná transakce o velikosti %zd na pozici %llu\n"
msgid "Failed write %s\n"
msgstr "Selhal zápis %s\n"
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "VAROVÃNÃ: nemohu otevřít %s: %s\n"
-#: misc/fsck.c:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "VAROVÃNÃ: Å¡patný formát na řádku %d %s\n"
-#: misc/fsck.c:371
+#: misc/fsck.c:370
msgid ""
"WARNING: Your /etc/fstab does not contain the fsck passno\n"
"\tfield. I will kludge around things for you, but you\n"
@@ -3926,37 +4253,37 @@ msgstr ""
"\topravit, jak nejdříve budete moci.\n"
"\n"
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: nenalezen\n"
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: wait: Žádný další synovský proces?!?\n"
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Varování… %s pro zařízení %s skonÄil se signálem %d.\n"
-#: misc/fsck.c:623
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: stav je %x, nemělo by se nikdy stát.\n"
-#: misc/fsck.c:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "DokonÄen s %s (stav ukonÄení %d)\n"
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: Chyba %d při spouštění fsck.%s pro %s\n"
-#: misc/fsck.c:743
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3964,41 +4291,46 @@ msgstr ""
"BuÄ vÅ¡echny nebo žádný typ systému souborů pÅ™edaný -t musí mít pÅ™edponu\n"
"„no“ nebo „!“.\n"
-#: misc/fsck.c:762
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "Nemohu alokovat paměť pro typy systému souborů\n"
-#: misc/fsck.c:885
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
msgstr ""
"%s: přeskakuji chybný řádek v /etc/fstab: připojení typu bind s nenulovým\n"
"pořadím průchodu skrze fsck\n"
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: nemohu zkontrolovat %s: fsck.%s nenalezen\n"
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Kontrolují se všechny systémy souborů.\n"
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--Äekám-- (průchod %d)\n"
-#: misc/fsck.c:1079
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr "Použití: fsck [-AMNPRTV] [-C [fd]] [-t typss] [pÅ™epínaÄe-ss] [systémsouborů…]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr ""
+"Použití: fsck [-AMNPRTV] [-C [fd]] [-t typss] [pÅ™epínaÄe-ss] "
+"[systémsouborů…]\n"
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: příliš mnoho zařízení\n"
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: příliš mnoho argumentů\n"
@@ -4018,16 +4350,17 @@ msgstr "PÅ™i Ätení příznaků %s"
msgid "While reading version on %s"
msgstr "PÅ™i Ätení verze %s"
-#: misc/mke2fs.c:116
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
"Použití: %s [-c|-l názevsouboru] [-b velikost-bloku] [-C velkost-clusteru]\n"
"\t[-i bajtů-na-iuzel] [-I velikost-iuzlu] [-J pÅ™epínaÄe-žurnálu]\n"
@@ -4035,38 +4368,38 @@ msgstr ""
"\t[-m procenta-rezervovaných-bloků] [-o os-autora]\n"
"\t[-g bloků-ve-skupině] [-L jmenovka-svazku]\n"
"\t[-M adresář-posledního-připojení] [-O vlastnost[,…]] [-r revize-ss]\n"
-"\t[-E rozšířený-pÅ™epínaÄ[,…]] [-T druh-ss] [-U UUID] [-jnqvFKSV]\n"
-"\tzařízení [poÄet-bloků]\n"
+"\t[-E rozšířený-pÅ™epínaÄ[,…]] [-t druh-ss] [-T způsob-použití] [-U UUID]\n"
+"\t[-jnqvDFKSV] zařízení [poÄet-bloků]\n"
-#: misc/mke2fs.c:218
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Spouštím příkaz: %s\n"
-#: misc/mke2fs.c:222
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "při pokusu spustit „%s“"
-#: misc/mke2fs.c:229
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "při zpracovávání seznamu špatných bloků z programu"
-#: misc/mke2fs.c:256
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Blok %d v oblasti primárního superbloku/deskriptorů skupin špatný.\n"
-#: misc/mke2fs.c:258
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr "Bloky %u až %u musí být pro vytvoření systému souborů v pořádku.\n"
-#: misc/mke2fs.c:261
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "KonÄím…\n"
-#: misc/mke2fs.c:281
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -4077,15 +4410,15 @@ msgstr ""
"\tšpatné bloky.\n"
"\n"
-#: misc/mke2fs.c:300
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "pÅ™i oznaÄování Å¡patných bloků jako použité"
-#: misc/mke2fs.c:317
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Zapisuji tabulky iuzlů: "
-#: misc/mke2fs.c:338
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
@@ -4094,73 +4427,77 @@ msgstr ""
"\n"
"Nemohu zapsat %d bloků do tabulky iuzlů poÄínaje %llu: %s\n"
-#: misc/mke2fs.c:352 misc/mke2fs.c:2170 misc/mke2fs.c:2422
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
msgstr "hotovo \n"
-#: misc/mke2fs.c:363
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "při vytváření kořenového adresáře"
-#: misc/mke2fs.c:370
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "pÅ™i Ätení koÅ™enového iuzlu"
-#: misc/mke2fs.c:384
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "při nastavování vlastnictví kořenového iuzlu"
-#: misc/mke2fs.c:402
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "při vytváření /lost+found"
-#: misc/mke2fs.c:409
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "při vyhledávání /lost+found"
-#: misc/mke2fs.c:422
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "při zvětšování /lost+found"
-#: misc/mke2fs.c:437
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "při nastavování iuzlu špatných bloků"
-#: misc/mke2fs.c:464
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Nedostatek paměti při mazání sektorů %d-%d\n"
-#: misc/mke2fs.c:474
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Varování: nemohu naÄíst blok 0: %s\n"
-#: misc/mke2fs.c:490
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Varování: nemohu vymazat sektor %d: %s\n"
-#: misc/mke2fs.c:506
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "při inicializaci superbloku žurnálu"
-#: misc/mke2fs.c:514
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Nuluji zařízení žurnálu: "
-#: misc/mke2fs.c:526
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "pÅ™i nulování zařízení žurnálu (blok %llu, poÄet %d)"
-#: misc/mke2fs.c:544
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "při zápisu superbloku žurnálu"
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr "Velikost systému souborů %s se mění na %'llu (%dk) bloků.\n"
+
# TODO pluralize
-#: misc/mke2fs.c:559
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
@@ -4169,123 +4506,160 @@ msgstr ""
"pozor: nepoužito %'llu bloků.\n"
"\n"
-#: misc/mke2fs.c:564
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Jmenovka systému souborů=%s\n"
-#: misc/mke2fs.c:567
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr "Typ OS: %s\n"
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Velikost bloku=%u (log=%u)\n"
-#: misc/mke2fs.c:573
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Velikost clusteru=%u (log=%u)\n"
-#: misc/mke2fs.c:577
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Velikost fragmentu=%u (log=%u)\n"
-#: misc/mke2fs.c:579
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Krok=%u bloků, Šířka pásu=%u bloků\n"
-#: misc/mke2fs.c:581
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u iuzlů, %llu bloků\n"
-#: misc/mke2fs.c:583
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu bloků (%2.2f %%) rezervováno pro superuživatele\n"
-#: misc/mke2fs.c:586
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "První blok dat=%u\n"
-#: misc/mke2fs.c:588
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr "Vlastník kořenového adresáře=%u:%u\n"
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximum bloků v systému souborů=%'lu\n"
-#: misc/mke2fs.c:592
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u skupin bloků\n"
-#: misc/mke2fs.c:594
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u skupina bloků\n"
-#: misc/mke2fs.c:597
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u bloků ve skupině, %u clusterů ve skupině\n"
-#: misc/mke2fs.c:600
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u bloků ve skupině, %u fragmentů ve skupině\n"
-#: misc/mke2fs.c:602
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u iuzlů ve skupině\n"
-#: misc/mke2fs.c:609
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Jmenovka systému souborů=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Zálohy superbloku uloženy v blocích: "
-#: misc/mke2fs.c:688 misc/tune2fs.c:1165
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr "%s vyžaduje „-O 64bit“\n"
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr "„%s“ musí být před „resize=%u“\n"
+
+#: misc/mke2fs.c:783
+#, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "Chybná desc_size: „%s“\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "Chybná nová velikost: %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "Neplatný interval_aktualizace_mmp: %s\n"
-#: misc/mke2fs.c:702
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Neplatný parametr superblok: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Neplatný parametr kroku (stride): %s\n"
-#: misc/mke2fs.c:717
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Neplatný parametr šířka-pásu (stripe-width): %s\n"
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Neplatný parametr změny velikosti: %s\n"
-#: misc/mke2fs.c:747
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr "Maximum změny velkosti musí být větší než velikost systému souborů.\n"
-#: misc/mke2fs.c:771
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr "Revize 0 souborového systému nepodporuje změnu velikosti za běhu\n"
-#: misc/mke2fs.c:809
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Neplatný vlastník kořenu: „%s“\n"
+
+#: misc/mke2fs.c:976
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Neplatný parametr druhu kvót: %s\n"
-#: misc/mke2fs.c:820
-#, c-format
+#: misc/mke2fs.c:987
+#, fuzzy, c-format
msgid ""
"\n"
"Bad option(s) specified: %s\n"
@@ -4294,11 +4668,17 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -4317,13 +4697,15 @@ msgstr ""
"\tresize=<maximální velikost změny velikosti v blocích>\n"
"\tlazy_itable_init=<líná inicializace itabulky: 0 zakázáno, 1 povoleno>\n"
"\tlazy_journal_init=<líná inicializace žurnálu: 0 zakázáno, 1 povoleno>\n"
+"\troot_uid=<UID kořenového adresáře>\n"
+"\troot_gid=<GID kořenového adresáře>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
"\tquotatype=<druh kvót: usr (uživatelé), nebo grp (skupiny)>\n"
"\n"
-#: misc/mke2fs.c:840
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4334,7 +4716,7 @@ msgstr ""
"Varování: šířka pruhu RAIDu %u není sudý násobek kroku (stride) %u.\n"
"\n"
-#: misc/mke2fs.c:879
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4343,17 +4725,17 @@ msgstr ""
"Chyba syntaxe v konfiguraÄním souboru mke2fs (%s, řádek Ä. %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:892 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Neplatný sada pÅ™epínaÄů systému souborů: %s\n"
-#: misc/mke2fs.c:904 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Nastaven neplatný pÅ™epínaÄ pÅ™ipojení: %s\n"
-#: misc/mke2fs.c:1042
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
@@ -4362,8 +4744,7 @@ msgstr ""
"\n"
"Váš soubor mke2fs.conf nedefinuje druh souborového systému %s.\n"
-#: misc/mke2fs.c:1046
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
@@ -4371,12 +4752,11 @@ msgstr ""
"Pravděpodobně potřebujete nainstalovat aktualizovaný soubor mke2fs.conf.\n"
"\n"
-#: misc/mke2fs.c:1050
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr "Přerušuje se…\n"
-#: misc/mke2fs.c:1090
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4387,118 +4767,125 @@ msgstr ""
"Pozor: fs_type (druh SS) %s není v mke2fs.conf definován\n"
"\n"
-#: misc/mke2fs.c:1248
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Nemohu alokovat paměť pro novou proměnnou PATH.\n"
-#: misc/mke2fs.c:1289
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Profil nebylo možné správně inicializovat (chyba: %ld).\n"
-#: misc/mke2fs.c:1329
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "špatná velikost bloku – %s"
-#: misc/mke2fs.c:1333
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Varování: velikost bloku %d není na většině systémů použitelná.\n"
-#: misc/mke2fs.c:1349
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
msgstr "špatná velikost clusteru – %s"
-#: misc/mke2fs.c:1358
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr "PÅ™epínaÄ â€ž-R“ je zastaralý, použijte místo nÄ›j „-E“"
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Neplatný poÄet bloků ve skupinÄ›"
-#: misc/mke2fs.c:1363
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "bloky ve skupině musí být násobek 8"
-#: misc/mke2fs.c:1371
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Neplatné Äíslo pro velikost flex_bg"
-#: misc/mke2fs.c:1377
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "Velikost flex_bg musí být mocninou 2"
-#: misc/mke2fs.c:1387
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "špatný podíl iuzlů %s (min %d/max %d)"
-#: misc/mke2fs.c:1397
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
-msgstr "Pozor: PÅ™epínaÄ -K je zastaralý a nemÄ›l by se již používat. Místo nÄ›j použijte rozšířený pÅ™epínaÄ â€ž-E nodiscard“!\n"
+msgid "invalid inode size - %s"
+msgstr "špatná velikost iuzlu – %s"
-#: misc/mke2fs.c:1411
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+"Pozor: PÅ™epínaÄ -K je zastaralý a nemÄ›l by se již používat. Místo nÄ›j "
+"použijte rozšířený pÅ™epínaÄ â€ž-E nodiscard“!\n"
+
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "v malloc pro bad_blocks_filename"
-#: misc/mke2fs.c:1421
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "špatné procento rezervovaných bloků – %s"
-#: misc/mke2fs.c:1439
-#, c-format
-msgid "bad revision level - %s"
-msgstr "Å¡patné Äíslo revize – %s"
-
-#: misc/mke2fs.c:1451
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "špatná velikost iuzlu – %s"
-
-#: misc/mke2fs.c:1471
+#: misc/mke2fs.c:1642
#, c-format
msgid "bad num inodes - %s"
msgstr "chybný poÄet iuzlů – %s"
-#: misc/mke2fs.c:1488
+#: misc/mke2fs.c:1659
+#, c-format
+msgid "bad revision level - %s"
+msgstr "Å¡patné Äíslo revize – %s"
+
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
msgstr "PÅ™epínaÄ -t lze použít jen jednou"
-#: misc/mke2fs.c:1496
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
msgstr "PÅ™epínaÄ -T lze použít jen jednou"
-#: misc/mke2fs.c:1546 misc/mke2fs.c:2490
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "při pokusu otevřít zařízení žurnálu %s\n"
-#: misc/mke2fs.c:1552
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
-msgstr "Velikost bloku zařízení žurnálu (%d) menší než minimální velikost bloku %d\n"
+msgstr ""
+"Velikost bloku zařízení žurnálu (%d) menší než minimální velikost bloku %d\n"
-#: misc/mke2fs.c:1558
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Použiji velikost bloku žurnálovacího zařízení: %d\n"
-#: misc/mke2fs.c:1569
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "špatné bloky „%s“ na zařízení „%s“"
-#: misc/mke2fs.c:1579
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "systém souborů"
-#: misc/mke2fs.c:1592 resize/main.c:379
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "při pokusu zjistit velikost systému souborů"
-#: misc/mke2fs.c:1598
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4506,7 +4893,7 @@ msgstr ""
"Nemohu zjistit velikost zařízení; musíte zadat\n"
"velikost systému souborů\n"
-#: misc/mke2fs.c:1605
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4518,16 +4905,34 @@ msgstr ""
" oddíl se používá. Možná budete muset pro opÄ›tovné naÄtení\n"
" své tabulky oddílů znovu zavést systém.\n"
-#: misc/mke2fs.c:1622
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr "Systém souborů větší než velikost zařízení."
-#: misc/mke2fs.c:1642
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "Seznam druhů souborových systému se nezdařilo rozebrat\n"
-#: misc/mke2fs.c:1696
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "při pokusu zjistit velikost hardwarového sektoru"
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr "pÅ™i pokusu urÄit velikost fyzického sektoru"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr "při nastavování velikosti bloku; pro zařízení příliš malá hodnota\n"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+"Pozor: zadaná velikost bloku %d je menší než velikost fyzického sektoru %d\n"
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
@@ -4536,111 +4941,128 @@ msgstr ""
"%s: Velikost zařízení (0x%llx bloků) %s je příliš velká, aby byla\n"
"vyjádřena v 32 bitech za použití bloku o velikosti %d.\n"
-#: misc/mke2fs.c:1712
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
msgstr "fs_types (druhy SS) pro řešení v mke2fs.conf: "
-#: misc/mke2fs.c:1719
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr "Vlastnosti systému souborů nejsou v revizi 0 podporovány\n"
-#: misc/mke2fs.c:1726
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr "Řídké superbloky systému souborů nejsou v revizi 0 podporovány\n"
-#: misc/mke2fs.c:1738
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr "Revize 0 systému souborů žurnály nepodporuje\n"
-#: misc/mke2fs.c:1752
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "špatné procento rezervovaných bloků – %lf"
-#: misc/mke2fs.c:1768
-#, c-format
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-"Vlastnosti resize_inode a meta_bg nejsou sluÄitelné.\n"
-"ObÄ› nemohou být zapnuty souÄasnÄ›.\n"
+"Rozsahy MUSà být u 64bitových souborových systémů zapnuty. Toho docílíte\n"
+"zadáním „-O extents“.\n"
-#: misc/mke2fs.c:1785
-msgid "while trying to determine hardware sector size"
-msgstr "při pokusu zjistit velikost hardwarového sektoru"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr "Velikost clusteru nemusí být menší než velikost bloku.\n"
-#: misc/mke2fs.c:1791
-msgid "while trying to determine physical sector size"
-msgstr "pÅ™i pokusu urÄit velikost fyzického sektoru"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr "definice velikosti clusteru vyžaduje vlastnost bigalloc"
-#: misc/mke2fs.c:1824
-msgid "while setting blocksize; too small for device\n"
-msgstr "při nastavování velikosti bloku; pro zařízení příliš malá hodnota\n"
-
-#: misc/mke2fs.c:1829
-#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr "Pozor: zadaná velikost bloku %d je menší než velikost fyzického sektoru %d\n"
-
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "varování: Není možné zjistit geometrii %s\n"
-#: misc/mke2fs.c:1863
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Zarovnání %s představuje posun o %'lu bajtů.\n"
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2072
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr "Toto může vést k velmi Å¡patnému výkonu, doporuÄuje se (nové) vytvoÅ™ení oddílů.\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+"Toto může vést k velmi Å¡patnému výkonu, doporuÄuje se (nové) vytvoÅ™ení "
+"oddílů.\n"
-#: misc/mke2fs.c:1876
+#: misc/mke2fs.c:2093
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "%d-bajtové bloky příliš velké pro systém (max %d)"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:2097
#, c-format
-msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr "Varování: %d-bajtové bloky příliÅ¡ velké pro systém (max %d), donucen pokraÄovat\n"
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Varování: %d-bajtové bloky příliš velké pro systém (max %d), donucen "
+"pokraÄovat\n"
+
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr "Vlastnost bigalloc nelze bez vlastnosti rozsahů zapnout"
-#: misc/mke2fs.c:1915
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"Vlastnosti resize_inode a meta_bg nejsou sluÄitelné.\n"
+"ObÄ› nemohou být zapnuty souÄasnÄ›.\n"
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+"\n"
+"Pozor: vlastnost bigalloc je stále ve vývoji.\n"
+"Podrobnosti naleznete na <https://ext4.wiki.kernel.org/index.php/Bigalloc>.\n"
+"\n"
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"bloky vyhrazené pro změnu velikosti za běhu nejsou podporovány na neřídkém\n"
"\tsystému souborů"
-#: misc/mke2fs.c:1924
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "poÄet bloků ve skupinÄ› mimo rozsah"
-#: misc/mke2fs.c:1939
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr "Vlastnost flex_bg není povolena, takže její velikost nemůže být zadána"
-#: misc/mke2fs.c:1951
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "špatná velikost iuzlu %d (min %d/max %d)"
-#: misc/mke2fs.c:1969
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "příliš mnoho iuzlů (%'llu), zvýšit poměr iuzlů?"
-#: misc/mke2fs.c:1976
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "příliš mnoho iuzlů (%'llu), zadejte < 2^32 iuzlů"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
@@ -4651,7 +5073,7 @@ msgstr ""
"\tsystém souborů s %'llu bloky, zadejte vyšší poměr_iuzlu (-i)\n"
"\tnebo snižte poÄet iuzlů (-N).\n"
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4661,43 +5083,43 @@ msgstr ""
"PÅ™episuji existující systém souborů, toto může být odÄinÄ›no příkazem:\n"
" e2undo %s %s\n"
-#: misc/mke2fs.c:2123
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
msgstr "při pokusu nastavit soubor pro odvolání změn\n"
-#: misc/mke2fs.c:2149
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
msgstr "Zahazují se bloky zařízení: "
# Continuation of "Calling BLKDISCARD from %llu to %llu "
-#: misc/mke2fs.c:2165
+#: misc/mke2fs.c:2439
msgid "failed - "
msgstr "selhalo – "
-#: misc/mke2fs.c:2270
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "při nastavování superbloku"
-#: misc/mke2fs.c:2279
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr "Skartování (discard) uspělo a bude vráceno 0s – vynechá se výmaz tabulky iuzlů\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+"Skartování (discard) uspělo a bude vráceno 0s – vynechá se výmaz tabulky "
+"iuzlů\n"
-#: misc/mke2fs.c:2362
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "neznámý os – %s"
-#: misc/mke2fs.c:2414
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr "Alokují se tabulky skupin: "
-#: misc/mke2fs.c:2418
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "při pokusu alokovat tabulky systému souborů"
-#: misc/mke2fs.c:2427
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
@@ -4705,25 +5127,25 @@ msgstr ""
"\n"
"\tpři převodu bitmapy subclusterů"
-#: misc/mke2fs.c:2459
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "při nulování bloku %llu na konci systému souborů"
-#: misc/mke2fs.c:2472
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "při rezervaci bloků pro změnu velikosti za běhu"
-#: misc/mke2fs.c:2483 misc/tune2fs.c:640
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "žurnál"
-#: misc/mke2fs.c:2495
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Přidávám žurnál k zařízení %s: "
-#: misc/mke2fs.c:2502
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4732,23 +5154,28 @@ msgstr ""
"\n"
"\tpři pokusu přidat žurnál k zařízení %s"
-#: misc/mke2fs.c:2507 misc/mke2fs.c:2539 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "hotovo\n"
-#: misc/mke2fs.c:2516
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr "V režimu jen-superdata bude vynechána tvorba žurnálu\n"
-#: misc/mke2fs.c:2527
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Vytváří se žurnál (%'u bloků): "
-#: misc/mke2fs.c:2546 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tpři pokusu vytvořit žurnál"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
@@ -4757,18 +5184,18 @@ msgstr ""
"Chyba při zapínání ochrany proti násobnému připojení."
# TODO: Pluralize
-#: misc/mke2fs.c:2551
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr "Ochrana proti násobnému pÅ™ipojení je zapnuta s aktualizaÄním intervalem %d sekund.\n"
+msgstr ""
+"Ochrana proti násobnému pÅ™ipojení je zapnuta s aktualizaÄním intervalem %d "
+"sekund.\n"
-#: misc/mke2fs.c:2564
-#, c-format
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Zapisuji superbloky a úÄtovací informace systému souborů: "
-#: misc/mke2fs.c:2571
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4776,8 +5203,7 @@ msgstr ""
"\n"
"Varování, měl jsem problémy při zápisu superbloků."
-#: misc/mke2fs.c:2573
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4786,7 +5212,6 @@ msgstr ""
"\n"
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
msgstr "Použití: mklost+found\n"
@@ -4825,18 +5250,20 @@ msgstr "Nelze získat velikost %s: %s"
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s: h=%3d s=%3d c=%4d zaÄátek=%8d velikost=%8lu konec=%8d\n"
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Spusťte prosím na tomto systému souborů e2fsck.\n"
-#: misc/tune2fs.c:116
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
@@ -4846,27 +5273,28 @@ msgstr ""
"\t[-p interval_aktualizace_mmp] [-r poÄet_rezervovaných_bloků]\n"
"\t[-u uživatel] [-C poÄet_pÅ™ipojení] [-L jmenovka_svazku]\n"
"\t[-M poslední_adresář_připojení] [-O [^]vlastnost[,…]]\n"
+"\t[-Q pÅ™epínaÄe_kvót]\n"
"\t[-E rozšířený-pÅ™epínaÄ[,…]] [-T Äas_poslední_kontroly] [-U UUID]\n"
"\t[-I nová_velikost_iuzlu] zařízení\n"
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "při pokusu otevřít externí žurnál"
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s není zařízení žurnálu.\n"
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Superblok žurnálu nenalezen!\n"
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr "UUID systému souborů nenalezeno na zařízení žurnálu.\n"
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
@@ -4874,38 +5302,37 @@ msgstr ""
"Zařízení žurnálu nelze nalézt. Odstraněno NEBYLO.\n"
"ChybÄ›jící zařízení žurnálu lze odebrat pÅ™epínaÄem -f.\n"
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Žurnál odstraněn\n"
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "pÅ™i Ätení bitmap"
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "pÅ™i ÄiÅ¡tÄ›ní iuzlu žurnálu"
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "při zápisu iuzlu žurnálu"
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
msgstr "(a po té rebootujte!)\n"
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr "Odstranění vlastnosti systému souborů „%s“ není podporováno.\n"
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr "Nastavená vlastnosti systému souborů „%s“ není podporováno.\n"
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4913,7 +5340,7 @@ msgstr ""
"Příznak has_journal může být vymazán jen, když je systém souborů\n"
"odpojen nebo pÅ™ipojen jen pro Ätení.\n"
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4921,7 +5348,17 @@ msgstr ""
"Příznak needs_recovery je nastaven. Před vymazáním příznaku has_journal\n"
"prosím spusťte e2fsck.\n"
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Na souborových systémech se zapnutou vlastností flex_bg není změna "
+"velikosti\n"
+"iuzlu podporována.\n"
+
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
@@ -4930,12 +5367,14 @@ msgstr ""
"Ochranu před násobným připojením nelze nastavit,\n"
"pokud je systém souborů pÅ™ipojen nebo je-li jen pro Ätení.\n"
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr "Ochrana před násobným připojením byla zapnuta s intervalem aktualizace %d s.\n"
+msgstr ""
+"Ochrana před násobným připojením byla zapnuta s intervalem aktualizace "
+"%d s.\n"
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
@@ -4943,20 +5382,21 @@ msgstr ""
"Ochranu před násobným přijením nelze vypnout,\n"
"je-li souborový systém jen pro Ätení.\n"
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
msgstr "Chyba pÅ™i Ätení bitmap\n"
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr "Magické Äíslo v bloku MMP se neshoduje. OÄekáváno: %x, skuteÄnost: %x\n"
+msgstr ""
+"Magické Äíslo v bloku MMP se neshoduje. OÄekáváno: %x, skuteÄnost: %x\n"
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
msgstr "pÅ™i Ätení bloku MMP."
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
@@ -4964,7 +5404,7 @@ msgstr ""
"Odstranění příznaku flex_bg by mohlo způsobit nekonzistenci systému\n"
"souborů.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4972,7 +5412,7 @@ msgstr ""
"Příznak huge_file může být vymazán jen, když je systém souborů\n"
"odpojen nebo pÅ™ipojen jen pro Ätení.\n"
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
@@ -4980,11 +5420,11 @@ msgstr ""
"\n"
"Pozor: pÅ™epínaÄ â€ž^quota“ pÅ™ebije argumenty „–Q“.\n"
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Systém souborů již žurnál má.\n"
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4993,21 +5433,21 @@ msgstr ""
"\n"
"\tpři pokusu otevřít žurnál na %s\n"
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Vytváří se žurnál na zařízení %s: "
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "při přidávání systému souborů do žurnálu na %s"
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Vytváří se iuzel žurnálu: "
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -5015,16 +5455,17 @@ msgstr ""
"\n"
"\tpři pokusu vytvořit soubor žurnálu"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr "Nemohu alokovat paměť pro zpracování pÅ™epínaÄů kvóty!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
@@ -5039,99 +5480,105 @@ msgstr ""
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Nemohu zpracovat urÄení data/Äasu: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "Å¡patný poÄet pÅ™ipojení - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "špatné chování při chybách - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "špatné gid/jméno skupiny - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "Špatný interval - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "špatný podíl rezervovaných bloků - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o může být zadáno jen jednou"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O může být zadáno jen jednou"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "Å¡patný poÄet rezervovaných bloků - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "špatné uid/jméno uživatele - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "špatná velikost iuzlu – %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Velikost iuzlu musí být mocnina dvou – %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "interval_aktualizace_mmp je příliš velký: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] "Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu sekundu\n"
-msgstr[1] "Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu sekundy\n"
-msgstr[2] "Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu sekund\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] ""
+"Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu "
+"sekundu\n"
+msgstr[1] ""
+"Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu "
+"sekundy\n"
+msgstr[2] ""
+"Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu "
+"sekund\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Neplatný kroku (stride) RAIDu: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Neplatná šířka pruhu RAIDu (stripe-width): %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Neplatný hashovací algoritmus: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Implicitní hashovací algoritmus se nastavuje na %s (%d)\n"
-#: misc/tune2fs.c:1257
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -5163,31 +5610,31 @@ msgstr ""
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
msgstr "Čtení bitmapy iuzlů selhalo.\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
msgstr "Čtení bitmapy bloků selhalo\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "bloky pro přesun"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr "Během zvětšování iuzlu selhala alokace bitmapy bloků\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr "Nedostatek místa pro zvětšení iuzlu\n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
msgstr "Během změny velikosti iuzlu selhala realokace bloků\n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
@@ -5195,16 +5642,16 @@ msgstr ""
"Chyba při měnění velikost iuzlu.\n"
"Spusťte e2undo, abyste vrátili změny provedené na systému souborů.\n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Nemohu alokovat paměť pro název souboru TDB\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
msgstr "při pokusu smazat %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -5215,7 +5662,7 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
@@ -5224,62 +5671,66 @@ msgstr ""
"Magické Äíslo bloku MMP je chybné. Můžete jej zkusit opravit pomocí:\n"
"„e2fsck -f %s“\n"
-#: misc/tune2fs.c:1936
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Velikost iuzlu již je %lu\n"
-#: misc/tune2fs.c:1942
-#, c-format
-msgid "Shrinking the inode size is not supported\n"
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
msgstr "Zmenšování velikosti iuzlu není podporováno\n"
-#: misc/tune2fs.c:1989
+#: misc/tune2fs.c:1987
+#, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "špatná velikost iuzlu %lu (max %d)\n"
+
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Nastavuje se maximální poÄet pÅ™ipojení na %d\n"
-#: misc/tune2fs.c:1995
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Nastavuje se aktuální poÄet pÅ™ipojení na %d\n"
-#: misc/tune2fs.c:2000
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Nastavuje se chování při chybách na %d\n"
-#: misc/tune2fs.c:2005
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Nastavuje se GID rezervovaných bloků na %lu\n"
-#: misc/tune2fs.c:2010
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "interval mezi kontrolami je příliš dlouhý (%'lu)"
-#: misc/tune2fs.c:2017
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Interval mezi kontrolami se nastavuje na %'lu sekund\n"
-#: misc/tune2fs.c:2024
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Procento rezervovaných bloků se nastavuje na %g %% (%'llu bloků)\n"
-#: misc/tune2fs.c:2030
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "poÄet rezervovaných bloků je příliÅ¡ velký (%'llu)"
-#: misc/tune2fs.c:2037
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "PoÄet rezervovaných bloků se nastavuje na %'llu\n"
-#: misc/tune2fs.c:2043
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -5287,7 +5738,18 @@ msgstr ""
"\n"
"Systém souborů již má řídké superbloky.\n"
-#: misc/tune2fs.c:2050
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Na souborových systémech se zapnutou vlastností flex_bg není změna "
+"velikosti\n"
+"iuzlu podporována.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -5296,83 +5758,129 @@ msgstr ""
"\n"
"Příznak řídkých superbloků nastaven. %s"
-#: misc/tune2fs.c:2055
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
"Odstranění superpříznaku řídkosti není podporováno.\n"
-#: misc/tune2fs.c:2063
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Nastavuje se Äas poslední kontroly systému souborů na %s\n"
-#: misc/tune2fs.c:2069
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Nastavuje se UID rezervovaných bloků na %lu\n"
-#: misc/tune2fs.c:2101
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr "Chybné použití clear_mmp. Je třeba jej použít s -f\n"
-#: misc/tune2fs.c:2119
-msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr "Vlastnost kvóty smí být změněna, jen když je systém souborů odpojen.\n"
-#: misc/tune2fs.c:2152
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr "UUID smí být změněno, jen když je systém souborů odpojen.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Neplatný formát UUID\n"
-#: misc/tune2fs.c:2165
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr "Velikost iuzlu smí být změněna, jen když je systém souborů odpojen.\n"
-#: misc/tune2fs.c:2173
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-"Na souborových systémech se zapnutou vlastností flex_bg není změna velikosti\n"
+"Na souborových systémech se zapnutou vlastností flex_bg není změna "
+"velikosti\n"
"iuzlu podporována.\n"
-#: misc/tune2fs.c:2186
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Velikost iuzlu se nastavuje na %lu\n"
-#: misc/tune2fs.c:2189
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
msgstr "Změna velikosti iuzlu selhala.\n"
-#: misc/tune2fs.c:2200
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Velikost kroku (stride) se nastavuje na %d\n"
-#: misc/tune2fs.c:2205
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Šířka pruhu (stripe width) se nastavuje na %d\n"
-#: misc/tune2fs.c:2212
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "Implicitní rozšířené pÅ™epínaÄe pÅ™i přípojení se nastavují na „%s“\n"
-#: misc/util.c:74
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "PÅ™esto pokraÄovat? (a,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "PÅ™esto pokraÄovat? (a,n) "
-#: misc/util.c:89
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "Å¡patný poÄet pÅ™ipojení - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "Å¡patný poÄet pÅ™ipojení - %s"
+
+#: misc/util.c:135
+#, c-format
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Nemohu stat %s --- %s\n"
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "obyÄejný soubor"
-#: misc/util.c:92
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "Nelze otevřít %s: %s"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -5380,34 +5888,44 @@ msgstr ""
"\n"
"Zařízení zřejmě neexistuje; zadali jste je správně?\n"
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s není speciální blokové zařízení.\n"
-#: misc/util.c:132
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " obsahuje systém souborů s chybami"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " obsahuje systém souborů s chybami"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s je celé zařízení, ne jen jeden oddíl!\n"
-#: misc/util.c:154
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "mke2fs přesto vynucen. Doufám, že /etc/mtab je nesprávná.\n"
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "nebudu tady vytvářet %s!\n"
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "mke2fs stejnÄ› vynucen.\n"
-#: misc/util.c:182
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr "Nemohu alokovat paměť pro zpracování pÅ™epínaÄů žurnálu!\n"
-#: misc/util.c:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
@@ -5416,7 +5934,8 @@ msgstr ""
"\n"
"Nebylo možné najít žurnálovací zařízení odpovídající %s\n"
-#: misc/util.c:228
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5427,6 +5946,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -5444,7 +5964,7 @@ msgstr ""
"Velikost žurnálu musí být mezi 1024 a 10240000 bloky systému souborů.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -5452,7 +5972,7 @@ msgstr ""
"\n"
"Systém souborů příliš malý na žurnál\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5463,7 +5983,7 @@ msgstr ""
"Požadovaná velikost žurnálu je %'d bloků; musí být\n"
"mezi 1024 a 102400 bloky. KonÄím.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -5471,14 +5991,15 @@ msgstr ""
"\n"
"Velikost žurnálu příliš velká pro systém souborů.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, 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 ""
"Tento systém souborů bude automaticky kontrolován každých %d připojení nebo\n"
-"%g dní, podle toho, co nastane dříve. Pro změnu použijte tune2fs -c nebo -i.\n"
+"%g dní, podle toho, co nastane dříve. Pro změnu použijte tune2fs -c nebo -"
+"i.\n"
#: misc/uuidd.c:48
#, c-format
@@ -5592,7 +6113,6 @@ msgstr[1] "%s a následující %d UUID\n"
msgstr[2] "%s a následujících %d UUID\n"
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
msgstr "Seznam UUID:\n"
@@ -5625,7 +6145,7 @@ msgstr "# Výpis rozsahu:\n"
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tČís=%llu, Velikost=%llu, Kurzor=%llu, Seřazeno=%llu\n"
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -5635,55 +6155,59 @@ msgstr ""
" zařízení [nová_velikost]\n"
"\n"
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Zvětšuji tabulku iuzlů"
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Přesouvám bloky"
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Procházím tabulku iuzlů"
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Aktualizuji odkazy na iuzly"
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Přesouvám tabulku iuzlů"
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Neznámý průchod?!?"
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "ZaÄátek průchodu %d (max = %lu)\n"
-#: resize/main.c:263
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+"\n"
+"Změna velikosti souborového systému s vlastností bigalloc není plně\n"
+"otestována. PokraÄování jen na vlastní nebezpeÄí! PÅ™ejete-li si pokraÄovat,\n"
+"použijte pÅ™epínaÄ vynucení.\n"
+"\n"
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "při otevírání %s"
-#: resize/main.c:275
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "při zjišťování stat informací o %s"
-#: resize/main.c:336
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Kombinace vlastností flex_bg a\n"
-"\t!resize_inode není podporována nástrojem resize2fs.\n"
-
-#: resize/main.c:349 resize/main.c:457
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
@@ -5692,30 +6216,30 @@ msgstr ""
"Spusťte prosím nejdříve „e2fsck -f %s“.\n"
"\n"
-#: resize/main.c:353
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Odhadovaná minimální velikost systému souborů: %llu\n"
-#: resize/main.c:389
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Chybná nová velikost: %s\n"
-#: resize/main.c:397
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
msgstr "Nová velikost je příliš, aby byla vyjádřena ve 32 bitech\n"
-#: resize/main.c:409
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Nová velikost je menší než minimum (%llu)\n"
-#: resize/main.c:415
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr "Neplatná délka kroku"
-#: resize/main.c:439
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
@@ -5726,7 +6250,7 @@ msgstr ""
"Požadovali jste novou velikost %'llu bloků.\n"
"\n"
-#: resize/main.c:446
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
@@ -5735,17 +6259,17 @@ msgstr ""
"Souborový systém již je dlouhý %'llu bloků. Není co dělat!\n"
"\n"
-#: resize/main.c:461
+#: resize/main.c:456
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr "Velikost systému souborů %s se mění na %'llu (%dk) bloků.\n"
-#: resize/main.c:470
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "při pokusu změnit velikost %s"
-#: resize/main.c:473
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
@@ -5754,7 +6278,7 @@ msgstr ""
"Po přerušené změně velikosti, prosím, opravte souborový systém pomocí\n"
"„e2fsck -fy %s“\n"
-#: resize/main.c:479
+#: resize/main.c:474
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
@@ -5763,87 +6287,119 @@ msgstr ""
"Systém souborů na %s je nyní %'llu bloků dlouhý.\n"
"\n"
-#: resize/main.c:494
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
msgstr "při pokusu zkrátit %s"
-#: resize/online.c:40
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Jádro nepodporuje změnu velikost za běhu"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
"Systém souborů v %s je připojen do %s,\n"
"požadována změna velikosti za běhu.\n"
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
msgstr "Zmenšování za běhu není podporováno"
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr "Systém souborů nepodporuje změnu velikosti za běhu"
-#: resize/online.c:70
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Nedostatek rezervovaných GDT bloků pro změnu velikosti za běhu"
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Jádro nepodporuje změnu velikosti souborového systému na tuto velikost"
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "při pokusu otevřít přípojný bod %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr "Vyžádáno staré rozhraní pro změnu velikosti.\n"
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "Povolení ke změně velikosti systému souborů zamítnuto"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "Při zjišťování podpory změny velikosti za běhu"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "Jádro nepodporuje změnu velikosti souborového systému na tuto velikost"
-
-#: resize/online.c:119
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
msgstr "Jádro nepodporuje změnu velikost za běhu"
-#: resize/online.c:152
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr "Mění se velikosti za běhu %s na %'llu (%dk) bloků.\n"
-#: resize/online.c:162
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr "Při pokusu rozšířit poslední skupinu"
-#: resize/online.c:216
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr "PÅ™i pokusu pÅ™idat skupinu Ä. %d"
-#: resize/online.c:227
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
-msgstr "Systém souborů v %s je připojen do %s a změna velikost za běhu není na tomto systému podporována.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
+msgstr ""
+"Systém souborů v %s je připojen do %s a změna velikost za běhu není na tomto "
+"systému podporována.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "iuzlů (%'llu) musí být méně než %'u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "rezervované bloky"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "bloky meta-dat"
-#: resize/resize2fs.c:1735
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "bloky meta-dat"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
-msgstr "Toto by se nikdy nemělo stát: iuzly pro změnu velikosti jsou poškozeny!\n"
+msgstr ""
+"Toto by se nikdy nemělo stát: iuzly pro změnu velikosti jsou poškozeny!\n"
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42-WIP"
-msgstr "Knihovna EXT2FS verze 1.42-WIP"
+#, fuzzy
+msgid "EXT2FS Library version 1.42.10"
+msgstr "Knihovna EXT2FS verze 1.42.9"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
@@ -5958,11 +6514,11 @@ msgid "Can't read an inode bitmap"
msgstr "Bitmapu iuzlů nelze pÅ™eÄíst"
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
+msgid "Can't write a block bitmap"
msgstr "Bitmapu bloků nelze zapsat"
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
+msgid "Can't read a block bitmap"
msgstr "Bitmapu bloků nelze pÅ™eÄíst"
#: lib/ext2fs/ext2_err.c:42
@@ -6388,11 +6944,14 @@ msgstr "I/O Channel nepodporuje 64bitová Äísla bloků"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr "Kvůli chybějícímu souboru mtab nelze zjistit, zda-li je systém souborů připojený"
+msgstr ""
+"Kvůli chybějícímu souboru mtab nelze zjistit, zda-li je systém souborů "
+"připojený"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "Souborový systém je příliš velký na to, aby se použily zastaralé bitmapy"
+msgstr ""
+"Souborový systém je příliš velký na to, aby se použily zastaralé bitmapy"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
@@ -6422,6 +6981,50 @@ msgstr "MMP: systému souborů se stále používá"
msgid "MMP: open with O_DIRECT failed"
msgstr "MMP: otevření s O_DIRECT selhalo"
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr "Nesprávná velikost deskriptoru skupiny bloků"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr "Kontrolní souÄet iuzlu neodpovídá iuzlu"
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr "Kontrolní souÄet bitmapy iuzlů neodpovídá bitmapÄ›"
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr "Kontrolní souÄet bloku rozsahů neodpovídá bloku rozsahů"
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr "Blok adresářů nemá místo pro kontrolní souÄet"
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr "Kontrolní souÄet bloku adresářů neodpovídá bloku adresářů"
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr "Kontrolní souÄet bloku rozšířených atributů neodpovídá bloku"
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr "Kontrolní souÄet superbloku neodpovídá superbloku"
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr "Neznámý algoritmus kontrolního souÄtu"
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr "Kontrolní souÄet bloku MMP neodpovídá bloku MMP"
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr "Soubor ext2 již existuje"
+
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
msgstr "Profil verze 0.0"
@@ -6546,6 +7149,52 @@ msgstr "Neplatná celoÄíselná hodnota"
msgid "Bad magic value in profile_file_data_t"
msgstr "Chybné magické Äíslo v profile_file_data_t"
+#~ msgid ""
+#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/"
+#~ "s \n"
+#~ msgstr ""
+#~ "\b\b\b\b\b\b\b\bZkopírováno %llu/%llu bloků (%llu %%) do %s při %.2f MB/"
+#~ "s \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Warning: the quota feature is still under development\n"
+#~ "See https://ext4.wiki.kernel.org/index.php/Quota for more information\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pozor: vlastnost kvóty je stále ve vývoji.\n"
+#~ "Podrobnosti naleznete na <https://ext4.wiki.kernel.org/index.php/Quota>.\n"
+#~ "\n"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Nemohu stat %s --- %s\n"
+
+#~ msgid "Clearing extent flag not supported on %s"
+#~ msgstr "Odstranění příznaku rozsahu není na %s podporováno"
+
+#~ msgid ""
+#~ "%s: The combination of flex_bg and\n"
+#~ "\t!resize_inode features is not supported by resize2fs.\n"
+#~ msgstr ""
+#~ "%s: Kombinace vlastností flex_bg a\n"
+#~ "\t!resize_inode není podporována nástrojem resize2fs.\n"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "%s je připojen. "
+
+#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
+#~ msgstr ""
+#~ "Bitmapa bloků skupiny %g neinicializována, aÄkoliv bitmapa iuzlů je "
+#~ "použita.\n"
+
+#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
+#~ msgstr ""
+#~ "Iuzel %i by neměl mít nastaveno EOFBLOCKS_FL (velikost %Is, lblk %r)\n"
+
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "Velikost žurnálu nelze urÄit"
+
#~ msgid "#\t\t %llu -> %llu (%llu)\n"
#~ msgstr "#\t\t %llu -> %llu (%llu)\n"
@@ -6608,10 +7257,9 @@ msgstr "Chybné magické Äíslo v profile_file_data_t"
#~ msgstr "ioctl BLKGETSIZE"
#~ msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
-#~ msgstr "Rozšířený atribut v iuzlu %i má hash (%N), který není platný (musí být 0)\n"
-
-#~ msgid "while calling ext2fs_block_iterate"
-#~ msgstr "při volání ext2fs_block_iterate"
+#~ msgstr ""
+#~ "Rozšířený atribut v iuzlu %i má hash (%N), který není platný (musí být "
+#~ "0)\n"
#~ msgid "while calling iterator function"
#~ msgstr "při volání funkce iterátoru"
@@ -6639,7 +7287,8 @@ msgstr "Chybné magické Äíslo v profile_file_data_t"
#~ msgstr "Přehození bajtů"
#~ msgid "Byte-swapping filesystems not compiled in this version of e2fsck\n"
-#~ msgstr "Přehození bajtů systémů souborů není zabudováno v této verzi e2fsck\n"
+#~ msgstr ""
+#~ "Přehození bajtů systémů souborů není zabudováno v této verzi e2fsck\n"
#~ msgid "Incompatible options not allowed when byte-swapping.\n"
#~ msgstr "PÅ™i pÅ™ehození bajtů nejsou dovoleny nekompatibilní pÅ™epínaÄe.\n"
@@ -6657,7 +7306,8 @@ msgstr "Chybné magické Äíslo v profile_file_data_t"
#~ "Filesystem too large. No more than 2**31-1 blocks\n"
#~ "\t (8TB using a blocksize of 4k) are currently supported."
#~ msgstr ""
-#~ "Souborový systém je příliÅ¡ velký. V souÄasnosti není podporováno více jak\n"
+#~ "Souborový systém je příliÅ¡ velký. V souÄasnosti není podporováno více "
+#~ "jak\n"
#~ "\t2**31-1 bloků (8 TB při 4k blocích)."
#~ msgid ""
@@ -6667,7 +7317,8 @@ msgstr "Chybné magické Äíslo v profile_file_data_t"
#~ "\n"
#~ msgstr ""
#~ "\n"
-#~ "Varování: některá jádra z řady 2.4 nepodporují na ext3 bloky větší než 4096\n"
+#~ "Varování: některá jádra z řady 2.4 nepodporují na ext3 bloky větší než "
+#~ "4096\n"
#~ "\tJe-li to váš případ, použijte „-b 4096“.\n"
#~ "\n"
@@ -6716,7 +7367,8 @@ msgstr "Chybné magické Äíslo v profile_file_data_t"
#~ msgstr "Duplikovaný/špatný blok(y) v inode %i:"
#~ msgid "Forcibly clearing HTREE flag on @i %d (%q). (Beta test code)\n"
-#~ msgstr "Vynuceně mažu příznak HTREE v inode %d (%q). (Kód v beta testování)\n"
+#~ msgstr ""
+#~ "Vynuceně mažu příznak HTREE v inode %d (%q). (Kód v beta testování)\n"
#~ msgid ""
#~ "%8d blocks used (%d%%)\n"
@@ -6854,7 +7506,3 @@ msgstr "Chybné magické Äíslo v profile_file_data_t"
# FIXME: unlocalizable
#~ msgid "%8d large file%s\n"
#~ msgstr "%8d velkých souborů%s\n"
-
-# FIXME: no need to translate
-#~ msgid "ext2fs_check_if_mount"
-#~ msgstr "ext2fs_check_if_mount"
diff --git a/po/de.gmo b/po/de.gmo
index b2b27e0f..63bd3d41 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index cd26cc50..4ca1d688 100644
--- a/po/de.po
+++ b/po/de.po
@@ -4,7 +4,7 @@
#
# Olaf Klemke <olke@users.sourceforge.net>,2002.
# Marc Langer <marc@marclanger.de>,2003.
-# Philipp Thomas <pth@suse.de>, 2007, 2008, 2009, 2010, 2011.
+# Philipp Thomas <pth@suse.de>, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
#
#. 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,
@@ -66,10 +66,10 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.41.99.1009\n"
+"Project-Id-Version: e2fsprogs-1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-10-09 20:32-0400\n"
-"PO-Revision-Date: 2011-10-14 16:50+0200\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2013-01-27 00:23+0100\n"
"Last-Translator: Philipp Thomas <pth@suse.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
@@ -78,10 +78,10 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
-msgstr "Bad block %u außerhalb des gültigen Bereichs; ignoriert.\n"
+msgstr "„Bad block“ %u außerhalb des gültigen Bereichs; ignoriert.\n"
#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
@@ -91,11 +91,11 @@ msgstr "während der logischen Prüfung des „Bad Block“-Inodes"
msgid "while reading the bad blocks inode"
msgstr "während des Lesens des „Bad Block“-Inodes"
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1239 e2fsck/unix.c:1324 misc/badblocks.c:1215
-#: misc/badblocks.c:1223 misc/badblocks.c:1237 misc/badblocks.c:1249
-#: misc/dumpe2fs.c:572 misc/e2image.c:1170 misc/e2image.c:1288
-#: misc/e2image.c:1301 misc/mke2fs.c:192 misc/tune2fs.c:1894 resize/main.c:308
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "beim Versuch, %s zu öffnen"
@@ -105,7 +105,7 @@ msgstr "beim Versuch, %s zu öffnen"
msgid "while trying popen '%s'"
msgstr "beim Versuch, „%s“ mittels „popen“ zu öffnen"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "beim Lesen der „Bad Block“-Liste aus der Datei"
@@ -113,10 +113,12 @@ msgstr "beim Lesen der „Bad Block“-Liste aus der Datei"
msgid "while updating bad block inode"
msgstr "beim Updaten des „Bad Block“-Inodes"
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr "Warnung: Nicht zulässiger Block %u im „Bad Blocks“-Inode gefunden! Bereinigt.\n"
+msgstr ""
+"Warnung: Nicht zulässiger Block %u im „Bad Blocks“-Inode gefunden! "
+"Bereinigt.\n"
#: e2fsck/ehandler.c:55
#, c-format
@@ -172,7 +174,7 @@ msgstr "Blockanzahl nicht zulässig!\n"
#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
-msgstr "Konnte keinen Blockpuffer (Größe=%d) reservieren.\n"
+msgstr "Es konnte kein Blockpuffer (Größe=%d) reserviert werden\n"
#: e2fsck/flushb.c:35
#, c-format
@@ -184,70 +186,75 @@ msgstr "Aufruf: %s Laufwerk\n"
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr "BLKFLSBUF ioctl nicht unterstützt! Kann Puffer nicht leeren.\n"
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Aufruf: %s [-F] [-I inode_buffer_blocks] Gerät\n"
-#: e2fsck/iscan.c:84 e2fsck/unix.c:902
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
-msgstr "beim Öffnen von %s für die Puffer-Leerung."
+msgstr "beim Öffnen von %s für die Puffer-Leerung"
-#: e2fsck/iscan.c:89 e2fsck/unix.c:908 resize/main.c:284
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "während des Rückschreibeversuches auf %s"
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1065
+#: e2fsck/iscan.c:110
+#, fuzzy, c-format
+msgid "while trying to open '%s'"
+msgstr "beim Versuch, %s zu öffnen"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "beim Start des Inode-Scans"
-#: e2fsck/iscan.c:130 misc/e2image.c:1083
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "beim Laden des nächsten Inodes"
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u Inodes untersucht.\n"
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "Lese Journal-Superblock\n"
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: keinen gültigen Journal-Superblock gefunden\n"
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: Das Journal ist zu kurz\n"
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: stelle das Journal wieder her\n"
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr "%s: Das Journal ist nur lesbar - Keine Wiederherstellung\n"
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "beim Versuch, %s erneut zu öffnen"
#: e2fsck/message.c:113
msgid "aextended attribute"
-msgstr "aerweiterte Eigenschaft"
+msgstr "aerweiterte Attribute"
#: e2fsck/message.c:114
msgid "Aerror allocating"
-msgstr "AFehler beim Zuweisen"
+msgstr "AFehler beim Reservieren von Platz für"
#: e2fsck/message.c:115
msgid "bblock"
@@ -263,7 +270,7 @@ msgstr "ckomprimieren"
#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
-msgstr "CKonflikte mit anderen Dateisystemen @b"
+msgstr "CKonflikte mit einem anderen Dateisystemenblock"
#: e2fsck/message.c:119
msgid "iinode"
@@ -307,7 +314,7 @@ msgstr "gGruppe"
#: e2fsck/message.c:129
msgid "hHTREE @d @i"
-msgstr "hHTREE @d @i"
+msgstr "hHTREE @dinode"
#: e2fsck/message.c:130
msgid "llost+found"
@@ -315,7 +322,7 @@ msgstr "llost+found"
#: e2fsck/message.c:131
msgid "Lis a link"
-msgstr "List ein Link"
+msgstr "List eine Verknüpfung"
#: e2fsck/message.c:132
msgid "mmultiply-claimed"
@@ -363,7 +370,7 @@ msgstr "xErweiterung"
#: e2fsck/message.c:143
msgid "zzero-length"
-msgstr "zNull-Länge"
+msgstr "zmit Länge Null"
#: e2fsck/message.c:154
msgid "<The NULL inode>"
@@ -405,63 +412,56 @@ msgstr "<Der reservierte Inode 9>"
msgid "<Reserved inode 10>"
msgstr "<Der reservierte Inode 10>"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "'reguläre Datei"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "Verzeichnis"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "zeichenorientiertes Gerät"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "Blockgerät"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "named pipe"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "symbolische Verknüpfung"
-#: e2fsck/message.c:344 misc/uuidd.c:161
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr " Socket"
-#: e2fsck/message.c:346
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "unbekannter Dateityp mit Modus 0%o"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr "indirekte Blöcke"
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr "doppelt indirekte Blöcke"
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr "dreifach indirekte Blöcke"
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
msgstr "Ãœbersetzerblock"
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "Block Nr."
@@ -469,124 +469,124 @@ msgstr "Block Nr."
msgid "multiply claimed inode map"
msgstr "mehrfach beanspruchte Inode-Liste"
-#: e2fsck/pass1b.c:599 e2fsck/pass1b.c:712
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
-msgstr "interner Fehler; dup_blk für %llu wurde nicht gefunden\n"
+msgstr "interner Fehler: dup_blk für %llu wurde nicht gefunden\n"
-#: e2fsck/pass1b.c:825
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "zurückgegeben von clone_file_block"
-#: e2fsck/pass1b.c:847
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "interner Fehler: EA Blockliste für %llu wurde nicht gefunden"
-#: e2fsck/pass1b.c:859
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr "Interner Fehler: EA Inodeliste für %u wurde nicht gefunden"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:777
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "lese Verzeichnisblock"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "„in-use inode“-Liste"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "„directory inode“-Liste"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "„regular file inode“-Liste"
-#: e2fsck/pass1.c:622
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "„in-use block“-Liste"
-#: e2fsck/pass1.c:684
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "Starte Inode-Scan"
-#: e2fsck/pass1.c:718
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "beim Lesen des nächsten Inodes"
-#: e2fsck/pass1.c:1228
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Durchgang 1"
-#: e2fsck/pass1.c:1285
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "lese indirekte Blöcke von Inode %u"
-#: e2fsck/pass1.c:1330
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "fehlerhafte Inode-Liste"
-#: e2fsck/pass1.c:1352
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "Inode in „Bad Blocks“-Liste"
-#: e2fsck/pass1.c:1372
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "i„magic inode“-Liste"
-#: e2fsck/pass1.c:1399
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
-msgstr "Den Eintrag in der Liste belegter Blöcke verdoppeln"
+msgstr "mehrfach referenzierte Blockliste"
-#: e2fsck/pass1.c:1499
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "ext attr block map"
-#: e2fsck/pass1.c:2247
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr "%6lu(%c): erwartete %6lu erhielt phys %6lu (Blockanzahl %lld)\n"
-#: e2fsck/pass1.c:2608
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
-msgstr "Block Bitmap"
+msgstr "Block-Bitmap"
-#: e2fsck/pass1.c:2614
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
-msgstr "Inode Bitmap"
+msgstr "Inode-Bitmap"
-#: e2fsck/pass1.c:2620
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "Inode-Tabelle"
-#: e2fsck/pass2.c:278
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Durchgang 2"
-#: e2fsck/pass2.c:800
+#: e2fsck/pass2.c:805
msgid "Can not continue."
-msgstr "Fortsetzung nicht möglich."
+msgstr "das Programm kann nicht fortfahren."
#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr "„inode done“-Bitmap"
-#: e2fsck/pass3.c:85
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Peak-Memory"
-#: e2fsck/pass3.c:135
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Durchgang 3"
-#: e2fsck/pass3.c:321
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "„inode loop detection“-Bitmap"
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Durchgang 4"
@@ -644,7 +644,7 @@ msgstr "Abbrechen"
#: e2fsck/problem.c:63
msgid "Split"
-msgstr "Aufsplitten"
+msgstr "Aufteilen"
#: e2fsck/problem.c:64
msgid "Continue"
@@ -652,7 +652,7 @@ msgstr "Fortsetzen"
#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
-msgstr "multiply claimed block map"
+msgstr "mehrfach referenzierte Blöcke werden geklont"
#: e2fsck/problem.c:66
msgid "Delete file"
@@ -664,7 +664,7 @@ msgstr "Ausgaben unterdrücken"
#: e2fsck/problem.c:68
msgid "Unlink"
-msgstr "Unlink"
+msgstr "Trennen"
#: e2fsck/problem.c:69
msgid "Clear HTree index"
@@ -724,7 +724,7 @@ msgstr "ABGEBROCHEN"
#: e2fsck/problem.c:91
msgid "SPLIT"
-msgstr "ABGESPALTET"
+msgstr "ABGESPALTEn"
#: e2fsck/problem.c:92
msgid "CONTINUING"
@@ -732,7 +732,7 @@ msgstr "SETZE FORT"
#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
-msgstr "DOPPELTE/DEFEKTE BLÖCKE DUPLIZIERT"
+msgstr "MEHRFACH REFERENZIERTE BLÖCKE GEKLONT"
#: e2fsck/problem.c:94
msgid "FILE DELETED"
@@ -748,21 +748,21 @@ msgstr "GETRENNT"
#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
-msgstr "HTREE INDEX BEREINIGT"
+msgstr "HTREE-INDEX BEREINIGT"
#: e2fsck/problem.c:98
msgid "WILL RECREATE"
-msgstr "ANGELEGT"
+msgstr "WIRD WIEDER AUFGEBAUT"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
-msgstr "@b @B für @g %g ist nicht in @g. (@b %b)\n"
+msgstr "@b @B für @g %g ist nicht in @g. (@b %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
-msgstr "@i @B für @g %g ist nicht in @g. (@b %b)\n"
+msgstr "@i @B für @g %g ist nicht in @g. (@b %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
@@ -771,31 +771,35 @@ msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
msgstr ""
-"@i Tabelle für @g %g ist nicht in @g. (@b %b)\n"
+"@i Tabelle für @g %g ist nicht in @g. (@b %b)\n"
"WARNUNG: GROSSER DATENVERLUST IST MÖGLICH.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
#: e2fsck/problem.c:122
-#, c-format
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
-"@S ist unlesbar bzw. beschreibt kein gültiges ext2\n"
-"@f. Wenn @v gültig ist und ein ext2\n"
-"@f (kein swap oder ufs usw.) enthält, dann ist der @S\n"
+"Der @S ist unlesbar bzw. beschreibt kein gültiges ext2\n"
+"@f. Wenn @v gültig ist und ein ext2\n"
+"@f (kein swap oder ufs usw.) enthält, dann ist der @S\n"
"beschädigt, und sie könnten e2fsck mit einem anderen @S:\n"
" e2fsck -b %S <@v>\n"
"\n"
@@ -803,49 +807,50 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
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 ""
-"Die @f Größe ( laut @S) ist %b @bs\n"
+"Die @f-Größe ( laut @S) ist %b @bs\n"
"Die physikalische Größe von @v ist %c @bs\n"
"Entweder der @S oder die Partionstabelle ist beschädigt!\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:138
+#: e2fsck/problem.c:140
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 ""
-"@S @b_size = %b, fragsize = %c.\n"
-"Diese Version von e2fsck unterstützt keine von @b-Größen verschiedene Fragmentgrößen.\n"
+"@S-@b_size = %b, fragsize = %c.\n"
+"Diese Version von e2fsck unterstützt keine von @b-Größen verschiedene "
+"Fragmentgrößen.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
-msgstr "@S @bs_per_group = %b, sollte %c sein.\n"
+msgstr "@bs_per_group im @S = %b, sollte %c sein\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
-msgstr "@S first_data_@b = %b, sollte %c haben.\n"
+msgstr "first_data_@b im @S = %b, sollte %c sein\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
msgstr ""
-"@f hat keinen UUID ; generiere einen.\n"
+"@f hat keinen UUID; es wird eine generiert.\n"
"\n"
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -859,53 +864,53 @@ msgstr ""
"neu geordnet werden müssen, oder ein Teil der Inode-Tabelle\n"
"verschoben werden muss, könnte es helfen, e2fsck erst einmal\n"
"mit der Option „-b %S“ zu starten. Das Problem könnte\n"
-"im primären Blockgruppenbezeichner liegen, und seine\n"
+"im primären Blockgruppenbezeichner liegen und seine\n"
"Sicherungskopie in Ordnung sein.\n"
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:169
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
-msgstr "Beschädigung gefunden in @S. (%s = %N).\n"
+msgstr "Beschädigung gefunden in @S. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:174
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
-msgstr "Fehler bei der Feststellung der Größe des physikalischen @v: %m\n"
+msgstr "Fehler bei der Feststellung der Größe des physischen @v: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "@i-Anzahl in @S ist %i, sollte %j sein.\n"
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
-msgstr "Hurd unterstützt das Dateityp-Feature nicht.\n"
+msgstr "Hurd unterstützt keine Dateitypen.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "@S hat ein defektes @j (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
-msgstr "Externes @j hat mehrere @f Nutzer (nicht unterstützt).\n"
+msgstr "Externes @j hat mehrere @f-Nutzer (nicht unterstützt).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
-msgstr "Kann kein externes @j finden.\n"
+msgstr "Kann kein externes @j finden\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "Externes @j hat ungültigen @S\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "Externes @j unterstützt nicht @f\n"
@@ -913,92 +918,103 @@ msgstr "Externes @j unterstützt nicht @f\n"
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#. @-expanded: format.\n
#. @-expanded: It is also possible the journal superblock is corrupt.\n
-#: e2fsck/problem.c:213
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-"Ext3 @j @S ist eine unbekannter Type %N (nicht unterstützt).\n"
-"Es ist möglich, dass ihr e2fsck älter ist und/oder dieses @j Format nicht unterstützt.\n"
-"Es ist ebenso möglich, dass @j @S defekt ist.\n"
+"Der Superblock des Dateisystem-Journals hat den unbekannten Type %N (nicht "
+"unterstützt).\n"
+"Es ist möglich, dass ihr e2fsck älter ist und/oder dieses @j-Format nicht "
+"unterstützt.\n"
+"Es ist ebenso möglich, dass der @j-@S defekt ist.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
-msgstr "Ext3 @j @S ist defekt.\n"
+msgstr "der @j-@S ist defekt.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr "ext3 Recovery-Flag sauber, aber ein @j %s ist vorhanden.\n"
+msgstr ""
+"Der Bitschalter has_journal im Superblock ist nicht gesetzt, aber ein \n"
+"@j %s ist vorhanden.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
-msgstr "@S hat das ext3 „needs_recovery“-Flag gesetzt, aber ein @j ist nicht vorhanden.\n"
+msgstr ""
+"Im @S ist der Bitschalter „needs_recovery“ gesetzt, aber ein @j ist\n"
+"nicht vorhanden.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr "ext3 Recovery-Flag sauber, aber das @j enthält Daten.\n"
+msgstr ""
+"Der Bitschalter „Wiederherstellung nötig“ im @S ist nicht gesetzt, aber das\n"
+"@j enthält Daten.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Bereinige @j"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:246 e2fsck/problem.c:690
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr "@f hat Eigenschfts-Kennzeichen gesetzt, ist aber ein Revision 0 @f. "
+msgstr "@f hat Eigenschfts-Bitschalter gesetzt, ist aber ein Revision-0-@f. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
-msgstr "@I @b #%B (%b) gefunden in @o @i %i.\n"
+msgstr "@I @b #%B (%b) in @o @i %i gefunden.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
-msgstr "bereits bereinigt @b #%B (%b) gefunden in @o @i %i.\n"
+msgstr "Bereits bereinigter %B (%b) in @o @i %i gefunden.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
-msgstr "@I @o @i %i in @S.\n"
+msgstr "@I @o @i %i im @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
-msgstr "@I @i %i in @o @i Liste.\n"
+msgstr "Illegaler Inode %i in der Liste der verwaisten Inodes.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "Ext3 @j @S hat ein unbekanntes Nur-Lesen-Flag gesetzt.\n"
+msgstr "der @j-@S hat einen unbekannten Nur-Lesen-Bitschalter gesetzt.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "Ext3 @j @S hat ein unbekanntes Inkompatibel-Flag gesetzt.\n"
+msgstr ""
+"im @j-@S ist ein unbekannter Bitschalter für inkompatible Eigenschaft "
+"gesetzt.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:286
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
-msgstr "@j Version wird von diesem e2fsck nicht unterstützt.\n"
+msgstr "diese @j-Version wird von diesem e2fsck nicht unterstützt.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1009,51 +1025,53 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
"\n"
msgstr ""
-"Fehler beim Verschieben von @j: %m\n"
+"Fehler beim Verschieben von @j: %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:301
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
"\n"
msgstr ""
-"Fand unvollständige V2 @j @S Felder (vom V1 Journal).\n"
-"Bereinige die Felder hinter V1 @j @S...\n"
+"Unvollständige V2-@j-@S-Felder (vom V1-Journal) gefunden.\n"
+"Die Felder nach dem V1-@j-@S werden bereinigt...\n"
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
msgstr "Starte @j trotzdem"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
-msgstr "Recovery-Kennzeichen in Backup @S nicht gesetzt, @j wird trotzdem gestartet.\n"
+msgstr ""
+"Der Bitschalter fÃœr Wiederherstellung ist im Sicherungs-Superblock nicht\n"
+"gesetzt, das @j wird daher trotzdem gestartet.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
msgstr ""
-"Sichere @j @i @b Information.\n"
+"Die Informationen des Journal-Inodeblocks werden gesichert.\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:322
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1062,18 +1080,19 @@ msgstr ""
"ist %N; @s Null. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr "Resize_@i nicht aktiviert, aber die zu modifgizierende Inod ist nicht-Null."
+msgstr ""
+"Resize_@i ist nicht aktiviert, aber die zu modifgizierende @i ist nicht-Null."
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
-msgstr "@r ist kein @d. "
+msgstr "Resize-@i ist ungültig. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1083,7 +1102,7 @@ msgstr ""
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1092,14 +1111,14 @@ msgstr ""
"\tjetzt = %T) liegt in der Zukunft.\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
-msgstr "@S Hinweis für externen Superblock @s %X"
+msgstr "@S-Hinweis für externen Superblock @s %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
@@ -1107,220 +1126,237 @@ msgstr ""
"Füge Verzeinishash-Hilfe zu @f hinzu.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:357
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
-msgstr "Prüfsumme von @g -Deskriptor %g ist ungültig. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
+msgstr "Die Prüfsumme des @g-Deskriptors %g ist %04x, sie sollte %04y sein. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr "@g -Deskriptor %g ist als nicht initialisiert gekennzeichnet ohne eine gesetzte Eigenschaft.\n"
-
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:367
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr "Die @b @B von @g %g ist nicht initialisiert aber @i @B wird verwendet.\n"
+msgstr ""
+"@g-Deskriptor %g ist als nicht initialisiert gekennzeichnet ohne eine "
+"gesetzte Eigenschaft.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr "@g Deskriptor %g hat eine ungültige Anzahl ungenutzter Inodes von %b. "
+msgstr ""
+"@g-Deskriptor %g hat eine ungültige Anzahl ungenutzter Inodes von %b. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
-msgstr "Die letzte @g @b @B ist nicht initialisiert. "
+msgstr "Die letzte Gruppen-Blockbitmap ist nicht initialisiert. "
-#: e2fsck/problem.c:382
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
-msgstr "Journaltransaktion %i war beschädigt, die Wiederholung wurde abgegrochen.\n"
+msgstr ""
+"Journaltransaktion %i war beschädigt, die Wiederholung wurde abgegrochen.\n"
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr "Die Kennung test_fs wurde gesetzt (und ext4 ist verfügbar). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:391
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
"Der Zeitpunkt des letzten Einhängens von @S liegt in der Zukunft.\n"
-"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-Uhr) "
+"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-"
+"Uhr) "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:397
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
"Der Zeitpunkt des letzten Schreibens von @S liegt in der Zukunft.\n"
-"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-Uhr) "
+"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-"
+"Uhr) "
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr "Die Prüfsumme eines oder mehrerer @g -Deskriptoren ist ungültig. "
+msgstr "Die Prüfsumme eines oder mehrerer @g-Deskriptoren ist ungültig. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:405
msgid "Setting free @is count to %j (was %i)\n"
msgstr "Setze die Anzahl der freien Inodes auf %j (war %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:410
msgid "Setting free @bs count to %c (was %b)\n"
msgstr "Setze die Anzahl der freien Blöcke auf %c (war %b)\n"
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-#: e2fsck/problem.c:418
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
-msgstr ""
-"Verstecke @q Inodes.\n"
-"\n"
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr "Quota-Inode %i (%Q) wird versteckt.\n"
#. @-expanded: superblock has invalid MMP block.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:420
msgid "@S has invalid MMP block. "
-msgstr "@S hat einen ungültigen MMP Block. "
+msgstr "der @S hat einen ungültigen MMP-Block. "
#. @-expanded: superblock has invalid MMP magic.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:425
msgid "@S has invalid MMP magic. "
-msgstr "@S besitzt eine falsche MMP Magic number. "
+msgstr "der @S besitzt eine falsche MMP-Kennung. "
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr "ext2fs_open2: %m\n"
-#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr "ext2fs_check_desc: %m\n"
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
-msgstr "Durchgang 1: Prüfe @is, @bs, und Größen\n"
+msgstr "Durchgang 1: Prüfe @is, @bs und Größen\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:439
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "@r ist kein @d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr "@r hat dtime gesetzt (vielleicht durch ein zu altes mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:449
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
-msgstr "Reservierte @i %i %Q hat einen falschen Modus. "
+msgstr "Reservierte @i %i (%Q) hat einen ungültigen Modus. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
-msgstr "@D @i %i hat \"zero dtime\". "
+msgstr "dtime in @D @i %i ist Null. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "@i %i ist in Benutzung, aber hat dtime gesetzt. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
-msgstr "@i %i ist ein @z @d. "
+msgstr "@i %i ist ein Verzeichnis mit Länge Null. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
-msgstr "@g %g's @b @B auf %b @C.\n"
+msgstr ""
+"die Blockbitmap von @g %g auf %b überschneided sich mit einem anderen FS-"
+"Block.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
-msgstr "@g %g's @i @B auf %b @C.\n"
+msgstr ""
+"die @i-@B von @g %g bei %b überschneided sich mit einem anderen FS-Block.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
-msgstr "@g %g's @i Tabelle auf %b @C.\n"
+msgstr ""
+"die @i-Tablle von Gruppe %g bei %b steht in Konflikt mit einem anderen "
+"Dateisystemblock.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
-msgstr "@g %g's @b @B (%b) ist ungültig. "
+msgstr "die @b-@B (%b) von @g %g ist ungültig. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
-msgstr "@g %g's @i @B (%b) ist ungültig. "
+msgstr "die @i-@B (%b) von @g %g ist ungültig. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
-msgstr "@i %i, i_size ist %Is, @s %N. "
+msgstr "@i %i, i_size ist %Is, sollte %N sein. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
-msgstr "@i %i, i_@bs ist %Ib, @s %N. "
+msgstr "@i %i, i_@bs ist %Ib, sollte %N sein. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
-msgstr "@I @b #%B (%b) in @i %i. "
+msgstr "illegaler %B (%b) in @i %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
-msgstr "@b #%B (%b) überlappt @f metadata in @i %i. "
+msgstr "%B (%b) überlappt @f-Metadaten in @i %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
-msgstr "@i %i hat unzulässigen @b(s). "
+msgstr "@i %i hat unzulässige(n) Block/Blöcke. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Zu viele unzulässige @bs in @i %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
-msgstr "@I @b #%B (%b) in bad @b @i. "
+msgstr "@I %B (%b) in ungültiger @b-@i. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
-msgstr "Bad @b @i hat unzulässigen @b(s). "
+msgstr "Bad-@b @i hat unzulässige(n) Block/Blöcke. "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "Doppelter oder unzulässiger @b in Gebrauch!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr "Bad @b %b benutzt als bad @b @i indirekt @b. "
+msgstr ""
+"Ungültiger @b %b wird benutzt als indirekter Block der Badblock-Inode. "
#. @-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:544
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1328,857 +1364,909 @@ msgid ""
"in the @f.\n"
msgstr ""
"\n"
-"Defekter @b @i ist wahrscheinlich beschädigt worden. Sie sollten\n"
-"nun eher innehalten und „e2fsck -c“ ausführen, um nach defekten\n"
-"Blöcken in @f zu suchen.\n"
+"Die Badblock-Indode ist wahrscheinlich beschädigt worden. Sie sollten\n"
+"nun innehalten und „e2fsck -c“ ausführen, um nach defekten Blöcken in\n"
+"dem @f zu suchen.\n"
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:551
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
"\n"
-"Wenn der @b wirklich defekt ist, kann der @f nicht repariert werden.\n"
+"Wenn der @b wirklich defekt ist, kann das @f nicht repariert werden.\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:556
+#: e2fsck/problem.c:568
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 ""
-"Sie können @b von der @b - Liste löschen \n"
-"und hoffen das @b wirklich in Ordnung ist, es \n"
-"gibt aber KEINE GARANTIEN.\n"
+"Sie können diesen @b von der Liste der defekten Blöcke löschen\n"
+"und hoffen, das dieser wirklich in Ordnung ist, es gibt aber\n"
+"KEINE GARANTIEN.\n"
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
-msgstr "Der primäre @S (%b) ist auf der bad @b Liste.\n"
+msgstr "Der primäre @S (%b) ist auf der Liste der defekten Blöcke.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Block %b im primären Deskriptor @g ist auf der bad @b Liste\n"
+msgstr ""
+"Block %b im primären Deskriptor @g ist auf der Liste der defekten Blöcke\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:573
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
-msgstr "Warnung: Gruppe %g's @S (%b) ist ungültig.\n"
+msgstr "Warnung: der @S von Gruppe %g (%b) ist defekt.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr "Warnung: Gruppe %g's Kopie vom Deskriptor @g hat einen bad @b (%b).\n"
+msgstr ""
+"Warnung: die Kopie des Gruppen-Deskriptors von Gruppe %g hat einen defekten "
+"Block (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr "Programmfehler? @b #%b verlangt ohne Grund in process_bad_@b.\n"
+msgstr "Programmfehler? @b #%b wird ohne Grund in process_bad_@b verlangt.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:590
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
-msgstr "@A %N grenzt an @b(s) in @b @g %g for %s: %m\n"
+msgstr ""
+"@A %N zusammenhängenende(m/n) Block/Blöcken in der @b-@g %g für %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
-msgstr "@A @b Puffer zum Verschieben %s\n"
+msgstr "@A einen @b-Puffer zum Verschieben von %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
-msgstr "Verschiebe @g %g's %s von %b nach %c...\n"
+msgstr "Verschiebe Gruppe %g's %s von %b nach %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Verschiebe @g %g's %s nach %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
-msgstr "Warnung: kann @b %b von %s: %m nicht lesen\n"
+msgstr "Warnung: @b %b von %s konnte nicht gelesen werden: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
-msgstr "Warnung: kann @b %b von %s: %m nicht schreiben\n"
+msgstr "Warnung: @b %b von %s konnte nicht geschrieben werden: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:620 e2fsck/problem.c:1455
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
-msgstr "@A @i @B (%N): %m\n"
+msgstr "@A die @i-@B (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:625
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
-msgstr "@A @i @B (%N): %m\n"
+msgstr "@A die @i-@B (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
-msgstr "@A icount link information: %m\n"
+msgstr "@A die „icount link information“: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
-msgstr "@A @d @b array: %m\n"
+msgstr "@A das @d-@b-Feld: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
-msgstr "Fehler während der Suche @is (%i): %m\n"
+msgstr "Fehler während des Durchsuchens der @is (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
-msgstr "Fehler beim Iterieren über @bs in @i %i: %m\n"
+msgstr "Fehler beim Iterieren über die Blöcke in @i %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr "Fehler beim Speichern von @i count Informationen (@i=%i, count=%N): %m\n"
+msgstr ""
+"Fehler beim Speichern der @i Anzahl-Informationen (@i=%i, count=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr "Fehler beim Speichern @d @b Informationen (@i=%i, @b=%b, num=%N): %m\n"
+msgstr ""
+"Fehler beim Speichern der @d-@b-Informationen (@i=%i, @b=%b, num=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:661
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Fehler beim Lesen von @i %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
-msgstr "@i %i hat Imagic-Flag gesetzt. "
+msgstr "@i %i hat den Imagic-Bitschalter gesetzt. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Spezielle (@v/socket/fifo/symlink) Datei (@i %i) hat immutable\n"
-"oder append-only Flag gesetzt. "
+"Spezielle (@v/socket/fifo/symlink) Datei (@i %i) hat den Bitschalter für\n"
+"unveränderbar oder nur-anängen gesetzt. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:680
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr "@i %i hat @cion Flag gesetzt auf @f ohne @cion Unterstützung. "
+msgstr ""
+"@i %i hat den Bitschalter für @c gesetzt auf einem @f ohne Unterstützung "
+"dafür. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
-msgstr ""
-"Spezielle (@v/socket/fifo/symlink) Datei (@i %i) hat immutable\n"
-"oder append-only Flag gesetzt. "
+msgstr "Spezielle (@v/socket/fifo) @i %i hat die Größe Null. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
-msgstr "@i %i ist in Benutzung, aber hat dtime gesetzt. "
+msgstr "@j %i wird nicht verwendet, aber enthält Daten. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "@j ist keine reguläre Datei. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
-msgstr "@i %i war Teil der orphaned @i Liste. "
+msgstr "@i %i war Teil der Liste verwaister Inodes. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:711
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "@is, die Teile einer defekten Liste mit verwaisten Links waren. "
+msgstr ""
+"@is gefunden, die Teil einer defekten verketteten Liste von verwaisten @is "
+"waren. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
-msgstr "@A icount structure: %m\n"
+msgstr "@A die refcount-Structure (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
-msgstr "Fehler beim Lesen @a @b %b for @i %i. "
+msgstr "Fehler beim Lesen des Blocks für erweiterte Attribute %b f @i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
-msgstr "@i %i hat defekten @a @b %b. "
+msgstr "@i %i hat einen defekten erweiterte-Attribute-Block %b. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
-msgstr "Fehler beim Lesen @a @b %b (%m). "
+msgstr "Fehler beim Lesen des Blocks für erweiterte Attribute (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
-msgstr "@a @b %b hat den Referenzzähler %r, richtig wäre %N. "
+msgstr "Der Referenzzähler des Blocks für @a %b ist %r, richtig wäre %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
-msgstr "Fehler beim Schreiben @a @b %b (%m). "
+msgstr "Fehler beim Schreiben des Blocks für @a %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
-msgstr "@a @b %b hat h_blocks > 1. "
+msgstr "der Block für @a %b hat h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
-msgstr "@A @a @b %b. "
+msgstr "@A den Block für erweiterte Attribute %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr "@a @b %b ist defekt (allocation collision). "
+msgstr "der @b für @a %b ist defekt (Kollision der Platzanforderungen). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "@a @b %b ist defekt (ungültiger Name). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
-msgstr "@a @b %b ist defekt (ungültiger Wert). "
+msgstr "der @b für @a %b ist defekt (ungültiger Wert). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "@i %i ist zu groß. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:775
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
-msgstr "@b #%B (%b) macht @d zu groß. "
+msgstr "%B (%b) macht @d zu groß. "
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
msgstr "@b #%B (%b) macht die Datei zu groß. "
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
msgstr "@b #%B (%b) macht den Symlink zu groß. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr "@i %i hat INDEX_FL Flag auf @f gesetzt ohne HTREE-Unterstützung.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
-msgstr "@i %i hat INDEX_FL flag gesetzt, ist aber kein @d.\n"
+msgstr "@i %i hat den INDEX_FL-Bitschalter gesetzt, ist aber kein @d.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
-msgstr "@h %i hat einen unvollständigen root node.\n"
+msgstr "@h %i hat einen unvollständigen Wurzelknoten („root node“).\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
-msgstr "@h %i hat eine nicht unterstützte hash-Version (%N)\n"
+msgstr "@h %i hat eine nicht unterstützte Hash-Version (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr "@h %i benutzt einen nicht unterstützten htree root node flag.\n"
+msgstr ""
+"@h %i benutzt einen nicht unterstützten Bitschalter für einen Htree-"
+"Wurzelknoten.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
msgstr ""
-"Defekter @b @i hat einen indirekten @b (%b), der mit\n"
-"den @f Metadaten in Konflikt steht. "
+"der @i für defekte Blöcke hat einen indirekten @b (%b), der mit\n"
+"den @f-Metadaten in Konflikt steht. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:826
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "Erzeugung von Vergrösserungs-@i scheiterte: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr "@h %i hat eine ungültige Extragröße (%IS)\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr "ein erweitertes Attribut in @i %i hat eine ungültige namelen von %N\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr ""
+"ein erweitertes Attribut in @i %i hat einen ungültigen Werteversatz von %N\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr ""
+"ein erweitertes Attribut in @i %i hat einen ungültigen Werteblock von %N "
+"(muß 0 sein)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr ""
+"ein erweitertes Attribut in @i %i hat eine ungültige Wertegröße von %N\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
-msgstr "@a in %i hat einen @n Hashwert von (%N)\n"
+msgstr "ein erweitertes Attribut in @i %i hat den ungültigen Hash %N\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr "@i ist ein %It aber es sieht so aus, als ob es tatsächlich ein Verzeichnis ist.\n"
+msgstr ""
+"@i %i ist ein %It, aber es sieht so aus, als ob es tatsächlich ein "
+"Verzeichnis ist.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
-msgstr "Fehler beim Iterieren über Baum @x in @i %i: %m\n"
+msgstr "Fehler beim Iterieren über den @xs-Baum @x in @i %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
msgstr ""
-"Das Iterieren der Extents in @i %i scheiterte\n"
+"Das Iterieren der Erweiterungen (extents) in @i %i scheiterte\n"
"\t(op %s, blk %b, lblk %c): %m\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:877
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
msgstr ""
-"@i %i hat eine @n Erweiterung\n"
+"@i %i hat eine @ne Erweiterung\n"
"\t(logischer @b %c, @n physischer @b %b, Länge %N)\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
-"@i %i hat eine @n Erweiterung\n"
+"@i %i hat eine ungültige Erweiterung\n"
"\t(logischer @b %c, physischer @b %b, @n Länge %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr "@i %i hat EXTENTS_FL Kennung auf einem @f ohne Unterstützung für Erweiterungen.\n"
+msgstr ""
+"@i %i hat EXTENTS_FL-Bitschalter gesetzt, obwohl das @f Erweiterungen nicht "
+"unterstützt.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr "@i %i besitzt das Erweiterungsformat, aber dem @S fehlt die Eigenschaft EXTENTS\n"
+msgstr ""
+"@i %i besitzt das Erweiterungsformat, aber dem @S fehlt die Eigenschaft "
+"EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
-msgstr "@i %i fehlt EXTENT_FL, aber hat das Format einer Erweiterungs-@i\n"
+msgstr "der @i %i fehlt EXTENT_FL, sie hat aber das Format einer Erweiterung\n"
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
-msgstr "Schneller Symlink %i hat EXTENT_FL gesetzt. "
+msgstr "In schnellem Symlink %i ist EXTENT_FL gesetzt. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
-"@i %i hat unregelmässige Erweitertungen\n"
+"@i %i hat unregelmässige Erweiterungen\n"
"\t(@n logischer @b %c, physischer @b %b, Länge %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:911
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
-msgstr "@i %i hat einen ungültigen Extent-Knoten (blk %b, lblk %c)\n"
-
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:915
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr " in @i %i sollte EOFBLOCKS_FL nicht gesetzt sein (Größe %Is, lblk %r)\n"
+msgstr "@i %i hat einen ungültigen Erweiterungs-Knoten (blk %b, lblk %c)\n"
#. @-expanded: Error converting subcluster block bitmap: %m\n
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
-msgstr "Fehler beim umwandeln der Subcluster-Bitmap: %m\n"
+msgstr "Fehler beim Umwandeln der Subcluster-Blockbitmap: %m\n"
#. @-expanded: quota inode is not regular file.
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
msgid "@q @i is not regular file. "
msgstr "die @q-@i ist keine reguläre Datei. "
#. @-expanded: quota inode is not in use, but contains data.
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
msgid "@q @i is not in use, but contains data. "
-msgstr "@q %i wird nicht benutzt, enthält aber Daten. "
+msgstr "@q-@i wird nicht benutzt, enthält aber Daten. "
#. @-expanded: quota inode is visible to the user.
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
msgid "@q @i is visible to the user. "
-msgstr "@q @i ist sichtbar für den Benutzer. "
+msgstr "die @q-@i ist sichtbar für den Benutzer. "
#. @-expanded: The bad block inode looks invalid.
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
msgid "The bad @b @i looks @n. "
-msgstr "Die „Bad Blocks“-Inode sieht ungültig aus. "
+msgstr "Die Inode für defekte Blöcke sieht ungültig aus. "
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"@i %i hat eine Erweitertung der Länge Null\n"
+"\t(@n logischer @b %c, physischer @b %b)\n"
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+#, fuzzy
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"@i %i hat eine @ne Erweiterung\n"
+"\t(logischer @b %c, @n physischer @b %b, Länge %N)\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:948
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
"\n"
-"Doppelter @bs gefunden... starte Scan nach doppelten @b.\n"
-"Durchgang 1B: Suche nach doppelten/defekten @bs\n"
+"Führe zusätzliche Läufe durch, um die von mehr als einer @i beanspruchten "
+"Blöcke zu klären...\n"
+"Durchgang 1B: Suche nach mehrfach beanspruchten Blöcken\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:954
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
-msgstr "@m @b(s) in @i %i:"
+msgstr "@me(r) Block/Blöcke in @i %i:"
-#: e2fsck/problem.c:969
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
-msgstr "Fehlen beim Prüfen von Inodes (%i): %m\n"
+msgstr "Fehlen beim Prüfen der Inodes (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
-msgstr "@A @i @B (inode_dup_map): %m\n"
+msgstr "@A die @i-@B (inode_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
-msgstr "Fehler beim Durchlaufen der @bs in @i %i (%s): %m\n"
+msgstr "Fehler beim Iterieren über die Blöcke in @i %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:984 e2fsck/problem.c:1299
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr "Fehler bei der Anpassung des refcount für @a @b %b (@i %i): %m\n"
+msgstr ""
+"Fehler bei der Anpassung des Referenzzählers des Blocks für @a %b (@i %i): "
+"%m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:989
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr "Durchgang 1C: Prüfe Verzeichnisse nach @is mit doppelten @bs.\n"
+msgstr ""
+"Durchgang 1C: Durchsuche Verzeichnisse nach @is mit mehrfach belegten "
+"Blöcken.\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
-msgstr "Durchgang 1D: Gleiche doppelte @bs ab\n"
+msgstr "Durchgang 1D: Gleiche mehrfach belegte Blöcke ab\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
-"Datei %Q (@i #%i, Modifikationszeitpunkt %IM) \n"
-" hat %B doppelte @b(s), gemeinsam genutzt mit %N Datei(en):\n"
+"Datei %Q (@i #%i, Änderungszeit %IM) \n"
+" hat %r mehrfach belegte(n) Block/Blöcke, gemeinsam genutzt mit %N "
+"Datei(en):\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:1006
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
-msgstr "\t%Q (@i #%i, mod time %IM)\n"
+msgstr "\t%Q (@i #%i, Änderungszeit %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
-msgstr "\t<@f metadata>\n"
+msgstr "\t<@f-Metadaten>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
msgstr ""
-"(es gibt %N @is, die doppelte/defekte @bs enthalten.)\n"
+"(es gibt %N @is, die mehrfach belegte Blöcke enthalten.)\n"
"\n"
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-"Duplizierte @bs bereits neu zugeordnet bzw. geklont.\n"
+"mehrfach belegte Blöcke wurden bereits neu zugeordnet bzw. geklont.\n"
"\n"
-#: e2fsck/problem.c:1034
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
-msgstr "Kann die Datei %m nicht klonen.\n"
+msgstr "Kann eine Datei nicht klonen: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
-msgstr "Durchgang 2: Prüfe @d Struktur\n"
+msgstr "Durchgang 2: Prüfe die @dstruktur\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
-msgstr "Falsche @i Nummer für „.“ in @d @i %i.\n"
+msgstr "Falsche @inummer für „.“ in Verzeichnisinode %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
-msgstr "@E hat falsche @i #: %Di.\n"
+msgstr "@E hat falsche @i-Nr.: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
-msgstr "@E hat @D/unbenutzt @i %Di. "
+msgstr "@E hat gelöschte/unbenutzt @i %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "@E @L nach „.“ "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr "@E zeigt auf @i (%Di) in einem defekten @b.\n"
+msgstr "@E zeigt auf eine @i (%Di) in einem defekten @b.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
-msgstr "@E @L nach @d %P (%Di).\n"
+msgstr "@E @L mit @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
-msgstr "@E @L zur @r.\n"
+msgstr "@E @L mit der @r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "@E hat ein unzulässiges Zeichen im Namen.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "Fehlende „.“ in @d @i %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
-msgstr "Fehlende „..“ in @d @i %i.\n"
+msgstr "Fehlender Eintrag „..“ in @dinode %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr "Erster @e „%Dn“ (inode=%Di) in @d @i %i (%p) @s „.“\n"
+msgstr "Der erste @e „%Dn“ (@i=%Di) in @d-@i %i (%p) sollte „.“ sein\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
-msgstr "Zweiter @e „%Dn“ (inode=%Di) in @d @i %i @s „..“\n"
+msgstr "Der zweite @e „%Dn“ (inode=%Di) in @d-@i %i sollte „..“ sein\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
-msgstr "i_faddr @F %IF, @s null.\n"
+msgstr "i_faddr @F %IF, sollte Null sein.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
-msgstr "i_file_acl @F %If, @s null.\n"
+msgstr "i_file_acl @F %If, sollte Null sein.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
-msgstr "i_dir_acl @F %Id, @s null.\n"
+msgstr "i_dir_acl @F %Id, sollte Null sein.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
-msgstr "i_frag @F %N, @s null.\n"
+msgstr "i_frag @F %N, sollte Null sein.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "i_fsize @F %N, @s null.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
-msgstr "@i %i (%Q) hat einen falschen Modus (%Im).\n"
+msgstr "@i %i (%Q) hat einen ungültigen Modus (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
-msgstr "@d @i %i, @b %B, Offset %N: @d defekt\n"
+msgstr "@d-@i %i, @b %B, Offset %N: @d defekt\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
-msgstr "@d @i %i, @b %B, offset %N: Dateiname zu lang\n"
+msgstr "@d-@i %i, @b %B, offset %N: Dateiname zu lang\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
-msgstr "@d @i %i hat einen nicht zugewiesenen @b #%B. "
+msgstr "@d-@i %i hat einen nicht zugewiesenen %B. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "„.“ @d @e in @d @i %i ist nicht NULL-terminiert\n"
+msgstr "@d-@e „.“ in @d-@i %i ist nicht NULL-terminiert\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "„..“ @d @e in @d @i %i ist nicht NULL-terminiert\n"
+msgstr "@d-@e „..“ in @d-@i %i ist nicht NULL-terminiert\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
-msgstr "@i %i (%Q) ist ein @I Zeichen @v.\n"
+msgstr "@i %i (%Q) ist ein @I zeichenorientiertes Gerät.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
-msgstr "@i %i (%Q) ist ein @I @b @v.\n"
+msgstr "@i %i (%Q) ist ein @I blockorientiertes Gerät.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
-msgstr "@E ist ein doppelter „.“ @e.\n"
+msgstr "@E ist ein doppelter @e für „.“.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
-msgstr "@E ist ein doppelter „..“ @e.\n"
+msgstr "@E ist ein doppelter @e für „..“.\n"
-#: e2fsck/problem.c:1180 e2fsck/problem.c:1480
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "Interner Fehler: kann dir_info für %i nicht finden.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
-msgstr "@E hat rec_len von %Dr, sollte %N sein.\n"
+msgstr "@E hat eine rec_len von %Dr, sollte %N sein.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
-msgstr "@A icount structure: %m\n"
+msgstr "@A die icount-Structur: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
-msgstr "Fehler beim Durchlaufen der @d @bs: %m\n"
+msgstr "Fehler beim Durchlaufen der @dblöcke: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
-msgstr "Lesefehler @d @b %b (@i %i): %m\n"
+msgstr "Fehler beim Lesen des @dblocks %b (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
-msgstr "Schreibfehler @d @b %b (@i %i): %m\n"
+msgstr "Fehler beim Schreiben von @dblock %b (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
-msgstr "@A neu @d @b for @i %i (%s): %m\n"
+msgstr "@A einen neuen @dblock für @i %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Fehler bei der Freigabe von @i %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
-msgstr "Verzeichniseintrag für „.“ in %p (%i) ist gross.\n"
+msgstr "Verzeichniseintrag für „.“ in %p (%i) ist groß.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "@i %i (%Q) ist ein @I FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
-msgstr "@i %i (%Q) ist ein @I Socket.\n"
+msgstr "@i %i (%Q) ist ein illegaler Socket.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
-msgstr "Setze Dateitype für @E auf %N.\n"
+msgstr "Setze den Dateitype für @E auf %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "@E hat einen falschen Dateityp (war %Dt, sollte %N sein).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "@E hat Dateityp gesetzt.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
-msgstr "@E hat einen Namen der Länge Null..\n"
+msgstr "@E hat einen Namen der Länge Null.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "Symlink %Q (@i #%i) is invalid.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "@a @b @F ist falsch (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr "@f enthält große Dateien, aber das LARGE_FILE Flag in @S ist nicht gesetzt.\n"
+msgstr ""
+"@f enthält große Dateien, aber im @S den Bitschalter LARGE_FILE nicht "
+"gesetzt.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
-msgstr "@p @h %d: Node (%B) nicht referenziert\n"
+msgstr "@p @h %d: %B ist nicht referenziert\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
-msgstr "@p @h %d: Node (%B) doppelt referenziert\n"
+msgstr "@p @h %d: %B doppelt referenziert\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
msgstr "@p @h %d: %B hat ungültigen Minimumhash\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
msgstr "@p @h %d: %B hat ungültigen Maximalhash\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
-msgstr "Invalid @h %d (%q). "
+msgstr "Ungültige @h %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
-msgstr "@p @h %d (%q): bad @b number %b.\n"
+msgstr "@p @h %d (%q): falsche Blocknummer %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1304
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
-msgstr "@p @h %d: root node is invalid\n"
+msgstr "@p @h %d: Wurzelknotenist ungültig\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr "@p @h %d: %B hat eine ungültige Begrenzung (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
-msgstr "@p @h %d: %B hat einen ungültigen Zähler (%N)\n"
+msgstr "@p @h %d: %B hat einen ungültigen Zählerstand (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr "@p @h %d: %B hat eine unsortierte Hashtabelle\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
-msgstr "@p @h %d: %B has eine ungültige Tiefe (%N)\n"
+msgstr "@p @h %d: %B hat eine ungültige Tiefe (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
-msgstr "Doppelte @E gefunden. "
+msgstr "Doppelter @E gefunden. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2190,216 +2278,219 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
"\n"
msgstr ""
-"Doppelte @e '%Dn' gefunden.\n"
-"\tMarkiere %p (%i) für die Neuerstellung.\n"
+"Doppelter @e „%Dn“ gefunden.\n"
+"\t%p (%i) wird für die Neuerstellung markiert.\n"
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
-msgstr "i_blocks_hi @F %N, @s zero.\n"
+msgstr "i_blocks_hi @F %N, sollte Null sein.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "Unerwarteter @b in @h %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr "@i %i wurde in @g %g gefunden, für die _INODE_UNINIT gesetzt ist.\n"
+msgstr "@E referenziert @i %Di in @g %g, für die _INODE_UNINIT gesetzt ist.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "@i %i wurde im Bereich ungenutzter Inodes von @g %g gefunden.\n"
+msgstr ""
+"@E verweist auf @i %Di, die im Bereich ungenutzter Inodes von @g %g zu "
+"finden ist.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr "i_file_acl_hi @F %N, sollte Null sein.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
-msgstr "Durchgang 3: Prüfe @d Verknüpfungen\n"
+msgstr "Durchgang 3: Prüfe @d-Verknüpfungen\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "@r nicht zugeordnet. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
-msgstr "Kein Platz in @l @d. "
+msgstr "Kein Platz im Verzeichnis @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
-msgstr "Nicht verbundene @d @i %i (%p)\n"
+msgstr "Nicht verbundene @d-@i %i (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/@l nicht gefunden. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
-msgstr "„..“ in %Q (%i) ist %P (%j), @s %q (%d).\n"
+msgstr "„..“ in %Q (%i) ist %P (%j), sollte %q (%d) sein.\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
-msgstr "Falscher oder fehlender /@l. Wiederverbinden nicht möglich.\n"
+msgstr ""
+"Falsches oder fehlendes Verzeichnis /@l. Wiederverbinden nicht möglich.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
-msgstr "Erweitern nicht möglich /@l: %m\n"
+msgstr "Erweitern von /@l nicht möglich: %m\n"
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
-msgstr "Wiederverbinden nicht möglich %i: %m\n"
+msgstr "Wiederverbinden von %i nicht möglich: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "Fehler während der Suche nach /@l: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_@b: %m während des Versuches /@l @d zu erzeugen.\n"
+msgstr "ext2fs_new_@b: %m während des Versuches, @d /@l zu erzeugen.\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_@i: %m während des Versuches /@l @d zu erzeugen.\n"
+msgstr "ext2fs_new_@i: %m während des Versuches, @d /@l zu erzeugen.\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr "ext2fs_new_dir_@b: %m während des Versuches /@l @d zu erzeugen.\n"
+msgstr "ext2fs_new_dir_@b: %m während des Versuches, @d /@l zu erzeugen.\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr "ext2fs_write_dir_@b: %m während des Schreibens von @d @b für /@l\n"
+msgstr "ext2fs_write_dir_@b: %m während des Schreibens des @d-@bs für /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
-msgstr "Fehler während der Einstellung von @i count auf @i %i\n"
+msgstr "Fehler während des Anpassens der @i-Anzahl auf @i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
"\n"
msgstr ""
-"Konnte Parent von @i %i: %m nicht reparieren\n"
+"Konnte den Eigentümer von @i %i nicht reparieren: %m\n"
"\n"
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
"\n"
msgstr ""
-"Parent von @i %i konnte nicht repariert werden: \n"
-"parent @d nicht gefunden.\n"
+"Eigentümer von @i %i konnte nicht repariert werden: \n"
+"@deintrag des Eigentümers wurde nicht gefunden.\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1460
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
-msgstr "Fehler beim Erzeugen des root @d (%s): %m\n"
+msgstr "Fehler beim Erzeugen des Wurzelverzeichnisses (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
-msgstr "Fehler beim Erzeugen des /@l @d (%s): %m\n"
+msgstr "Fehler beim Erzeugen des Verzeichnisses /@l (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
-msgstr "@r ist kein @d; breche ab.\n"
+msgstr "die Wurzelinode ist kein @d; Abbruch.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
-msgstr "Kann ohne @r nicht fortsetzen.\n"
+msgstr "Ohne Wurzelinode ist weiteres Arbeiten nicht möglich.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1485
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/@l ist kein @d (ino=%i)\n"
-#: e2fsck/problem.c:1492
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Durchgang 3A: Optimiere Verzeichnisse\n"
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "dirs_to_hash Iterator konnte nicht erzeugt werden: %m\n"
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Verzeichnis %q (%d) konnte nicht optimiert werden: %m\n"
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Optimiere Verzeichnisse: "
-#: e2fsck/problem.c:1524
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Durchgang 4: Überprüfe die Referenzzähler\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
-msgstr "@I @o @i %i in @S. "
+msgstr "@ue @I %i @z. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
-msgstr "@u @i %i\n"
+msgstr "@ue @i %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
-msgstr "@i %i Referenzzähler ist %Il, @s %N. "
+msgstr "Der Referenzzähler von @i %i ist %Il, @s aber %N sein. "
#. @-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:1543
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2407,143 +2498,155 @@ msgid ""
msgstr ""
"WARNUNG: PROGRAMMIERFEHLER IN E2FSCK!\n"
"\tODER EIN TROTTEL (SIE) PRÜFT EIN EINGEHÄNGTES (AKTIVES) DATEISYSTEM.\n"
-"@i_link_info[%i] ist %N, @i.i_links_count ist %Il. Sie sollten identisch sein!\n"
+"@i_link_info[%i] ist %N, @i.i_links_count ist %Il. Sie sollten identisch "
+"sein!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1553
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
-msgstr "Durchgang 5: Überprüfe @g Zusammenfassung\n"
+msgstr "Durchgang 5: Überprüfe die zusammengefasste Gruppeninformation\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "Auffüllbyte am Ende von @i @B ist nicht gesetzt. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "Auffüllbyte am Ende von @b @B ist nicht gesetzt. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
-msgstr "@b @B differieren: "
+msgstr "Unterschiede in der @b-@B: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1588
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
-msgstr "@i @B differieren: "
+msgstr "Unterschiede in der @i-@B: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1608
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Die Anzahl freier @is ist falsch für @g #%g (%i, gezählt=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Die Anzahl Verzeichnisse ist falsch für @g #%g (%i, gezählt=%j).\n"
+msgstr "Die Anzahl der Verzeichnisse ist falsch für @g #%g (%i, gezählt=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "Die Anzahl freier @is ist falsch (%i, gezählt=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr "Die Anzahl freier Blöcke in @g #%g ist falsch (%b, gezählt=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "Die Anzahl freier Blöcke ist falsch (%b, gezählt=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1633
-msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
-msgstr "PROGRAMMIERFEHLER: @f (#%N) @B Endpunkte (%b, %c) passen nicht zu den berechneten @B Endpunkten (%i, %j)\n"
+#: e2fsck/problem.c:1659
+msgid ""
+"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
+"endpoints (%i, %j)\n"
+msgstr ""
+"PROGRAMMIERFEHLER: Dateisystem (#%N) @B-Endpunkte (%b, %c) passen nicht mit "
+"den berechneten @B-Endpunkten (%i, %j) überein\n"
-#: e2fsck/problem.c:1639
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
-msgstr "Interner Fehler: fudging end of bitmap (%N)\n"
+msgstr "Interner Fehler: das Ende der Bitmap (%N) wird erraten\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Fehler beim hineinkopieren von @i @B: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
-msgstr "Fehler beim hineinkopieren von @b @B: %m\n"
+msgstr "Fehler beim Hineinkopieren der Ersatz-Blockbitmap: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1674
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr "Blöcke von @g %g sind in Beutzung obwohl @g als BLOCK_UNINIT markiert ist\n"
+msgstr ""
+"Blöcke von @g %g sind in Beutzung, obwohl @g als BLOCK_UNINIT markiert ist\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr "@g %g @i(s) sind in Benutzung obwohl @g als INODE_UNINIT markiert ist\n"
+msgstr ""
+"Die @isw der @g %g sind in Benutzung, obwohl @g als INODE_UNINIT markiert "
+"ist\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1686
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
-msgstr "@j zurücksetzen"
+msgstr "@j wird wiederhergestellt"
+
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr "Quota-Info für Typ %N wird aktualisiert"
-#: e2fsck/problem.c:1805
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Unbenutzter Fehlercode (0x%x)!\n"
-#: e2fsck/problem.c:1905
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "IGNORIERT"
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "benutzter Speicher: %d, vergangende Zeit: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
-msgstr "Größe des Inode=%d\n"
+msgstr "Größe der Inode=%d\n"
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "beim Starten der Inodeprüfung"
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "während der Inodeprüfung"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "während des Aufrufs von ext2fs_block_iterate für Inode %d"
-#: e2fsck/super.c:209
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "während des Aufrufs von ext2fs_adjust_ea_refcount2 für Inode %d"
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Kürzen"
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Bereinigen"
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2556,15 +2659,15 @@ msgstr ""
"\t\t[-l|-L Bad_Blocks_Datei] [-C Dateideskriptor] [-j externes_Journal]\n"
"\t\t[-E erweiterte_Optionen] Gerät\n"
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
@@ -2575,8 +2678,7 @@ msgstr ""
" -c suche nach defekten Blöcken\n"
" -f erzwinge die Überprüfung auch wenn alles i.O. erscheint\n"
-#: e2fsck/unix.c:89
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2592,166 +2694,165 @@ msgstr ""
" -l bad_blocks_file zur Liste der defekten Blöcke hinzufügen\n"
" -L bad_blocks_file Liste der defekten Blöcke definieren\n"
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %u/%u Dateien (%0d.%d%% nicht zusammenhängend), %llu/%llu Blöcke\n"
-#: e2fsck/unix.c:139
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u Inode ist in Benutzung (%2.2f%%)\n"
+"%12u Inode ist in Benutzung (%2.2f%% von %u)\n"
msgstr[1] ""
"\n"
-"%u Inodes sind in Benutzung (%2.2f%%)\n"
+"%12u Inodes sind in Benutzung (%2.2f%% von %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u nicht zusammenhängende Datei (%0d.%d%%)\n"
-msgstr[1] "%8u nicht zusammenhängende Dateien (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u nicht zusammenhängende Datei (%0d.%d%%)\n"
+msgstr[1] "%12u nicht zusammenhängende Dateien (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u nicht zusammenhängendes Verzeichnis (%0d.%d%%)\n"
-msgstr[1] "%8u nicht zusammenhängende Verzeichnisse (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u nicht zusammenhängendes Verzeichnis (%0d.%d%%)\n"
+msgstr[1] "%12u nicht zusammenhängende Verzeichnisse (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
msgstr " # von Inodes mit ind/dind/tind Blöcken: %u/%u/%u\n"
-#: e2fsck/unix.c:158
-#, c-format
-msgid " Extent depth histogram: "
-msgstr " Erweiterungstiefe Histogramm: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogramm der Tiefe von Erweiterungen: "
-#: e2fsck/unix.c:167
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu Block wird benutzt (%2.2f%%)\n"
-msgstr[1] "%8llu Blöcke werden benutzt (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu Block wird benutzt (%2.2f%% von %llu)\n"
+msgstr[1] "%12llu Blöcke werden benutzt (%2.2f%% von %llu)\n"
-#: e2fsck/unix.c:170
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%u ungültiger Block\n"
-msgstr[1] "%u ungültige Blöcke\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u ungültiger Block\n"
+msgstr[1] "%12u ungültige Blöcke\n"
-#: e2fsck/unix.c:172
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u große Datei\n"
-msgstr[1] "%8u große Dateien\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u große Datei\n"
+msgstr[1] "%12u große Dateien\n"
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u reguläre Datei\n"
+"%12u reguläre Datei\n"
msgstr[1] ""
"\n"
-"%8u reguläre Dateien\n"
+"%12u reguläre Dateien\n"
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u Verzeichnis\n"
-msgstr[1] "%8u Verzeichnisse\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u Verzeichnis\n"
+msgstr[1] "%12u Verzeichnisse\n"
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u zeichenorientierte Gerätedatei\n"
-msgstr[1] "%8u zeichenorientierte Gerätedateien\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u zeichenorientierte Gerätedatei\n"
+msgstr[1] "%12u zeichenorientierte Gerätedateien\n"
-#: e2fsck/unix.c:181
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u Blockgerätedatei\n"
-msgstr[1] "%8u Blockgerätedateien\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u Blockgerätedatei\n"
+msgstr[1] "%12u Blockgerätedateien\n"
-#: e2fsck/unix.c:183
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u Fifo\n"
-msgstr[1] "%8u Fifos\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u Fifo\n"
+msgstr[1] "%12u Fifos\n"
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u Verknüpfung\n"
-msgstr[1] "%8u Verknüpfungen\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u Verknüpfung\n"
+msgstr[1] "%12u Verknüpfungen\n"
-#: e2fsck/unix.c:188
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolische Verknüpfung"
-msgstr[1] "%8u symbolische Verknüpfungen"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolische Verknüpfung"
+msgstr[1] "%12u symbolische Verknüpfungen"
-#: e2fsck/unix.c:190
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] " (%u schnelle symbolische Verknüpfung)\n"
msgstr[1] " (%u schnelle symbolische Verknüpfungen)\n"
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u Socket\n"
-msgstr[1] "%8u Sockets\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u Socket\n"
+msgstr[1] "%12u Sockets\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u Datei\n"
-msgstr[1] "%8u Dateien\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u Datei\n"
+msgstr[1] "%12u Dateien\n"
-#: e2fsck/unix.c:209 misc/badblocks.c:984 misc/tune2fs.c:1965 misc/util.c:147
-#: resize/main.c:251
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "bei der Prüfung, ob %s eingehängt ist."
-#: e2fsck/unix.c:227
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
-msgstr "Warnung! %s ist eingehängt.\n"
+msgid "Warning! %s is %s.\n"
+msgstr "Warnung! %s ist %s.\n"
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s ist eingehängt. "
+msgid "%s is %s.\n"
+msgstr "%s ist %s.\n"
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2759,8 +2860,7 @@ msgstr ""
"Fortsetzung nicht möglich, breche ab.\n"
"\n"
-#: e2fsck/unix.c:235
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2770,83 +2870,84 @@ msgid ""
msgstr ""
"\n"
"\n"
-"WARNUNG!!! Das Dateisystem ist eingehängt, Wenn Sie fortfahren, ***WERDEN***\n"
+"WARNUNG!!! Das Dateisystem ist eingehängt, Wenn Sie fortfahren, "
+"***WERDEN***\n"
"Sie ***SCHWERWIEGENDE*** Schäden am Dateisystem verursachen.\n"
"\n"
-#: e2fsck/unix.c:239
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Wirklich fortfahren"
-#: e2fsck/unix.c:241
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "Prüfung abgebrochen.\n"
-#: e2fsck/unix.c:323
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " enthält ein fehlerhaftes Dateisystem"
-#: e2fsck/unix.c:325
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " wurde nicht ordnungsgemäß ausgehängt"
-#: e2fsck/unix.c:327
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr "Eigenschaften des primären Superblocks unterscheiden sich vom Backup"
-#: e2fsck/unix.c:331
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " wurde %u mal ohne Überprüfung eingehängt"
-#: e2fsck/unix.c:338
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
-msgstr " hat einen in der Zukunft liegenden Zeitpunkt der letzten Püfung des Dateisystems"
+msgstr ""
+" hat einen in der Zukunft liegenden Zeitpunkt der letzten Püfung des "
+"Dateisystems"
-#: e2fsck/unix.c:344
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " wurde %u Tage ohne Überprüfung genutzt"
-#: e2fsck/unix.c:353
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", Prüfung erzwungen.\n"
-#: e2fsck/unix.c:386
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: sauber, %u/%u Dateien, %llu/%llu Blöcke"
-#: e2fsck/unix.c:404
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (Prüfung nach nächstem Einhängen)"
-#: e2fsck/unix.c:407
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (Prüfung nach nächstem Einhängen)"
-#: e2fsck/unix.c:409
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (Prüfung nach %ld Einhängevorgängen)"
-#: e2fsck/unix.c:559
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "Fehler: Kann /dev/null (%s) nicht öffnen\n"
-#: e2fsck/unix.c:628
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Invalid EA version.\n"
-#: e2fsck/unix.c:649
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Unbekannte erweiterte Option: %s\n"
-#: e2fsck/unix.c:674
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2855,55 +2956,55 @@ msgstr ""
"Syntaxfehler in der Konfigurationsdatei von e2fsck (%s, Zeile %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:743
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Fehler bei Überprüfung des Datei-Deskriptors %d: %s\n"
-#: e2fsck/unix.c:747
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr "Ungültiger „completion information“-Datei-Deskriptor"
-#: e2fsck/unix.c:762
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Nur eine der Optionen -p/-a, -n oder -y darf angegeben werden."
-#: e2fsck/unix.c:783
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "Die -t Option wird von dieser e2fsck-Version nicht unterstützt.\n"
-#: e2fsck/unix.c:814 e2fsck/unix.c:886 misc/tune2fs.c:799 misc/tune2fs.c:1088
-#: misc/tune2fs.c:1106
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Nicht möglich „%s“ aufzulösen"
-#: e2fsck/unix.c:865
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
msgstr "Die Optionen -n und -D schliessen sich gegenseitig aus."
-#: e2fsck/unix.c:870
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
msgstr "Die Optionen -n und -c schliessen sich gegenseitig aus."
-#: e2fsck/unix.c:875
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
msgstr "Die Optionen -n und -l/-L schliessen sich gegenseitig aus."
-#: e2fsck/unix.c:915
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
-msgstr "Die -c und -l/-L Optionen dürfen nicht gleichzeitig verwendet werden.\n"
+msgstr ""
+"Die -c und -l/-L Optionen dürfen nicht gleichzeitig verwendet werden.\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr "2FSCK_JBD_DEBUG \"%s\" ist keine Ganzzahl\n"
-#: e2fsck/unix.c:972
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2914,11 +3015,20 @@ msgstr ""
"Ungültiges nicht-numerisches Argument für -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1074 e2fsck/unix.c:1079
+#: e2fsck/unix.c:1129
+#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+"MMP Intervall ist %u Sekunden und die gesammte Wartezeit ist %u Sekunden.\n"
+"Bitte warten...\n"
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
msgstr "beim Prüfen des MMP-Blocks"
-#: e2fsck/unix.c:1081 misc/tune2fs.c:1899
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
@@ -2927,44 +3037,47 @@ msgstr ""
"starten Sie bitte:\n"
"„tune2fs -f -E clear_mmp {device}“\n"
-#: e2fsck/unix.c:1130
-#, c-format
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Fehler: ext2fs-Bibliotheks-Version ist zu alt!\n"
-#: e2fsck/unix.c:1138
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "bei der Programminitialisierung"
-#: e2fsck/unix.c:1149
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tBenutze %s, %s\n"
-#: e2fsck/unix.c:1161
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "Benötige ein Terminal für interaktive Reparaturen"
-#: e2fsck/unix.c:1200
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s versuche es mit Backup-Blöcken...\n"
-#: e2fsck/unix.c:1202
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Superblock ungültig"
-#: e2fsck/unix.c:1203
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Gruppen-Deskriptoren scheinen defekt zu sein..."
-#: e2fsck/unix.c:1215
+#: e2fsck/unix.c:1312
+#, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s beim Benutzen der Backup-Blöcke"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: es wird zum originalen Superblock zurück gekehrt\n"
-#: e2fsck/unix.c:1242
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2974,36 +3087,32 @@ msgstr ""
"von e2fsck (oder der Dateisystem-Superblock ist defekt).\n"
"\n"
-#: e2fsck/unix.c:1248
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "Könnte es eine Partion der Länge Null sein?\n"
-#: e2fsck/unix.c:1250
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Sie benötigen %s- oder root-Rechte für das Dateisystem.\n"
-#: e2fsck/unix.c:1255
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
-msgstr "Möglicherweise ist die Partition nicht vorhanden oder eine Swap-Partition?\n"
+msgstr ""
+"Möglicherweise ist die Partition nicht vorhanden oder eine Swap-Partition?\n"
-#: e2fsck/unix.c:1257
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"Ist das Dateisystem eingehängt or exklusiv von einem anderen Programm\n"
"\n"
"geöffnet worden?\n"
-#: e2fsck/unix.c:1260
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr "Ist das Gerät möglicherweise nicht vorhanden?\n"
-#: e2fsck/unix.c:1263
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -3011,81 +3120,71 @@ msgstr ""
"Laufwerk ist schreibgeschützt, nutzen Sie die -n Option\n"
"um es im Nur-Lesen-Modus zu prüfen.\n"
-#: e2fsck/unix.c:1327
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Neuere Version von e2fsck benötigt!"
-#: e2fsck/unix.c:1373
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "während der Prüfung des ext3-Journals für %s"
-#: e2fsck/unix.c:1384
-#, c-format
-msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
-msgstr "Warnung: Ãœberspringe Journal-Wiederherstellung, da das Dateisystem im Nur-Lesen-Modus ist.\n"
+#: e2fsck/unix.c:1489
+msgid ""
+"Warning: skipping journal recovery because doing a read-only filesystem "
+"check.\n"
+msgstr ""
+"Warnung: Ãœberspringe Journal-Wiederherstellung, da das Dateisystem im Nur-"
+"Lesen-Modus ist.\n"
-#: e2fsck/unix.c:1397
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "Superblock-Flags konntan auf %s nicht gesetzt werden\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "bei der Wiederherstellung des ext3-Journals von %s"
-#: e2fsck/unix.c:1428
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s besitzt nicht unterstützte Eigenschaft(en):"
-#: e2fsck/unix.c:1444
-msgid "Warning: compression support is experimental.\n"
-msgstr "Warnung: Die Kompressionsunterstützung ist experimentell.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s: Warnung: Die Kompressionsunterstützung ist experimentell.\n"
-#: e2fsck/unix.c:1449
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"Die Unterstützung für HTREE wurde in e2fsck nicht aktiviert,\n"
+"%s: e2fsck wurde ohne Unterstützung für HTREE kompiliert,\n"
"\taber das Dateisystem %s besitzt HTREE Verzeichnisse.\n"
-#: e2fsck/unix.c:1502
-msgid "while reading bad blocks inode"
-msgstr "beim Lesen des Bad-Block-Inodes"
-
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1605
#, c-format
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s: %s beim Lesen des Bad-Block-Inodes\n"
+
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Das verheißt nichts gutes, aber wir versuchen es trotzdem ..\n"
-#: e2fsck/unix.c:1543
-msgid "Couldn't determine journal size"
-msgstr "Konnte die Größe des Dateisystems nicht ermitteln"
-
-#: e2fsck/unix.c:1546
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Erstelle Journal (%d Blöcke): "
-#: e2fsck/unix.c:1553 misc/mke2fs.c:2514
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tbeim Erstellen des Journals"
-
-#: e2fsck/unix.c:1556
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " Erledigt.\n"
-#: e2fsck/unix.c:1557
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
@@ -3093,25 +3192,24 @@ msgstr ""
"\n"
"*** Journal wurde wiederhergestellt - Dateisystem ist nun wieder ext3 ***\n"
-#: e2fsck/unix.c:1569
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Beginne e2fsck neu ...\n"
-#: e2fsck/unix.c:1573
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "beim Rücksetzen des Kontexts"
-#: e2fsck/unix.c:1580
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck abgebrochen.\n"
-#: e2fsck/unix.c:1585
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "abgebrochen"
-#: e2fsck/unix.c:1597
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -3120,12 +3218,12 @@ msgstr ""
"\n"
"%s: ***** DATEISYSTEM WURDE VERÄNDERT *****\n"
-#: e2fsck/unix.c:1600
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** LINUX MUSS NEU GESTARTET WERDEN *****\n"
-#: e2fsck/unix.c:1608
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -3136,43 +3234,43 @@ msgstr ""
"%s: ********** WARNUNG: Noch Fehler im Dateisystem **********\n"
"\n"
-#: e2fsck/unix.c:1648
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr "beim Setzen der Blockgruppen-Prüfsummeninfo"
-#: e2fsck/util.c:141 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "jJ"
-#: e2fsck/util.c:142
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:156
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<j>"
-#: e2fsck/util.c:158
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:160
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (j/n)"
-#: e2fsck/util.c:175
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "abgebrochen!\n"
-#: e2fsck/util.c:190
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "ja\n"
-#: e2fsck/util.c:192
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "nein\n"
-#: e2fsck/util.c:202
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3181,7 +3279,7 @@ msgstr ""
"%s? nein\n"
"\n"
-#: e2fsck/util.c:206
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3190,38 +3288,40 @@ msgstr ""
"%s? ja\n"
"\n"
-#: e2fsck/util.c:210
+#: e2fsck/util.c:258
msgid "yes"
msgstr "ja"
-#: e2fsck/util.c:210
+#: e2fsck/util.c:258
msgid "no"
msgstr "nein"
-#: e2fsck/util.c:224
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps: illegal bitmap block(s) für %s"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "lese Inode und Block bitmaps"
-#: e2fsck/util.c:234
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "während des wiederholten Versuches, Bitmaps für %s einzulesen"
-#: e2fsck/util.c:246
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "Schreibe Block- und Inode-Bitmaps"
-#: e2fsck/util.c:251
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
-msgstr "während des wiederholten Versuches, Block- und Inode-Bitmaps für %s zu schreiben."
+msgstr ""
+"während des wiederholten Versuches, Block- und Inode-Bitmaps für %s zu "
+"schreiben."
-#: e2fsck/util.c:263
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3234,63 +3334,69 @@ msgstr ""
"%s: UNERWARTETE INKONSISTENZ; fsck MANUELL AUSFÃœHREN\n"
"\t(d.h. ohne -a oder -p Option)\n"
-#: e2fsck/util.c:344
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Benutzter Speicher: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:348
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr "Benutzter Speicher: %lu, "
-#: e2fsck/util.c:355
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "Zeit: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:360
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "abgelaufende Zeit: %6.3f\n"
-#: e2fsck/util.c:394 e2fsck/util.c:408
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr "beim Lesen von Inode %lu in %s"
-#: e2fsck/util.c:422 e2fsck/util.c:435
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr "beim Schreiben von Inode %lu in %s"
-#: e2fsck/util.c:584
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "beim reservieren eines Puffers zum Nullen"
-#: e2fsck/util.c:736
-msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
-msgstr "UNERWARTETE INKONSISTENZ: das Dateisystem wird modifiziert während fsck läuft.\n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+"UNERWARTETE INKONSISTENZ: das Dateisystem wird modifiziert während fsck "
+"läuft.\n"
#: misc/badblocks.c:69
msgid "done \n"
msgstr "erledigt \n"
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
"Aufruf: %s [-b Blockgröße] [-i Eingabedatei] [-o Ausgabedatei] [-svwnf]\n"
-" [-c Blöcke_auf_einmal] [-d Verzögerungsfaktor_zwischen_Lesedurchgängen]\n"
+" [-c Blöcke_auf_einmal] [-d "
+"Verzögerungsfaktor_zwischen_Lesedurchgängen]\n"
" [-e maximale_Bad_Blocks] [-p Anzahl_Durchgänge]\n"
" [-t Testmuster [-t Testmuster [...]]]\n"
" Gerät [letzter_Block [Startblock]]\n"
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
@@ -3299,80 +3405,82 @@ msgstr ""
"%s: Die Optionen -n und -w schliessen sich gegenseitig aus.\n"
"\n"
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr "%6.2f%% erledigt, %s verstrichen. (%d/%d/%d Fehler)"
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Teste mit zufälligen Mustern: "
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Teste mit Muster 0x"
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "beim Suchen"
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Merkwürdiger Wert (%ld) in do_read\n"
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "während ext2fs_sync_device"
-#: misc/badblocks.c:489 misc/badblocks.c:750
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "beim Beginn des „Bad Block“-Listendurchlaufs"
-#: misc/badblocks.c:503 misc/badblocks.c:603 misc/badblocks.c:760
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "beim Zuweisen von Puffern"
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Prüfe von Block %lu bis %lu\n"
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Suche nach defekten Blöcken im Nur-Lesen-Modus\n"
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Suche nach defekten Blöcken (Nur-Lesen-Modus):"
-#: misc/badblocks.c:529 misc/badblocks.c:635 misc/badblocks.c:677
-#: misc/badblocks.c:823
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr "Zu viele defekte Blöcke - Test wird abgebrochen\n"
-#: misc/badblocks.c:610
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Suche nach defekten Blöcken (Lesen+Schreiben-Modus)\n"
-#: misc/badblocks.c:612 misc/badblocks.c:773
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Von Block %lu bis %lu\n"
-#: misc/badblocks.c:667
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Lesen und Vergleichen:"
-#: misc/badblocks.c:772
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
-msgstr "Suche nach defekten Blöcken im zerstörungsfreien Lesen+Schreiben-Modus\n"
+msgstr ""
+"Suche nach defekten Blöcken im zerstörungsfreien Lesen+Schreiben-Modus\n"
-#: misc/badblocks.c:778
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr "Suche nach defekten Blöcken (zerstörungsfreier Lesen+Schreiben-Modus)\n"
+msgstr ""
+"Suche nach defekten Blöcken (zerstörungsfreier Lesen+Schreiben-Modus)\n"
-#: misc/badblocks.c:785
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3380,93 +3488,105 @@ msgstr ""
"\n"
"Unterbrochen, räume auf\n"
-#: misc/badblocks.c:868
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "beim Schreiben der Test-Daten; Block %lu"
-#: misc/badblocks.c:989 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s ist eingehängt; "
-#: misc/badblocks.c:991
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
+msgstr ""
+"Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
-#: misc/badblocks.c:996
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "es ist zu unsicher, Badblocks zu starten!\n"
-#: misc/badblocks.c:1001 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s wird offensichtlich vom System genutzt; "
-#: misc/badblocks.c:1004
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
-msgstr "Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
+msgstr ""
+"Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
-#: misc/badblocks.c:1024
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "ungültige %s - %s"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "Kann keinen Speicher für Testmuster reservieren - %s"
-#: misc/badblocks.c:1164
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr "Es darf im Nur-Lesen-Modus nur ein Testmuster angegeben werden"
-#: misc/badblocks.c:1170
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "Zufälliges Testmuster ist im Nur-Lesen-Modus nicht erlaubt"
-#: misc/badblocks.c:1184
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
-msgstr "Größe des Gerätes ist nicht feststellbar. Sie müssen sie manuell angeben.\n"
+msgstr ""
+"Größe des Gerätes ist nicht feststellbar. Sie müssen sie manuell angeben.\n"
-#: misc/badblocks.c:1190
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "beim Versuch, die Gerätegröße festzustellen"
-#: misc/badblocks.c:1195
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "letzter Block"
-#: misc/badblocks.c:1201
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "erster Block"
-#: misc/badblocks.c:1204
-#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+#: misc/badblocks.c:1209
+#, fuzzy, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
msgstr "Ungültiger Startblock (%lu): er muss kleiner als %lu sein"
-#: misc/badblocks.c:1260
+#: misc/badblocks.c:1216
+#, fuzzy, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "Ungültiger Startblock (%lu): er muss kleiner als %lu sein"
+
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "erstelle Bad-Block-Liste im Speicher"
-#: misc/badblocks.c:1275
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr ""
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "füge zur Bad-Block-Liste im Speicher hinzu"
-#: misc/badblocks.c:1299
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Durchgang beendet, %u defekte Blöcke gefunden. (%d/%d/%d Fehler)\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Aufruf: %s [-RVf] [-+=AacDdeijsSu] [-v Version] Dateien...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Aufruf: %s [-RVf] [-+=AaCcDdeijsSu] [-v Version] Dateien...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "falsche Version - %s\n"
@@ -3481,89 +3601,90 @@ msgstr "beim Auslesen des Status von %s"
msgid "while reading flags on %s"
msgstr "beim Lesens der Flags in %s"
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr ""
-"Das Zurücksetzen des Kennzeichens für „Erweiterung“ wird auf %s\n"
-"\tnicht unterstützt"
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "Flags von %s wie folgt gesetzt: "
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "beim Setzen der Flags in %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Version von %s gesetzt auf %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "beim Setzen der Version in %s"
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Konnte Pfad-Variable in chattr_dir_proc nicht reservieren"
-#: misc/chattr.c:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= ist inkompatibel mit - und +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Benutze „-v“, =, - oder +\n"
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr "Aufruf: %s [-bfhixV] [-o superblock=<Nummer>] [-o blocksize=<Nummer>] Gerät\n"
+msgstr ""
+"Aufruf: %s [-bfhixV] [-o superblock=<Nummer>] [-o blocksize=<Nummer>] Gerät\n"
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
msgstr "Blöcke"
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
msgstr "Cluster"
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Gruppe %lu: (Blöcke "
-#: misc/dumpe2fs.c:194
+#: misc/dumpe2fs.c:205
+#, c-format
+msgid " Checksum 0x%04x"
+msgstr " Prüfsumme 0x%04x"
+
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr " (0x%04x ERWARTET)"
+
+#: misc/dumpe2fs.c:208
#, c-format
-msgid " Checksum 0x%04x, unused inodes %u\n"
-msgstr " Prüfsumme 0x%04x, %u ungenutzte Inodes\n"
+msgid ", unused inodes %u\n"
+msgstr ", ungenutzte Inodes %u\n"
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s Superblock in "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Primary"
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Backup"
-#: misc/dumpe2fs.c:204
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Gruppendeskriptoren in "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3571,20 +3692,19 @@ msgstr ""
"\n"
" reservierte GDT Blöcke bei "
-#: misc/dumpe2fs.c:215
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr ", Gruppendeskriptor in "
-#: misc/dumpe2fs.c:221
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Block bitmap in "
-#: misc/dumpe2fs.c:225
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", Inode Bitmap in "
-#: misc/dumpe2fs.c:229
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3592,7 +3712,7 @@ msgstr ""
"\n"
" Inode-Tabelle in "
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
@@ -3601,50 +3721,54 @@ msgstr ""
"\n"
" %u freie %s, %u freie Inodes, %u Verzeichnisse%s"
-#: misc/dumpe2fs.c:242
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u ungenutzte Inodes\n"
-#: misc/dumpe2fs.c:245
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Freie Blöcke: "
-#: misc/dumpe2fs.c:256
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Freie Inodes: "
-#: misc/dumpe2fs.c:287
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "beim Ausgeben der „Bad Block“-Liste"
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Bad Blocks: %u"
-#: misc/dumpe2fs.c:320 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "beim Lesen des Journal-Inodes"
-#: misc/dumpe2fs.c:326
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr "beim Lesen des Journal-Inodes"
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr "beim Lesen des Journal-Superblocks"
-#: misc/dumpe2fs.c:342
-#, c-format
+#: misc/dumpe2fs.c:364
+#, fuzzy
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Journal-Superblock nicht gefunden!\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr "Jounaleigenschaften: "
-#: misc/dumpe2fs.c:355
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Journalgrösse: "
-#: misc/dumpe2fs.c:366
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
@@ -3655,15 +3779,20 @@ msgstr ""
"Journal-Sequenz: 0x%08x\n"
"Journal-Start: %u\n"
-#: misc/dumpe2fs.c:385 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr "Jounal-Fehlernummer: %d\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "beim Lesen des Journal-Superblocks"
-#: misc/dumpe2fs.c:393
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Konnte die magische Nummer des Journal-Superblocks nicht finden"
-#: misc/dumpe2fs.c:397
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3682,27 +3811,26 @@ msgstr ""
"Journal Start: %u\n"
"Journal Anzahl Nutzer: %u\n"
-#: misc/dumpe2fs.c:410
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Jounalnutzer: %s\n"
-#: misc/dumpe2fs.c:426 misc/mke2fs.c:662 misc/tune2fs.c:1125
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Speicher zum Parsen der Optionen konnte nicht reserviert werden!\n"
-#: misc/dumpe2fs.c:452
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Ungültiger Superblock-Parameter: %s\n"
-#: misc/dumpe2fs.c:467
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Ungültiger Blockgrössen-Parameter: %s\n"
-#: misc/dumpe2fs.c:478
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3726,18 +3854,17 @@ msgstr ""
"\tblocksize=<Blockgrösse>\n"
"\n"
-#: misc/dumpe2fs.c:538 misc/mke2fs.c:1499
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tBenutze %s\n"
-#: misc/dumpe2fs.c:574 misc/e2image.c:1290 misc/tune2fs.c:1910
-#: resize/main.c:310
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Kann keinen gültigen Dateisystem-Superblock finden.\n"
-#: misc/dumpe2fs.c:599
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3746,40 +3873,262 @@ msgstr ""
"\n"
"%s: %s: Fehler beim Lesen von Bitmaps: %s\n"
-#: misc/e2image.c:87
-#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
+#: misc/e2image.c:101
+#, fuzzy, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
+msgstr "Aufruf: %s [-rsIO] Gerätedatei Abbild-Datei\n"
+
+#: misc/e2image.c:103
+#, fuzzy, c-format
+msgid " %s -I device image-file\n"
msgstr "Aufruf: %s [-rsIO] Gerätedatei Abbild-Datei\n"
-#: misc/e2image.c:135
+#: misc/e2image.c:104
#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+#, fuzzy
+msgid "while allocating buffer"
+msgstr "beim Zuweisen von Puffern"
+
+#: misc/e2image.c:174
+#, fuzzy, c-format
+msgid "Writing block %llu\n"
+msgstr "Prüfe von Block %lu bis %lu\n"
+
+#: misc/e2image.c:188
+#, fuzzy, c-format
+msgid "error writing block %llu"
+msgstr "Schreibfehler - Block %lu (%s). "
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
msgstr "Fehler: Größe des Headers übersteigt wrt_size\n"
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
msgstr "Header-Puffer konnte nicht zugewiesen werden\n"
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "beim Schreiben des Superblocks"
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "beim Schreiben der Inode-Tabelle"
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "beim Schreiben der Block-Bitmap"
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "beim Schreiben der Inode-Bitmap"
-#: misc/e2image.c:1322
+#: misc/e2image.c:502
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "leerer Verzeichnisblock %u (#%d) im Inode %u\n"
+
+#: misc/e2image.c:514
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "leerer Verzeichnisblock %u (#%d) im Inode %u\n"
+
+#: misc/e2image.c:555
+#, fuzzy, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%u Inodes, %llu Blöcke\n"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, fuzzy, c-format
+msgid "error reading block %llu"
+msgstr "Lesefehler - Block %lu (%s). "
+
+#: misc/e2image.c:715
+#, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr ""
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+#, fuzzy
+msgid "while allocating l1 table"
+msgstr "beim Zuweisen von Puffern"
+
+#: misc/e2image.c:800
+#, fuzzy
+msgid "while allocating l2 cache"
+msgstr "beim Zuweisen von Puffern"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+#, fuzzy
+msgid "while allocating ext2_qcow2_image"
+msgstr "beim reservieren eines Puffers zum Nullen"
+
+#: misc/e2image.c:1152
+#, fuzzy
+msgid "while initializing ext2_qcow2_image"
+msgstr "beim Initialisieren des Journal-Superblocks"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+#, fuzzy
+msgid "while allocating block bitmap"
+msgstr "beim Schreiben der Block-Bitmap"
+
+#: misc/e2image.c:1278
+#, fuzzy
+msgid "while allocating scramble block bitmap"
+msgstr "beim Schreiben der Block-Bitmap"
+
+#: misc/e2image.c:1285
+#, fuzzy
+msgid "Scanning inodes...\n"
+msgstr "Prüfe die Inode-Tabelle"
+
+#: misc/e2image.c:1297
+#, fuzzy
+msgid "Can't allocate block buffer"
+msgstr "Es konnte kein Blockpuffer (Größe=%d) reserviert werden\n"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, fuzzy, c-format
+msgid "while iterating over inode %u"
+msgstr "beim Laden des nächsten Inodes"
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+#, fuzzy
+msgid "error reading bitmaps"
+msgstr "Fehler beim Lesen der Bitmaps\n"
+
+#: misc/e2image.c:1415
+#, fuzzy
+msgid "while opening device file"
+msgstr "beim Start des Inode-Scans"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "beim Schreiben der Inode-Tabelle"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+#, fuzzy
+msgid "checking if mounted"
+msgstr " (Prüfung nach %ld Einhängevorgängen)"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr "beim Versuch, das Qcow2-Image (%s) in ein rohes Image (%s) zu konvertieren"
+msgstr ""
+"beim Versuch, das Qcow2-Image (%s) in ein rohes Image (%s) zu konvertieren"
+
+#: misc/e2image.c:1639
+#, fuzzy
+msgid "The -c option only supported in raw mode\n"
+msgstr "Die -t Option wird von dieser e2fsck-Version nicht unterstützt.\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "Die -t Option wird von dieser e2fsck-Version nicht unterstützt.\n"
+
+#: misc/e2image.c:1651
+#, fuzzy
+msgid "while allocating check_buf"
+msgstr "beim Zuweisen von Puffern"
+
+#: misc/e2image.c:1657
+#, fuzzy
+msgid "The -p option only supported in raw mode\n"
+msgstr "Die -t Option wird von dieser e2fsck-Version nicht unterstützt.\n"
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
#: misc/e2label.c:58
#, c-format
@@ -3801,7 +4150,7 @@ msgstr "e2label: Lesefehler im Superblock\n"
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: Kein ext2 Dateisystem\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2060
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Warnung: Name zu lang, kürze ihn.\n"
@@ -3816,7 +4165,7 @@ msgstr "e2label: cannot seek to superblock again\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: Fehler beim Schreiben des Superblocks\n"
-#: misc/e2label.c:117 misc/tune2fs.c:791
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Aufruf: e2label Gerät [neuer_Name]\n"
@@ -3873,17 +4222,17 @@ msgstr "Zurückgespielte Transaktion der Größe %zd an Position %llu\n"
msgid "Failed write %s\n"
msgstr "Gescheitertes Schreiben von %s\n"
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "WARNUNG: Konnte %s nicht öffnen: %s\n"
-#: misc/fsck.c:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "WARNUNG: falsches Format in Zeile %d von %s\n"
-#: misc/fsck.c:371
+#: misc/fsck.c:370
msgid ""
"WARNING: Your /etc/fstab does not contain the fsck passno\n"
"\tfield. I will kludge around things for you, but you\n"
@@ -3896,37 +4245,37 @@ msgstr ""
"\twie möglich korrigieren.\n"
"\n"
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: nicht gefunden\n"
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: wait: kein Kindprozess mehr?!?\n"
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Warnung... %s für Gerät %s wurde mit Signal %d beendet.\n"
-#: misc/fsck.c:623
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: Status ist %x, sollte nie vorkommen.\n"
-#: misc/fsck.c:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "Beendet mit %s (exit status %d)\n"
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: Fehler %d bei Ausführung von fsck.%s für %s\n"
-#: misc/fsck.c:743
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3934,41 +4283,46 @@ msgstr ""
"Bei -t müssen entweder allen oder keinem Dateisystem ein „no“ bzw. „!“\n"
"vorangestellt werden.\n"
-#: misc/fsck.c:762
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "Kann keinen Speicher für Dateisystemtypen reservieren.\n"
-#: misc/fsck.c:885
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
msgstr ""
"%s: überspringe die ungültige Zeile in /etc/fstab: bind mount mit\n"
" Durchgangsnummer für fsck, die nicht Null ist\n"
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: kann %s nicht überprüfen: fsck.%s nicht gefunden\n"
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Alle Dateisysteme werden überprüft.\n"
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--warten-- (Durchgang %d)\n"
-#: misc/fsck.c:1079
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr "Aufruf: fsck [-AMNPRTV] [ -C [ fd ] ] [-t Datesystemtyp] [FS-Optionen] [Dateisystem...]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr ""
+"Aufruf: fsck [-AMNPRTV] [ -C [ fd ] ] [-t Datesystemtyp] [FS-Optionen] "
+"[Dateisystem...]\n"
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: zu viele Geräte\n"
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: zu viele Argumente\n"
@@ -3988,16 +4342,17 @@ msgstr "Beim Lesen der Flags von %s"
msgid "While reading version on %s"
msgstr "Beim Lesen der Version von %s"
-#: misc/mke2fs.c:115
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
"Aufruf: %s [-c|-l Dateiname] [-b Blockgröße] [-C Clustergröße]\n"
"\t[-i Bytes-pro-Inode] [-I Inodegrösse] [-J Journal-Optionen]\n"
@@ -4006,132 +4361,141 @@ msgstr ""
"\t[-g Blöcke-pro-Gruppe] [-L Volume-Label]\n"
"\t[-M letztes-eingehängtes-Verzeichnis] [-O Eigenschaft[,...]]\n"
"\t[-r fs-Revision] [-E erweiterte-Option[,...]]\n"
-"\t[-T Dateisystemtyp] [-U UUID] [-jnqvFKSV] Gerät [Block-Anzahl]\n"
+"\t[-t Dateisystemtyp] [-T Verwendungs-Typ ] [-U UUID] [-jnqvFKSV]\n"
+"\tGerät [Block-Anzahl]\n"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Es wird ausgeführt: %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "während des Versuchs, „%s“ auszuführen"
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "beim Auswerten der „Bad Block“-Liste vom Programm"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Block %d im primären Superblock/Gruppendeskriptorbereich defekt.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Die Blöcke %u bis einschließlich %u müssen in Ordung sein, um ein\n"
"\tDateisystem zu erstellen.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Abbruch...\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tbad blocks.\n"
"\n"
msgstr ""
-"Warnung: die Sicherung des Superblock bzw. Gruppendeskriptors in Block %u enthält\n"
+"Warnung: die Sicherung des Superblock bzw. Gruppendeskriptors in Block %u "
+"enthält\n"
"\tdefekte Blöcke.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "beim Markieren von defekten Blöcken als „belegt“"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Inode-Tabellen werden geschrieben: "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
-"%d Blöcke konnten nicht in die Inoden-Tabellen beginnend bei %llu geschrieben werden: %s\n"
+"%d Blöcke konnten nicht in die Inoden-Tabellen beginnend bei %llu "
+"geschrieben werden: %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2148 misc/mke2fs.c:2401
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
msgstr "erledigt \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "beim Erstellen des Wurzelverzeichnisses"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "beim Lesen des Root-Inode"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "beim Setzen des Root-Inode-Eigentümers"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "beim Erstellen von /lost+found"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "beim Suchen von /lost+found"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "beim Expandieren von /lost+found"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "beim Setzen des „Bad Block“-Inodes"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Speicher voll beim Löschen der Sektoren %d-%d\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Warnung: konnte Block %s nicht lesen\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Warnung: konnte Sektor %d: %s nicht löschen\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "beim Initialisieren des Journal-Superblocks"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Ãœberschreibe Journal-Device mit Nullen: "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "beim Ãœberschreiben des Journal-Device mit Nullen (Block %llu, Nr. %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "beim Schreiben des Journal-Superblocks"
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"Die Grösse des Dateisystems auf %s wird auf %llu (%dk) Blöcke geändert.\n"
+"\n"
+
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
@@ -4140,120 +4504,164 @@ msgstr ""
"Warnung: %llu Blöcke unbenutzt.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Dateisystem-Label=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr "OS-Typ: %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Blockgröße=%u (log=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Clustergröße=%u (log=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Fragmentgröße=%u (log=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Stride=%u Blöcke, Stripebreite=%u Blöcke\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u Inodes, %llu Blöcke\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu Blöcke (%2.2f%%) reserviert für den Superuser\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Erster Datenblock=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximale Dateisystem-Blöcke=%lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u Blockgruppen\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u Blockgruppe\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u Blöcke pro Gruppe, %u Cluster pro Gruppe\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u Blöcke pro Gruppe, %u Fragmente pro Gruppe\n"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u Inodes pro Gruppe\n"
-#: misc/mke2fs.c:608
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Dateisystem-Label=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Superblock-Sicherungskopien gespeichert in den Blöcken: "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1153
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, fuzzy, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "Unzulässige neue Größe: %s\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "Unzulässige neue Größe: %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "Ungültiges mmp_update_interval: %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Ungültiger Superblock-Parameter: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Ungültiger \"stride\"-Parameter: %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Ungültiger Stripebreite-Parameter: %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Ungültiger \"resize\"-Parameter: %s\n"
-#: misc/mke2fs.c:746
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr "Das Maximum der Vergrösserung muss oberhalb als der Dateisystem-Grösse liegen.\n"
+msgstr ""
+"Das Maximum der Vergrösserung muss oberhalb als der Dateisystem-Grösse "
+"liegen.\n"
-#: misc/mke2fs.c:770
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"Online-Grössenänderungen werden bei Revison 0 Dateisystemen nicht\n"
"\tunterstützt\n"
-#: misc/mke2fs.c:802
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, fuzzy, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Ungültige Einhänge-Option gesetzt: %s\n"
+
+#: misc/mke2fs.c:976
#, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "Ungültiger Quotatyp-Parameter: %s\n"
+
+#: misc/mke2fs.c:987
+#, fuzzy, c-format
msgid ""
"\n"
"Bad option(s) specified: %s\n"
@@ -4262,20 +4670,27 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
+"\tquotatype=<usr OR grp>\n"
"\n"
msgstr ""
"\n"
"Ungültige Option(en) angegeben: %s\n"
"\n"
-"Erweiterte Optionen werden durch Kommatas getrennt. Manche erwarten ein\n"
+"Erweiterte Optionen werden durch Kommata getrennt. Manche erwarten ein\n"
"\tArgument, welches mit Gleichheitszeichen („=“) zugewiesen wird.\n"
"\n"
"\terhalten welches mit Gleichheitszeichen („=“) zugewiesen wird.\n"
@@ -4289,9 +4704,10 @@ msgstr ""
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
+"\tquotatype=<usr ODER grp>\n"
"\n"
-#: misc/mke2fs.c:821
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4303,7 +4719,7 @@ msgstr ""
"\tStride %u.\n"
"\n"
-#: misc/mke2fs.c:857
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4312,17 +4728,17 @@ msgstr ""
"Syntax Fehler in der Konfigurationsdatei von mkefs (%s, Zeile %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:870 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Ungültige Dateisystem-Option gesetzt: %s\n"
-#: misc/mke2fs.c:882 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Ungültige Einhänge-Option gesetzt: %s\n"
-#: misc/mke2fs.c:1020
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
@@ -4331,21 +4747,20 @@ msgstr ""
"\n"
"Ihre mke2fs.conf Datei enhält keine Definitiion des %s Dateisystems.\n"
-#: misc/mke2fs.c:1024
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-"Sie müssen wahrscheinlich eine aktualisierte mke2fs.conf Datei installieren.\n"
+"Sie müssen wahrscheinlich eine aktualisierte mke2fs.conf Datei "
+"installieren.\n"
"\n"
-#: misc/mke2fs.c:1028
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr "Breche ab...\n"
-#: misc/mke2fs.c:1068
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4356,118 +4771,124 @@ msgstr ""
"Warnung: Der fs_type %s ist in mke2fs.conf nicht definiert\n"
"\n"
-#: misc/mke2fs.c:1226
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Kann keinen Speicher für den neuen PATH reservieren\n"
-#: misc/mke2fs.c:1267
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Das Profil konnte nicht erfolgreich initiiert werden (Fehler: %ld).\n"
-#: misc/mke2fs.c:1307
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "bad block Größe - %s"
-#: misc/mke2fs.c:1311
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Warnung: Blockgröße %d ist auf den meisten Systemen unbrauchbar.\n"
-#: misc/mke2fs.c:1327
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
msgstr "unzulässige Clustergröße - %s"
-#: misc/mke2fs.c:1336
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr ""
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "unzulässige Angabe für Blöcke pro Gruppe"
-#: misc/mke2fs.c:1341
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "Anzahl der Blöcke pro Gruppe muss ein Vielfaches von 8 sein"
-#: misc/mke2fs.c:1349
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Illegale Zahl für flex_bg Größe"
-#: misc/mke2fs.c:1355
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "flex_bg Größe muss eine Zweierpotenz sein"
-#: misc/mke2fs.c:1365
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "Unzulässiges Inode-Verhältnis %s (Min %d/Max %d"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
-msgstr "Warnung: die Option -K ist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie bitte stattdessen die erweiterte Option „-E nodiscard“\n"
+msgid "invalid inode size - %s"
+msgstr "Unzulässige Inode-Größe - %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+"Warnung: die Option -K ist veraltet und sollte nicht mehr verwendet werden. "
+"Verwenden Sie bitte stattdessen die erweiterte Option „-E nodiscard“\n"
-#: misc/mke2fs.c:1389
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "in malloc for bad_blocks_filename"
-#: misc/mke2fs.c:1399
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "Unzulässige \"Reservierte Blöcke\"-Prozentangabe - %s"
-#: misc/mke2fs.c:1417
+#: misc/mke2fs.c:1642
#, c-format
-msgid "bad revision level - %s"
+msgid "bad num inodes - %s"
msgstr "ungültiges Intervall - %s"
-#: misc/mke2fs.c:1429
+#: misc/mke2fs.c:1659
#, c-format
-msgid "invalid inode size - %s"
-msgstr "Unzulässige Inode-Größe - %s"
-
-#: misc/mke2fs.c:1449
-#, c-format
-msgid "bad num inodes - %s"
+msgid "bad revision level - %s"
msgstr "ungültiges Intervall - %s"
-#: misc/mke2fs.c:1466
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
msgstr "Die Option -t darf nur eimal angegeben werden"
-#: misc/mke2fs.c:1474
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
msgstr "Die Option -T darf nur eimal angegeben werden"
-#: misc/mke2fs.c:1524 misc/mke2fs.c:2469
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "beim Versuch, das Journal-Device %s zu öffnen\n"
-#: misc/mke2fs.c:1530
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr "Journal-Device Blockgröße (%d) kleiner als Minimum-Blockgröße %d\n"
-#: misc/mke2fs.c:1536
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Verwende die Blockgrösse des Geräts: %d\n"
-#: misc/mke2fs.c:1547
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "ungültige Blöcke „%s“ auf Gerät „%s“"
-#: misc/mke2fs.c:1557
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "Dateisystem"
-#: misc/mke2fs.c:1570 resize/main.c:379
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "beim Bestimmen der Dateisystemgröße"
-#: misc/mke2fs.c:1576
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4475,7 +4896,7 @@ msgstr ""
"Konnte die Gerätegröße nicht ermitteln. Geben\n"
"Sie die Größe des Dateisystems an\n"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4488,16 +4909,35 @@ msgstr ""
"\tin Gebrauch und gesperrt ist. Sie könnten gezwungen sein, neu zu\n"
"\tbooten, um die Partitionstabelle neu einzulesen.\n"
-#: misc/mke2fs.c:1600
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr "Dateisystem ist größer als augenscheinlich das Gerät selbst."
-#: misc/mke2fs.c:1620
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "Analyse der Liste von Dateisystemen war nicht möglich\n"
-#: misc/mke2fs.c:1674
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "beim Ermitteln der Hardware-Sektorgröße"
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr "beim Ermitteln der physischen Sektorgröße"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr "beim Setzen der Blockgröße; zu klein für das Gerät\n"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+"Warnung: die vorgegebene Blockgröße %d ist kleiner als die physische "
+"Sektorgröße %d\n"
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
@@ -4506,117 +4946,131 @@ msgstr ""
"%1$s: Die Größe von Gerät %3$s (0x%2$llx) lässt sich bei Verwendung einer\n"
"\tBlockgröße von %4$d nicht mit 32 Bits darstellen.\n"
-#: misc/mke2fs.c:1690
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
msgstr "fs_types für mke2fs.conf Lösung: "
-#: misc/mke2fs.c:1697
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
"Dateisystem-Eigenschaften werden für Dateisysteme der Revision 0 nicht\n"
"\tunterstützt\n"
-#: misc/mke2fs.c:1704
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"Verteilte Superblöcke werden für Dateisysteme der Revision 0 nicht\n"
"\tunterstützt\n"
-#: misc/mke2fs.c:1716
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr "Journale werden für Dateisysteme der Revision 0 nicht unterstützt\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "Unzulässige \"Reservierte Blöcke\"-Prozentangabe - %lf"
-#: misc/mke2fs.c:1746
-#, c-format
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-"Die Eigenschaften resize_inode und meta_bg sind nicht kompatibel.\n"
-"Sie können nicht gleichzeitig aktiviert werden.\n"
-
-#: misc/mke2fs.c:1763
-msgid "while trying to determine hardware sector size"
-msgstr "beim Ermitteln der Hardware-Sektorgröße"
-
-#: misc/mke2fs.c:1769
-msgid "while trying to determine physical sector size"
-msgstr "beim Ermitteln der physischen Sektorgröße"
-#: misc/mke2fs.c:1802
-msgid "while setting blocksize; too small for device\n"
-msgstr "beim Setzen der Blockgröße; zu klein für das Gerät\n"
+#: misc/mke2fs.c:2042
+#, fuzzy
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr ""
+"Das Maximum der Vergrösserung muss oberhalb als der Dateisystem-Grösse "
+"liegen.\n"
-#: misc/mke2fs.c:1807
-#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr "Warnung: die vorgegebene Blockgröße %d ist kleiner als die physische Sektorgröße %d\n"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
-#: misc/mke2fs.c:1838
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "Warnung: Die Geometrie für Gerät %s konnte nicht erfragt werden\n"
-#: misc/mke2fs.c:1841
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Die Ausrichtung von %s ist um %lu Bytes verschoben.\n"
-#: misc/mke2fs.c:1843
+#: misc/mke2fs.c:2072
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
msgstr ""
"Das könnte zu sehr schlechter Leistung führen. Eine (Neu-)Partionierung\n"
" wird empfohlen.\n"
-#: misc/mke2fs.c:1854
+#: misc/mke2fs.c:2093
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "%d-Byte Blöcke zu groß für das System (max %d)"
-#: misc/mke2fs.c:1858
+#: misc/mke2fs.c:2097
#, c-format
-msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr "Warnung: %d-byte Blöcke sind zu groß für das System (max %d), fahre dennoch fort\n"
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Warnung: %d-byte Blöcke sind zu groß für das System (max %d), fahre dennoch "
+"fort\n"
-#: misc/mke2fs.c:1893
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"Die Eigenschaften resize_inode und meta_bg sind nicht kompatibel.\n"
+"Sie können nicht gleichzeitig aktiviert werden.\n"
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"Für Online-Grössenänderungen reservierte Blöcke werden auf Dateisystemen\n"
"\tohne Unterstützung für Lückenkompression nicht unterstützt"
-#: misc/mke2fs.c:1902
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
-msgstr "Anzahl der Blöcke pro Gruppe ausserhaalb des gültigen Bereichs"
+msgstr "Anzahl der Blöcke pro Gruppe ausserhalb des gültigen Bereichs"
-#: misc/mke2fs.c:1917
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr "Eigenschaft flex_bg wurde nicht aktiviert, daher darf flex_bg Grösse nicht angegeben werden"
+msgstr ""
+"Eigenschaft flex_bg wurde nicht aktiviert, daher darf flex_bg Grösse nicht "
+"angegeben werden"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "ungültige Inode-Größe %d (min %d/max %d)"
-#: misc/mke2fs.c:1947
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "zu viele Inodes (%llu), Inode-Verhältnis erhöhen?"
-#: misc/mke2fs.c:1954
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "zu viele Inodes (%llu), sie müssen weniger als 2^32 Inodes angeben"
-#: misc/mke2fs.c:1968
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
@@ -4627,54 +5081,56 @@ msgstr ""
"\tDateisystem mit %llu Blöcken, geben Sie bitte entweder ein höheres\n"
"\tInodeverhältnis (-i) oder eine niedrigere Anzahl an Inodes (-N) an.\n"
-#: misc/mke2fs.c:2087
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Überschreibe das bestehende Dateisystem; dies kann rückgängig gemacht werden\n"
+"Überschreibe das bestehende Dateisystem; dies kann rückgängig gemacht "
+"werden\n"
"durch den Befehl:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2101
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
msgstr "beim Erstellen der Undodatei\n"
-#: misc/mke2fs.c:2127
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
msgstr "Blöcke des Gerätes werden verworfen: "
-#: misc/mke2fs.c:2143
+#: misc/mke2fs.c:2439
msgid "failed - "
msgstr "nicht erfolgreich - "
-#: misc/mke2fs.c:2249
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "beim Erstellen des Superblocks"
-#: misc/mke2fs.c:2258
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr "Verwerfen war erfolgreich und wird Nullen zurückliefern - das Löschen der Inode-Tabelle wird übersprungen \n"
+#: misc/mke2fs.c:2577
+#, fuzzy
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+"Verwerfen war erfolgreich und wird Nullen zurückliefern - das Löschen der "
+"Inode-Tabelle wird übersprungen \n"
-#: misc/mke2fs.c:2341
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "unbekanntes OS - %s"
-#: misc/mke2fs.c:2393
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr "Platz für Gruppentabellen wird angefordert: "
-#: misc/mke2fs.c:2397
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "beim Zuordnen von Dateisystemtabellen"
-#: misc/mke2fs.c:2406
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
@@ -4682,25 +5138,25 @@ msgstr ""
"\n"
"\tbeim Konvertieren der Subcluster-Bitmap"
-#: misc/mke2fs.c:2438
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "beim Nullen von Block %llu am Ende des Dateisystems"
-#: misc/mke2fs.c:2451
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "beim Lesen des Bad-Block-Inodes"
-#: misc/mke2fs.c:2462 misc/tune2fs.c:640
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "Journal"
-#: misc/mke2fs.c:2474
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Erstelle Journal auf Gerät %s: "
-#: misc/mke2fs.c:2481
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4709,23 +5165,28 @@ msgstr ""
"\n"
"\tbeim Erstellen des Journals auf Gerät %s"
-#: misc/mke2fs.c:2486 misc/mke2fs.c:2518 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "erledigt\n"
-#: misc/mke2fs.c:2495
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr "Die Erzeugung eines Journals wird im Nur-Super Modus übersprungen\n"
-#: misc/mke2fs.c:2506
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Erstelle Journal (%u Blöcke): "
-#: misc/mke2fs.c:2525 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tbeim Erstellen des Journals"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
@@ -4733,18 +5194,18 @@ msgstr ""
"\n"
"Fehler beim Aktivieren des Schutzes vor mehrfachem Einhängen."
-#: misc/mke2fs.c:2530
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr "Der Schutz vor mehrfachem Einhängen wurde mit einem Intervall von %d Sekunden aktiviert\n"
+msgstr ""
+"Der Schutz vor mehrfachem Einhängen wurde mit einem Intervall von %d "
+"Sekunden aktiviert\n"
-#: misc/mke2fs.c:2543
-#, c-format
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Schreibe Superblöcke und Dateisystem-Accountinginformationen: "
-#: misc/mke2fs.c:2550
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4752,8 +5213,7 @@ msgstr ""
"\n"
"Warnung: Probleme beim Schreiben der Superblöcke."
-#: misc/mke2fs.c:2552
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4762,7 +5222,6 @@ msgstr ""
"\n"
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
msgstr "Aufruf: mklost+found\n"
@@ -4801,47 +5260,50 @@ msgstr "Grösse von %s kann nicht gelesen werden: %s"
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s: h=%3d s=%3d c=%4d Start=%8d Grösse=%8lu Ende=%8d\n"
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Lassen Sie bitte e2fsck über das Dateisystem laufen.\n"
-#: misc/tune2fs.c:116
-#, c-format
+#: misc/tune2fs.c:121
+#, fuzzy, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
"Aufruf: %s [-c max-Anzahl-Einhängen] [-e Fehler-Verhalten] [-g Gruppe]\n"
"\t[-i Intervall[d|m|w]] [-j] [-J Journal-Optionen] [-l]\n"
-"\t[-m reservierte_Blöcke_Prozent] [-o [^]Einhäng_Optionen[,...]] [-p mmp_update_intervall]\n"
+"\t[-m reservierte_Blöcke_Prozent] [-o [^]Einhäng_Optionen[,...]] [-p "
+"mmp_update_intervall]\n"
"\t[-r Anzahl_reservierte_Blöcke] [-u Benutzer] [-C Anzahl_Einhängen]\n"
"\t[-L Volume_Label] [-M letztes_eingehängtes_Verzeichnis]\n"
"\t[-O [^]Eigenschaft[,...]] [-E erweiterte-Option[,...]]\n"
"\t[-T letzter_Prüfzeitpunkt] [-U UUID] [-I neue_Inodegrösse] Gerät\n"
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "beim Öffnen des externen Journals"
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s ist kein Journal-Gerät.\n"
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Journal-Superblock nicht gefunden!\n"
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr "UUID des Dateisystems auf Journal-Gerät nicht gefunden.\n"
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
@@ -4849,38 +5311,38 @@ msgstr ""
"Das Journal-Gerät konnte nicht gefunden werden. Es wurde NICHT entfernt\n"
"Verwenden Sie die Option -f, um das fehlende Journal-Gerät zu entfernen.\n"
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Journal gelöscht\n"
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "beim Lesen von Bitmaps"
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "beim Bereinigen des Journal-Inodes"
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "beim Schreiben des Journal-Inodes"
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
msgstr "(und hinterher das System neu starten!)\n"
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr "Das Zurücksetzen von Dateisystem-Eigenschaft „%s“ wird nicht unterstützt.\n"
+msgstr ""
+"Das Zurücksetzen von Dateisystem-Eigenschaft „%s“ wird nicht unterstützt.\n"
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr "Das Setzen der Dateisystem-Eigenschaft „%s“ wird nicht unterstützt.\n"
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4888,7 +5350,7 @@ msgstr ""
"Die has_jounal Eigenschaft kann nur zurückgesetzt werden, wenn das\n"
"Dateisystem nicht oder im Nur-Lesen-Modus eingehängt ist.\n"
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4896,7 +5358,16 @@ msgstr ""
"Das needs_recovery Flag ist gesetzt. Bitte starten sie e2fsck vor\n"
"der Zurücksetzung des has_journal Flags.\n"
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Das Ändern der Inodegrösse wird auf Dateisystemen mit aktivierter flex_bg\n"
+"Eigenschaft nicht unterstützt.\n"
+
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
@@ -4906,14 +5377,14 @@ msgstr ""
"zurückgesetzt werden, wenn das Dateisystem nicht oder nur zum Lesen\n"
"eingehängt ist.\n"
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
msgstr ""
"Schutz vor mehrfachem Einhängen wurde aktiviert mit einem Aktualisierungs-\n"
"intervall von %ds.\n"
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
@@ -4921,20 +5392,21 @@ msgstr ""
"Der Schutz vor mehrfachem Einhängen kann nicht deaktiviert werden,\n"
"wenn das Dateisystem nur lesbar ist.\n"
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
msgstr "Fehler beim Lesen der Bitmaps\n"
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr "Die magische Zahl im MMP-Block passt nicht. Erwartet: %x, tatsächlich: %x\n"
+msgstr ""
+"Die magische Zahl im MMP-Block passt nicht. Erwartet: %x, tatsächlich: %x\n"
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
msgstr "beim Lesen des MMP-Blockes."
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
@@ -4942,7 +5414,7 @@ msgstr ""
"Das Zurücksetzen der Kennung flex_bg würde das Dateisystem inkonsistent\n"
"machen.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4950,7 +5422,7 @@ msgstr ""
"Die huge_file Eigenschaft kann nur zurückgesetzt werden, wenn das\n"
"Dateisystem nicht oder im Nur-Lesen-Modus eingehängt ist.\n"
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
@@ -4958,11 +5430,11 @@ msgstr ""
"\n"
"Warnung: die Option „^quota“ hat Vorrang vor „-Q“ Optionen.\n"
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Das Dateisystem hat schon ein Journal.\n"
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4971,21 +5443,21 @@ msgstr ""
"\n"
"\tbeim Öffnen des Journals auf %s\n"
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Erstelle Journal auf Gerät %s: "
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "beim Hinzufügen des Dateisystems zum Journal auf %s"
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Erstelle Journal-Inode: "
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -4993,16 +5465,18 @@ msgstr ""
"\n"
"\tbeim Erstellen der Journaldatei"
-#: misc/tune2fs.c:751
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
-msgstr "Speicher zum Parsen der Quota-Optionen konnte nicht reserviert werden!\n"
+msgstr ""
+"Speicher zum Parsen der Quota-Optionen konnte nicht reserviert werden!\n"
-#: misc/tune2fs.c:773
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
@@ -5011,105 +5485,109 @@ msgstr ""
"\n"
"Es wurden ungültige Quota-Optionen angegeben.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"Die folgenden Quotaoptionen sind verfügbar (durch Komma getrennt angeben):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:834
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Konnte Datum/Zeit nicht parsen: %s"
-#: misc/tune2fs.c:858 misc/tune2fs.c:871
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "Ungültiger Mounts-Zähler - %s"
-#: misc/tune2fs.c:887
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "ungültiges Fehler-Verhalten - %s"
-#: misc/tune2fs.c:914
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "ungültige(r) GID oder Gruppenname - %s"
-#: misc/tune2fs.c:947
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "ungültiges Intervall - %s"
-#: misc/tune2fs.c:976
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "ungültiges Reservierte-Blöcke-Verhältnis - %s"
-#: misc/tune2fs.c:991
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o darf nur eimal angegeben werden"
-#: misc/tune2fs.c:1000
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O darf nur eimal angegeben werden"
-#: misc/tune2fs.c:1015
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "ungültige Anzahl von reservierten Blöcken - %s"
-#: misc/tune2fs.c:1044
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "ungültige(r) UID/Benutzername - %s"
-#: misc/tune2fs.c:1061
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "Unzulässige Inodegröße - %s"
-#: misc/tune2fs.c:1068
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Inodegrösse muss eine Zweierpotenz sein- %s"
-#: misc/tune2fs.c:1162
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "mmp_update_interval ist zu groß: %lu\n"
-#: misc/tune2fs.c:1167
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] "Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu Sekunde\n"
-msgstr[1] "Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu Sekunden\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] ""
+"Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu Sekunde\n"
+msgstr[1] ""
+"Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu "
+"Sekunden\n"
-#: misc/tune2fs.c:1190
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Ungültiger RAID Stride: %s\n"
-#: misc/tune2fs.c:1205
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Ungültige RAID Stripe-Breite: %s\n"
-#: misc/tune2fs.c:1220
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Ungültiger Hashalgorithmus: %s\n"
-#: misc/tune2fs.c:1226
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Der standard Hashalgorithmus wird auf %s (%d) gesetzt\n"
-#: misc/tune2fs.c:1245
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -5142,31 +5620,33 @@ msgstr ""
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1710
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
msgstr "Die Inode-Bitmap konnte nicht gelesen werden\n"
-#: misc/tune2fs.c:1715
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
msgstr "Die Block-Bitmaps konnten nicht gelesen werden\n"
-#: misc/tune2fs.c:1732 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "zu verschiebende Blöcke"
-#: misc/tune2fs.c:1735
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr "Beim Vergrössern der Inodes konnte keine Block-Bitmap angelegt werden\n"
+msgstr ""
+"Beim Vergrössern der Inodes konnte keine Block-Bitmap angelegt werden\n"
-#: misc/tune2fs.c:1741
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr "Der Platz reicht nicht aus um die Inodegrösse zu erhöhen \n"
-#: misc/tune2fs.c:1746
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
-msgstr "Beim Vergrössern der Inodes konnten die Blöcke nicht verschoben werden \n"
+msgstr ""
+"Beim Vergrössern der Inodes konnten die Blöcke nicht verschoben werden \n"
-#: misc/tune2fs.c:1778
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
@@ -5174,16 +5654,16 @@ msgstr ""
"Fehler beim Verändern der Inodegrösse.\n"
"Starten Sie e2undo um die Änderungen am Dateisystem rückgängig zu machen. \n"
-#: misc/tune2fs.c:1805
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Kann keinen Speicher für den tdb-Dateinamen reservieren\n"
-#: misc/tune2fs.c:1827
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
msgstr "beim Versuch, %s zu löschen"
-#: misc/tune2fs.c:1837
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -5195,7 +5675,7 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1906
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
@@ -5205,62 +5685,68 @@ msgstr ""
"Kommando zu reparieren:\n"
"„e2fsck -f %s“\n"
-#: misc/tune2fs.c:1923
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Die Inodegrösse ist bereits %lu\n"
-#: misc/tune2fs.c:1929
-#, c-format
-msgid "Shrinking the inode size is not supported\n"
+#: misc/tune2fs.c:1982
+#, fuzzy
+msgid "Shrinking inode size is not supported\n"
msgstr "Das Schrumpfen der Inodegrösse wird nicht unterstützt\n"
-#: misc/tune2fs.c:1976
+#: misc/tune2fs.c:1987
+#, fuzzy, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "ungültige Inode-Größe %d (min %d/max %d)"
+
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Die maximale Anzahl von Einhängungen wird auf %d gesetzt\n"
-#: misc/tune2fs.c:1982
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Die derzeitige Anzahl von Einhängungen wird auf %d gesetzt\n"
-#: misc/tune2fs.c:1987
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Das Fehler-Verhalten wird auf %d gesetzt\n"
-#: misc/tune2fs.c:1992
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Die GID für reservierte Blöcke wird auf %lu gesetzt\n"
-#: misc/tune2fs.c:1997
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "Das Intervall zwischen den Prüfungen ist zu groß (%lu)"
-#: misc/tune2fs.c:2004
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Das Intervall zwischen zwei Checks wird auf %lu Sekunden gesetzt\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
-msgstr "Der Prozentsatz reservierter Böcke wird auf %g%% (%llu Blöcke) gesetzt\n"
+msgstr ""
+"Der Prozentsatz reservierter Böcke wird auf %g%% (%llu Blöcke) gesetzt\n"
-#: misc/tune2fs.c:2017
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "Die Anzahl der reservierten Blöcke ist zu gross (%llu)"
-#: misc/tune2fs.c:2024
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Die Anzahl der reservierten Blöcke wird auf %llu gesetzt\n"
-#: misc/tune2fs.c:2030
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -5268,7 +5754,17 @@ msgstr ""
"\n"
"Das Dateisystem hat bereits verteilte Superblöcke.\n"
-#: misc/tune2fs.c:2037
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Das Ändern der Inodegrösse wird auf Dateisystemen mit aktivierter flex_bg\n"
+"Eigenschaft nicht unterstützt.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -5277,48 +5773,58 @@ msgstr ""
"\n"
"Kennzeichen für verteilten Superblock gesetzt. %s"
-#: misc/tune2fs.c:2042
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
"Das Zurücksetzen des Kennzeichens für „verteilter Superblock“ wird nicht\n"
"\tunterstützt.\n"
-#: misc/tune2fs.c:2050
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Die Zeit des letzten Dateisystemchecks wird auf %s gesetzt\n"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Die UID für reservierte Blöcke wird auf %lu gesetzt\n"
-#: misc/tune2fs.c:2088
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr ""
"Fehler bei der Verwendung von clear_mmp. Es muss zusammen mit -f\n"
"verwendet werden\n"
-#: misc/tune2fs.c:2106
-msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr ""
-"Quotas können nur aktiviert bzw. deaktiviert werden, wenn das Dateisystem nicht\n"
+"Quotas können nur aktiviert bzw. deaktiviert werden, wenn das Dateisystem "
+"nicht\n"
"eingehängt ist\n"
-#: misc/tune2fs.c:2139
+#: misc/tune2fs.c:2191
+#, fuzzy
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"Die Grösse der Inodes kann nur geändert werden, wenn das Dateisystem\n"
+"nicht eingehängt ist.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Ungültiges UUID Format\n"
-#: misc/tune2fs.c:2152
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"Die Grösse der Inodes kann nur geändert werden, wenn das Dateisystem\n"
"nicht eingehängt ist.\n"
-#: misc/tune2fs.c:2160
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
@@ -5326,41 +5832,80 @@ msgstr ""
"Das Ändern der Inodegrösse wird auf Dateisystemen mit aktivierter flex_bg\n"
"Eigenschaft nicht unterstützt.\n"
-#: misc/tune2fs.c:2173
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Die Inode-Größe wird auf %lu gesetzt\n"
-#: misc/tune2fs.c:2176
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
msgstr "Die Inode-Größe konnte nicht geändert werdeb\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Die Stride-Größe wird auf %d gesetzt\n"
-#: misc/tune2fs.c:2192
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Die Stripe-Breite wird auf %d gesetzt\n"
-#: misc/tune2fs.c:2199
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "Als erweiterte Einhäng-Optionen werden in Zukunft „%s“ verwendet\n"
-#: misc/util.c:74
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Trotzdem fortsetzen? (j,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Trotzdem fortsetzen? (j,n) "
-#: misc/util.c:89
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "Ungültiger Mounts-Zähler - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "Ungültiger Mounts-Zähler - %s"
+
+#: misc/util.c:135
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Status für %s konnte nicht ermittelt werden --- %s\n"
+msgid "\tcreated on %s"
+msgstr ""
-#: misc/util.c:92
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "'reguläre Datei"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "Kann %s nicht öffnen: %s"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -5368,34 +5913,44 @@ msgstr ""
"\n"
"Das Gerät existiert offensichtlich nicht; haben Sie es richtig angegeben?\n"
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s ist kein spezielles Block-Gerät.\n"
-#: misc/util.c:132
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " enthält ein fehlerhaftes Dateisystem"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " enthält ein fehlerhaftes Dateisystem"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s ist das ganze Gerät, nicht nur eine Partition!\n"
-#: misc/util.c:154
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "mke2fs trotzdem erzwungen. Hoffentlich ist /etc/mtab ungültig.\n"
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "werde dort kein %s erstellen!\n"
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "mke2fs wird sowieso erzwungen.\n"
-#: misc/util.c:182
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr "Konnte keinen Speicher zur Analyse der Journal-Optionen anfordern!\n"
-#: misc/util.c:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
@@ -5404,7 +5959,8 @@ msgstr ""
"\n"
"Das Journalgerät %s ist nicht auffindbar\n"
-#: misc/util.c:228
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5415,6 +5971,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -5433,7 +5990,7 @@ msgstr ""
"\tliegen.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -5441,7 +5998,7 @@ msgstr ""
"\n"
"Das Dateisystem ist zu klein für ein Journal\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5452,7 +6009,7 @@ msgstr ""
"Die angegebene Journalgröße beträgt %d Blöcke. Sie muss aber zwischen\n"
"1024 und 10240000 Dateisystem-Blöcken liegen. Abbruch! \n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -5460,7 +6017,7 @@ msgstr ""
"\n"
"Das Journal ist zu groß für dieses Dateisystem.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -5580,7 +6137,6 @@ msgstr[0] "%s und eine weitere UUID\n"
msgstr[1] "%s und weitere %d UUIDs\n"
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
msgstr "Liste der UUIDs:\n"
@@ -5613,7 +6169,7 @@ msgstr "# Extent dump:\n"
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tZahl=%llu, Größe=%llu, Cursor=%llu, Sortiert=%llu\n"
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -5622,56 +6178,55 @@ msgstr ""
"Aufruf: %s [-d Debug_Optionen] [-f] [-F] [-M] [-P] [-p] Gerät [neue_Größe]\n"
"\n"
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Vergrößere die Inode-Tabelle"
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Verteile die Blöcke neu"
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Prüfe die Inode-Tabelle"
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Aktualisiere die Inode-Referenzen"
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Verschiebe die Inode-Tabelle"
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Unbekannter Durchgang?!?"
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Start von Durchgang %d (max = %lu)\n"
-#: resize/main.c:263
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "beim Öffnen von %s"
# c-format
-#: resize/main.c:275
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "beim Ermitteln der Statusinformation für %s"
-#: resize/main.c:336
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Die Kombination der Eigenschaften flex_bg und\n"
-"t!resize_inode wird von resize2fs nicht unterestützt.\n"
-
-#: resize/main.c:349 resize/main.c:457
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
@@ -5680,30 +6235,30 @@ msgstr ""
"Bitte zuerst „e2fsck -f %s“ laufen lassen.\n"
"\n"
-#: resize/main.c:353
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Geschätzte minimale Grösse des Dateisystems: %llu\n"
-#: resize/main.c:389
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Unzulässige neue Größe: %s\n"
-#: resize/main.c:397
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
msgstr "Die neue Größe kann nicht mehr mit 32 Bits dargestellt werden\n"
-#: resize/main.c:409
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Die neue Größe ist kleiner als das Minimum (%llu)\n"
-#: resize/main.c:415
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr "Ungültige Stride-Länge"
-#: resize/main.c:439
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
@@ -5714,7 +6269,7 @@ msgstr ""
"Sie hatten aber %llu Blöcke vorgegeben.\n"
"\n"
-#: resize/main.c:446
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
@@ -5723,19 +6278,19 @@ msgstr ""
"Das Dateisystem ist schon %llu Blöcke groß. Nichts zu tun!\n"
"\n"
-#: resize/main.c:461
+#: resize/main.c:456
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
"Die Grösse des Dateisystems auf %s wird auf %llu (%dk) Blöcke geändert.\n"
"\n"
-#: resize/main.c:470
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "beim Versuch, die Größe von %s zu ändern"
-#: resize/main.c:473
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
@@ -5744,7 +6299,7 @@ msgstr ""
"Bitte führen Sie „e2fsck -fy %s“ aus, um das Dateisystem\n"
"nach der abgebrochenen Grössenänderung zu reparieren.\n"
-#: resize/main.c:479
+#: resize/main.c:474
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
@@ -5753,85 +6308,121 @@ msgstr ""
"Das Dateisystem auf %s ist nun %llu Blöcke groß.\n"
"\n"
-#: resize/main.c:494
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
msgstr "beim Versuch, %s zu kürzen"
-#: resize/online.c:40
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Der Kernel unterstützt die Online-Vergrösserung nicht"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr "Das Dateisystem auf %s ist auf %s eingehängt; Online-Grössenveränderung nötig\n"
+msgstr ""
+"Das Dateisystem auf %s ist auf %s eingehängt; Online-Grössenveränderung "
+"nötig\n"
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
msgstr "Die Online-Verkleinerung wird nicht unterstützt"
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr "Das Dateisystem unterstützt keine Online-Grössenveränderung"
-#: resize/online.c:70
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "nicht genug reservierte GDT-Blöcke für die Größenänderung"
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+"Der Kernel lässt eine Veränderung der Größe eines Dateisystems diesen "
+"Ausmaßes nicht zu"
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "beim Versuch, Einhängpunkt %s zu öffnen"
-#: resize/online.c:78 resize/online.c:102
+#: resize/online.c:145
+#, fuzzy, c-format
+msgid "Old resize interface requested.\n"
+msgstr "Benutzer erbat den Abbruch"
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "Zugriff verweigert für die Grössenänderung des Dateisystems"
-#: resize/online.c:81 resize/online.c:108
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "Beim Überprüfen, ob Online-Vergrösserung unterstützt wird"
-#: resize/online.c:93
-msgid "Kernel does not support resizing a file system this large"
-msgstr "Der Kernel lässt eine Veränderung der Größe eines Dateisystems diesen Ausmaßes nicht zu"
-
-#: resize/online.c:105
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
msgstr "Der Kernel unterstützt die Online-Vergrösserung nicht"
-#: resize/online.c:138
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr "Eine Online-Grössenänderung von %s auf %llu (%dk) Blöcke wird durchgeführt.\n"
+msgstr ""
+"Eine Online-Grössenänderung von %s auf %llu (%dk) Blöcke wird durchgeführt.\n"
-#: resize/online.c:148
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr "Beim Versuch, die letzte Gruppe zu erweitern"
-#: resize/online.c:202
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr "Beim Versuch, Gruppe %d hinzu zu fügen"
-#: resize/online.c:213
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
-msgstr "Dateisystem auf %s ist auf %s eingehängt und Online-Grössenänderung wird auf diesem System nicht unterstützt.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
+msgstr ""
+"Dateisystem auf %s ist auf %s eingehängt und Online-Grössenänderung wird auf "
+"diesem System nicht unterstützt.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "Die Anzahl der Indoes (%llu) muss unter %u liegen"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "reservierte Blöcke"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "Metadaten-Blöcke"
-#: resize/resize2fs.c:1734
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "Metadaten-Blöcke"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Das sollte niemals passieren: Die zu verändernde Inode ist defekt!\n"
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42-WIP"
-msgstr "EXT2FS Bibliothek Version 1.42-WIP"
+#, fuzzy
+msgid "EXT2FS Library version 1.42.10"
+msgstr "EXT2FS Bibliothek Version 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
@@ -5915,7 +6506,8 @@ msgstr "Die Dateisystemrevision ist zu hoch"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Es wird versucht, auf ein nur zum Lesen geöffnetes Dateisystem zu schreiben"
+msgstr ""
+"Es wird versucht, auf ein nur zum Lesen geöffnetes Dateisystem zu schreiben"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
@@ -5927,15 +6519,18 @@ msgstr "Die Gruppendeskriptoren können nicht geschrieben werden"
#: lib/ext2fs/ext2_err.c:35
msgid "Corrupt group descriptor: bad block for block bitmap"
-msgstr "Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Block-Bitmap"
+msgstr ""
+"Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Block-Bitmap"
#: lib/ext2fs/ext2_err.c:36
msgid "Corrupt group descriptor: bad block for inode bitmap"
-msgstr "Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inode-Bitmap"
+msgstr ""
+"Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inode-Bitmap"
#: lib/ext2fs/ext2_err.c:37
msgid "Corrupt group descriptor: bad block for inode table"
-msgstr "Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inodetabelle"
+msgstr ""
+"Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inodetabelle"
#: lib/ext2fs/ext2_err.c:38
msgid "Can't write an inode bitmap"
@@ -5946,11 +6541,11 @@ msgid "Can't read an inode bitmap"
msgstr "Die Inode-Bitmap kann nicht gelesen werden"
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
+msgid "Can't write a block bitmap"
msgstr "Die Block-Bitmap kann nicht geschrieben werden"
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
+msgid "Can't read a block bitmap"
msgstr "Die Block-Bitmap kann nicht gelesen werden"
#: lib/ext2fs/ext2_err.c:42
@@ -6015,7 +6610,8 @@ msgstr "ext2fs_mark_block_bitmap wurde eine unzulässige Blocknummer übergeben"
#: lib/ext2fs/ext2_err.c:57
msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
-msgstr "ext2fs_unmark_block_bitmap wurde eine unzulässige Blocknummer übergeben"
+msgstr ""
+"ext2fs_unmark_block_bitmap wurde eine unzulässige Blocknummer übergeben"
#: lib/ext2fs/ext2_err.c:58
msgid "Illegal block number passed to ext2fs_test_block_bitmap"
@@ -6027,7 +6623,8 @@ msgstr "ext2fs_mark_inode_bitmap wurde eine unzulässige Blocknummer übergeben"
#: lib/ext2fs/ext2_err.c:60
msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
-msgstr "ext2fs_unmark_inode_bitmap wurde eine unzulässige Blocknummer übergeben"
+msgstr ""
+"ext2fs_unmark_inode_bitmap wurde eine unzulässige Blocknummer übergeben"
#: lib/ext2fs/ext2_err.c:61
msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
@@ -6035,11 +6632,15 @@ msgstr "ext2fs_test_inode_bitmap wurde eine unzulässige Blocknummer übergeben"
#: lib/ext2fs/ext2_err.c:62
msgid "Attempt to fudge end of block bitmap past the real end"
-msgstr "Es wurde versucht, das Ende der Blockbitmap über das echte Ende hinaus zu verschieben"
+msgstr ""
+"Es wurde versucht, das Ende der Blockbitmap über das echte Ende hinaus zu "
+"verschieben"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr "Es wurde versucht, das Ende der Inodebitmap über das echte Ende hinaus zu verschieben"
+msgstr ""
+"Es wurde versucht, das Ende der Inodebitmap über das echte Ende hinaus zu "
+"verschieben"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
@@ -6075,15 +6676,21 @@ msgstr "Der Ext2-Superblock ist beschädigt"
#: lib/ext2fs/ext2_err.c:72
msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
-msgstr "ext2fs_mark_generic_bitmap wurde eine unzulässige generische Bitnummer übergeben"
+msgstr ""
+"ext2fs_mark_generic_bitmap wurde eine unzulässige generische Bitnummer "
+"übergeben"
#: lib/ext2fs/ext2_err.c:73
msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
-msgstr "ext2fs_unmark_generic_bitmap wurde eine unzulässige generische Bitnummer übergeben"
+msgstr ""
+"ext2fs_unmark_generic_bitmap wurde eine unzulässige generische Bitnummer "
+"übergeben"
#: lib/ext2fs/ext2_err.c:74
msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
-msgstr "ext2fs_test_generic_bitmap wurde eine unzulässige generische Bitnummer übergeben"
+msgstr ""
+"ext2fs_test_generic_bitmap wurde eine unzulässige generische Bitnummer "
+"übergeben"
#: lib/ext2fs/ext2_err.c:75
msgid "Too many symbolic links encountered."
@@ -6107,7 +6714,8 @@ msgstr "Das Dateisystem besitzt nicht unterstützte nur-lesen Eigenschaft(en):"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr "E/A Kanal ist beim Suchen während des Lesens oder Schreibens gescheitert"
+msgstr ""
+"E/A Kanal ist beim Suchen während des Lesens oder Schreibens gescheitert"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
@@ -6195,7 +6803,9 @@ msgstr "Unzulässige Nummer für den Block für erweiterte Attribute"
#: lib/ext2fs/ext2_err.c:102
msgid "Cannot create filesystem with requested number of inodes"
-msgstr "Ein Dateisystem mit der gewünschten Anzahl von Inodes kann nicht erzeugt werden"
+msgstr ""
+"Ein Dateisystem mit der gewünschten Anzahl von Inodes kann nicht erzeugt "
+"werden"
#: lib/ext2fs/ext2_err.c:103
msgid "E2image snapshot not in use"
@@ -6211,7 +6821,8 @@ msgstr "Der zu modifizierende Inode ist defekt"
#: lib/ext2fs/ext2_err.c:106
msgid "Tried to set block bmap with missing indirect block"
-msgstr "Es wurde versucht, eine Block-Bmap mit fehlendem indirektem Block zu setzen"
+msgstr ""
+"Es wurde versucht, eine Block-Bmap mit fehlendem indirektem Block zu setzen"
#: lib/ext2fs/ext2_err.c:107
msgid "TDB: Success"
@@ -6259,7 +6870,9 @@ msgstr "Die Ext2fs-Verzeichnisblockliste ist leer"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr "Es wird versucht, ein Blockmapping mittels nur-lesenden Blockiteratoren zu modifizieren"
+msgstr ""
+"Es wird versucht, ein Blockmapping mittels nur-lesenden Blockiteratoren zu "
+"modifizieren"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
@@ -6363,7 +6976,9 @@ msgstr "Erweiterung wurde nicht gefunden"
#: lib/ext2fs/ext2_err.c:144
msgid "Operation not supported for inodes containing extents"
-msgstr "Die Operation wird für Inodes, die Erweiterungen beinhalten, nicht unterstützt"
+msgstr ""
+"Die Operation wird für Inodes, die Erweiterungen beinhalten, nicht "
+"unterstützt"
#: lib/ext2fs/ext2_err.c:145
msgid "Extent length is invalid"
@@ -6375,11 +6990,14 @@ msgstr "Der EA-Kanal unterstützt keine 64-bittigen Blocknummern"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr "Überprüfung ob das Dateisystem eingehängt ist mangels mtab Datei nicht möglich"
+msgstr ""
+"Überprüfung ob das Dateisystem eingehängt ist mangels mtab Datei nicht "
+"möglich"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "Das Dateisystem ist für die Verwendung von altertümlichen Bitmaps zu groß"
+msgstr ""
+"Das Dateisystem ist für die Verwendung von altertümlichen Bitmaps zu groß"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
@@ -6409,6 +7027,54 @@ msgstr "MMP: das Dateisystem wird noch verwendet"
msgid "MMP: open with O_DIRECT failed"
msgstr "MMP: das Öffnen mit O_DIRECT ist gescheitert"
+#: lib/ext2fs/ext2_err.c:156
+#, fuzzy
+msgid "Block group descriptor size incorrect"
+msgstr "<Des „group descriptor“-Inode>"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+#, fuzzy
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr "Die Inodebitmaps sind nicht identisch"
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+#, fuzzy
+msgid "Superblock checksum does not match superblock"
+msgstr "Superblock-Sicherungskopien gespeichert in den Blöcken: "
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+#, fuzzy
+msgid "Ext2 file already exists"
+msgstr "Das Ext2-Verzeichnis existiert bereits"
+
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
msgstr "Profil Versikon 0.0"
@@ -6427,7 +7093,9 @@ msgstr "Der Profilbezug wurde nicht gefunden"
#: e2fsck/prof_err.c:15
msgid "Attempt to add a relation to node which is not a section"
-msgstr "Es wird versucht, einen Bezug zu einem Knoten hinzu zu fügen, der keine Sektion ist"
+msgstr ""
+"Es wird versucht, einen Bezug zu einem Knoten hinzu zu fügen, der keine "
+"Sektion ist"
#: e2fsck/prof_err.c:16
msgid "A profile section header has a non-zero value"
@@ -6491,7 +7159,8 @@ msgstr "Ungültige magische Zahl in profile_section_t"
#: e2fsck/prof_err.c:31
msgid "Iteration through all top level section not supported"
-msgstr "Iteration über alle Sektionen der obersten Ebene wird nicht unterstützt"
+msgstr ""
+"Iteration über alle Sektionen der obersten Ebene wird nicht unterstützt"
#: e2fsck/prof_err.c:32
msgid "Invalid profile_section object"
@@ -6515,7 +7184,7 @@ msgstr "Ungültige magische Zahl in profile_file_t"
#: e2fsck/prof_err.c:37
msgid "Couldn't open profile file"
-msgstr "Die Prfildatei konnte nicht geöffnet werden"
+msgstr "Die Profildatei konnte nicht geöffnet werden"
#: e2fsck/prof_err.c:38
msgid "Section already exists"
@@ -6533,6 +7202,35 @@ msgstr "Ungültiger Wert für eine Ganzzahl"
msgid "Bad magic value in profile_file_data_t"
msgstr "Ungültige magische Zahl in profile_data_t"
+#~ msgid "Clearing extent flag not supported on %s"
+#~ msgstr ""
+#~ "Das Zurücksetzen des Kennzeichens für „Erweiterung“ wird auf %s\n"
+#~ "\tnicht unterstützt"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Status für %s konnte nicht ermittelt werden --- %s\n"
+
+#~ msgid ""
+#~ "%s: The combination of flex_bg and\n"
+#~ "\t!resize_inode features is not supported by resize2fs.\n"
+#~ msgstr ""
+#~ "%s: Die Kombination der Eigenschaften flex_bg und\n"
+#~ "t!resize_inode wird von resize2fs nicht unterestützt.\n"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "%s ist eingehängt. "
+
+#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
+#~ msgstr ""
+#~ "Die @b @B von @g %g ist nicht initialisiert aber @i @B wird verwendet.\n"
+
+#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
+#~ msgstr ""
+#~ " in @i %i sollte EOFBLOCKS_FL nicht gesetzt sein (Größe %Is, lblk %r)\n"
+
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "Konnte die Größe des Dateisystems nicht ermitteln"
+
#~ msgid "#\t\t %llu -> %llu (%llu)\n"
#~ msgstr "#\t\t %llu -> %llu (%llu)\n"
diff --git a/po/e2fsprogs.pot b/po/e2fsprogs.pot
index b00aa052..79b81605 100644
--- a/po/e2fsprogs.pot
+++ b/po/e2fsprogs.pot
@@ -1,9 +1,9 @@
# E2fsprogs translation template file
# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-# by Theodore Ts'o
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
+# 2013 by Theodore Ts'o
# This file is distributed under the same license as the e2fsprogs package.
-# Theodore Ts'o <tytso@mit.edu>, 2012.
+# Theodore Ts'o <tytso@mit.edu>, 2014.
#
#. 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,
@@ -66,18 +66,19 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42.2\n"
+"Project-Id-Version: e2fsprogs 1.42.10\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-03-27 12:00-0700\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:179
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr ""
@@ -90,11 +91,11 @@ msgstr ""
msgid "while reading the bad blocks inode"
msgstr ""
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1295 e2fsck/unix.c:1383 misc/badblocks.c:1214
-#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
-#: misc/dumpe2fs.c:578 misc/e2image.c:1190 misc/e2image.c:1308
-#: misc/e2image.c:1321 misc/mke2fs.c:195 misc/tune2fs.c:1907 resize/main.c:303
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr ""
@@ -104,7 +105,7 @@ msgstr ""
msgid "while trying popen '%s'"
msgstr ""
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:202
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr ""
@@ -112,7 +113,7 @@ msgstr ""
msgid "while updating bad block inode"
msgstr ""
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr ""
@@ -183,59 +184,64 @@ msgstr ""
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr ""
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr ""
-#: e2fsck/iscan.c:84 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr ""
-#: e2fsck/iscan.c:89 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr ""
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1085
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr ""
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr ""
-#: e2fsck/iscan.c:130 misc/e2image.c:1103
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr ""
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr ""
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr ""
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr ""
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr ""
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr ""
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr ""
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr ""
@@ -404,35 +410,35 @@ msgstr ""
msgid "<Reserved inode 10>"
msgstr ""
-#: e2fsck/message.c:333
+#: e2fsck/message.c:334
msgid "regular file"
msgstr ""
-#: e2fsck/message.c:335
+#: e2fsck/message.c:336
msgid "directory"
msgstr ""
-#: e2fsck/message.c:337
+#: e2fsck/message.c:338
msgid "character device"
msgstr ""
-#: e2fsck/message.c:339
+#: e2fsck/message.c:340
msgid "block device"
msgstr ""
-#: e2fsck/message.c:341
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr ""
-#: e2fsck/message.c:343
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr ""
-#: e2fsck/message.c:345 misc/uuidd.c:161
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr ""
-#: e2fsck/message.c:347
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr ""
@@ -461,96 +467,96 @@ msgstr ""
msgid "multiply claimed inode map"
msgstr ""
-#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:729
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
msgstr ""
-#: e2fsck/pass1b.c:820
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr ""
-#: e2fsck/pass1b.c:842
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
msgstr ""
-#: e2fsck/pass1b.c:854
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr ""
-#: e2fsck/pass1.c:476 e2fsck/pass2.c:782
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr ""
-#: e2fsck/pass1.c:599
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr ""
-#: e2fsck/pass1.c:610
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr ""
-#: e2fsck/pass1.c:620
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr ""
-#: e2fsck/pass1.c:629
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr ""
-#: e2fsck/pass1.c:696
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr ""
-#: e2fsck/pass1.c:730
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr ""
-#: e2fsck/pass1.c:1240
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr ""
-#: e2fsck/pass1.c:1297
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr ""
-#: e2fsck/pass1.c:1347
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr ""
-#: e2fsck/pass1.c:1370
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr ""
-#: e2fsck/pass1.c:1390
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr ""
-#: e2fsck/pass1.c:1417
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr ""
-#: e2fsck/pass1.c:1518
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr ""
-#: e2fsck/pass1.c:2266
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr ""
-#: e2fsck/pass1.c:2627
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr ""
-#: e2fsck/pass1.c:2633
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr ""
-#: e2fsck/pass1.c:2639
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr ""
@@ -570,15 +576,15 @@ msgstr ""
msgid "Peak memory"
msgstr ""
-#: e2fsck/pass3.c:136
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr ""
-#: e2fsck/pass3.c:322
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr ""
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr ""
@@ -765,25 +771,28 @@ msgid ""
msgstr ""
#: e2fsck/problem.c:122
-#, c-format
#. @-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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
#. @-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
@@ -793,7 +802,7 @@ msgid ""
"Either the @S or the partition table is likely to be corrupt!\n"
msgstr ""
-#: e2fsck/problem.c:138
+#: e2fsck/problem.c:140
#. @-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
@@ -803,17 +812,17 @@ msgid ""
"from the @b size.\n"
msgstr ""
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr ""
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
#. @-expanded: superblock first_data_block = %b, should have been %c\n
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr ""
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
msgid ""
@@ -821,7 +830,7 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -832,53 +841,53 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:169
+#: e2fsck/problem.c:171
#. @-expanded: Corruption found in superblock. (%s = %N).\n
msgid "Corruption found in @S. (%s = %N).\n"
msgstr ""
-#: e2fsck/problem.c:174
+#: e2fsck/problem.c:176
#, c-format
#. @-expanded: Error determining size of the physical device: %m\n
msgid "Error determining size of the physical @v: %m\n"
msgstr ""
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
#. @-expanded: inode count in superblock is %i, should be %j.\n
msgid "@i count in @S is %i, @s %j.\n"
msgstr ""
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr ""
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
#. @-expanded: superblock has an invalid journal (inode %i).\n
msgid "@S has an @n @j (@i %i).\n"
msgstr ""
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
msgid "External @j has multiple @f users (unsupported).\n"
msgstr ""
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
#. @-expanded: Can't find external journal\n
msgid "Can't find external @j\n"
msgstr ""
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
#. @-expanded: External journal has bad superblock\n
msgid "External @j has bad @S\n"
msgstr ""
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
#. @-expanded: External journal does not support this filesystem\n
msgid "External @j does not support this @f\n"
msgstr ""
-#: e2fsck/problem.c:213
+#: e2fsck/problem.c:215
#. @-expanded: filesystem 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
@@ -890,80 +899,80 @@ msgid ""
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
#. @-expanded: journal superblock is corrupt.\n
msgid "@j @S is corrupt.\n"
msgstr ""
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr ""
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr ""
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr ""
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
#. @-expanded: Clear journal
msgid "Clear @j"
msgstr ""
-#: e2fsck/problem.c:246 e2fsck/problem.c:695
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
msgstr ""
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr ""
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
msgid "@I %B (%b) found in @o @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
#. @-expanded: illegal orphaned inode %i in superblock.\n
msgid "@I @o @i %i in @S.\n"
msgstr ""
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
#. @-expanded: illegal inode %i in orphaned inode list.\n
msgid "@I @i %i in @o @i list.\n"
msgstr ""
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr ""
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr ""
-#: e2fsck/problem.c:286
+#: e2fsck/problem.c:288
#. @-expanded: journal version not supported by this e2fsck.\n
msgid "@j version not supported by this e2fsck.\n"
msgstr ""
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
@@ -972,7 +981,7 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
@@ -981,7 +990,7 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:301
+#: e2fsck/problem.c:303
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
@@ -991,17 +1000,17 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
#. @-expanded: Run journal anyway
msgid "Run @j anyway"
msgstr ""
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
msgstr ""
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
msgid ""
@@ -1009,7 +1018,7 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:322
+#: e2fsck/problem.c:324
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
msgid ""
@@ -1017,17 +1026,17 @@ msgid ""
"is %N; @s zero. "
msgstr ""
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr ""
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
#. @-expanded: Resize inode not valid.
msgid "Resize @i not valid. "
msgstr ""
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
msgid ""
@@ -1035,7 +1044,7 @@ msgid ""
"\tnow = %T) is in the future.\n"
msgstr ""
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
msgid ""
@@ -1043,13 +1052,13 @@ msgid ""
"\tnow = %T) is in the future.\n"
msgstr ""
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
#. @-expanded: superblock hint for external superblock should be %X.
msgid "@S hint for external superblock @s %X. "
msgstr ""
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
msgid ""
@@ -1057,37 +1066,37 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:357
+#: e2fsck/problem.c:359
#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
msgid "@g descriptor %g checksum is %04x, should be %04y. "
msgstr ""
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr ""
-#: e2fsck/problem.c:367
+#: e2fsck/problem.c:369
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr ""
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:374
#. @-expanded: Last group block bitmap uninitialized.
msgid "Last @g @b @B uninitialized. "
msgstr ""
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr ""
-#: e2fsck/problem.c:381
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr ""
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:388
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
@@ -1097,7 +1106,7 @@ msgid ""
"set) "
msgstr ""
-#: e2fsck/problem.c:392
+#: e2fsck/problem.c:394
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
@@ -1107,165 +1116,167 @@ msgid ""
"set). "
msgstr ""
-#: e2fsck/problem.c:398
+#: e2fsck/problem.c:400
#. @-expanded: One or more block group descriptor checksums are invalid.
msgid "One or more @b @g descriptor checksums are invalid. "
msgstr ""
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:405
#. @-expanded: Setting free inodes count to %j (was %i)\n
msgid "Setting free @is count to %j (was %i)\n"
msgstr ""
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:410
#. @-expanded: Setting free blocks count to %c (was %b)\n
msgid "Setting free @bs count to %c (was %b)\n"
msgstr ""
-#: e2fsck/problem.c:413
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
+#: e2fsck/problem.c:415
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+msgid "Making @q @i %i (%Q) hidden.\n"
msgstr ""
-#: e2fsck/problem.c:418
+#: e2fsck/problem.c:420
#. @-expanded: superblock has invalid MMP block.
msgid "@S has invalid MMP block. "
msgstr ""
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:425
#. @-expanded: superblock has invalid MMP magic.
msgid "@S has invalid MMP magic. "
msgstr ""
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:430
#, c-format
msgid "ext2fs_open2: %m\n"
msgstr ""
-#: e2fsck/problem.c:433
+#: e2fsck/problem.c:435
#, c-format
msgid "ext2fs_check_desc: %m\n"
msgstr ""
#: e2fsck/problem.c:440
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
+#: e2fsck/problem.c:447
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr ""
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:451
#. @-expanded: root inode is not a directory.
msgid "@r is not a @d. "
msgstr ""
-#: e2fsck/problem.c:449
+#: e2fsck/problem.c:456
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr ""
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:461
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr ""
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:466
#, c-format
#. @-expanded: deleted inode %i has zero dtime.
msgid "@D @i %i has zero dtime. "
msgstr ""
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:471
#, c-format
#. @-expanded: inode %i is in use, but has dtime set.
msgid "@i %i is in use, but has dtime set. "
msgstr ""
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:476
#, c-format
#. @-expanded: inode %i is a zero-length directory.
msgid "@i %i is a @z @d. "
msgstr ""
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:481
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
msgid "@g %g's @b @B at %b @C.\n"
msgstr ""
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:486
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
msgid "@g %g's @i @B at %b @C.\n"
msgstr ""
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:491
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
msgid "@g %g's @i table at %b @C.\n"
msgstr ""
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:496
#. @-expanded: group %g's block bitmap (%b) is bad.
msgid "@g %g's @b @B (%b) is bad. "
msgstr ""
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:501
#. @-expanded: group %g's inode bitmap (%b) is bad.
msgid "@g %g's @i @B (%b) is bad. "
msgstr ""
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:506
#. @-expanded: inode %i, i_size is %Is, should be %N.
msgid "@i %i, i_size is %Is, @s %N. "
msgstr ""
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:511
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr ""
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:516
#. @-expanded: illegal %B (%b) in inode %i.
msgid "@I %B (%b) in @i %i. "
msgstr ""
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:521
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr ""
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:526
#, c-format
#. @-expanded: inode %i has illegal block(s).
msgid "@i %i has illegal @b(s). "
msgstr ""
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:531
#, c-format
#. @-expanded: Too many illegal blocks in inode %i.\n
msgid "Too many illegal @bs in @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:536
#. @-expanded: illegal %B (%b) in bad block inode.
msgid "@I %B (%b) in bad @b @i. "
msgstr ""
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:541
#. @-expanded: Bad block inode has illegal block(s).
msgid "Bad @b @i has illegal @b(s). "
msgstr ""
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:546
#. @-expanded: Duplicate or bad block in use!\n
msgid "Duplicate or bad @b in use!\n"
msgstr ""
-#: e2fsck/problem.c:544
+#: e2fsck/problem.c:551
#. @-expanded: Bad block %b used as bad block inode indirect block.
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr ""
-#: e2fsck/problem.c:549
+#: e2fsck/problem.c:556
#. @-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
@@ -1277,7 +1288,7 @@ msgid ""
"in the @f.\n"
msgstr ""
-#: e2fsck/problem.c:556
+#: e2fsck/problem.c:563
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
msgid ""
@@ -1285,7 +1296,7 @@ msgid ""
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
-#: e2fsck/problem.c:561
+#: e2fsck/problem.c:568
#. @-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
@@ -1295,120 +1306,120 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:574
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr ""
-#: e2fsck/problem.c:572
+#: e2fsck/problem.c:579
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
msgstr ""
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:585
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr ""
-#: e2fsck/problem.c:583
+#: e2fsck/problem.c:590
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
msgstr ""
-#: e2fsck/problem.c:589
+#: e2fsck/problem.c:596
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
msgstr ""
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:602
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr ""
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:607
#, c-format
#. @-expanded: error allocating block buffer for relocating %s\n
msgid "@A @b buffer for relocating %s\n"
msgstr ""
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:612
#. @-expanded: Relocating group %g's %s from %b to %c...\n
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr ""
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:617
#, c-format
#. @-expanded: Relocating group %g's %s to %c...\n
msgid "Relocating @g %g's %s to %c...\n"
msgstr ""
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:622
#. @-expanded: Warning: could not read block %b of %s: %m\n
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr ""
-#: e2fsck/problem.c:620
+#: e2fsck/problem.c:627
#. @-expanded: Warning: could not write block %b for %s: %m\n
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr ""
-#: e2fsck/problem.c:625 e2fsck/problem.c:1460
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
#. @-expanded: error allocating inode bitmap (%N): %m\n
msgid "@A @i @B (%N): %m\n"
msgstr ""
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:637
#. @-expanded: error allocating block bitmap (%N): %m\n
msgid "@A @b @B (%N): %m\n"
msgstr ""
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:642
#, c-format
#. @-expanded: error allocating icount link information: %m\n
msgid "@A icount link information: %m\n"
msgstr ""
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:647
#, c-format
#. @-expanded: error allocating directory block array: %m\n
msgid "@A @d @b array: %m\n"
msgstr ""
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:652
#, c-format
#. @-expanded: Error while scanning inodes (%i): %m\n
msgid "Error while scanning @is (%i): %m\n"
msgstr ""
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:657
#, c-format
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr ""
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:662
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr ""
-#: e2fsck/problem.c:660
+#: e2fsck/problem.c:667
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
msgstr ""
-#: e2fsck/problem.c:666
+#: e2fsck/problem.c:673
#, c-format
#. @-expanded: Error reading inode %i: %m\n
msgid "Error reading @i %i: %m\n"
msgstr ""
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:681
#, c-format
#. @-expanded: inode %i has imagic flag set.
msgid "@i %i has imagic flag set. "
msgstr ""
-#: e2fsck/problem.c:679
+#: e2fsck/problem.c:686
#, c-format
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
@@ -1417,148 +1428,148 @@ msgid ""
"or append-only flag set. "
msgstr ""
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:692
#, c-format
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr ""
-#: e2fsck/problem.c:690
+#: e2fsck/problem.c:697
#, c-format
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr ""
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:707
#. @-expanded: journal inode is not in use, but contains data.
msgid "@j @i is not in use, but contains data. "
msgstr ""
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:712
#. @-expanded: journal is not regular file.
msgid "@j is not regular file. "
msgstr ""
-#: e2fsck/problem.c:710
+#: e2fsck/problem.c:717
#, c-format
#. @-expanded: inode %i was part of the orphaned inode list.
msgid "@i %i was part of the @o @i list. "
msgstr ""
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:723
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr ""
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:728
#. @-expanded: error allocating refcount structure (%N): %m\n
msgid "@A refcount structure (%N): %m\n"
msgstr ""
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:733
#. @-expanded: Error reading extended attribute block %b for inode %i.
msgid "Error reading @a @b %b for @i %i. "
msgstr ""
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:738
#. @-expanded: inode %i has a bad extended attribute block %b.
msgid "@i %i has a bad @a @b %b. "
msgstr ""
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:743
#. @-expanded: Error reading extended attribute block %b (%m).
msgid "Error reading @a @b %b (%m). "
msgstr ""
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:748
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
msgid "@a @b %b has reference count %r, @s %N. "
msgstr ""
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:753
#. @-expanded: Error writing extended attribute block %b (%m).
msgid "Error writing @a @b %b (%m). "
msgstr ""
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:758
#. @-expanded: extended attribute block %b has h_blocks > 1.
msgid "@a @b %b has h_@bs > 1. "
msgstr ""
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:763
#. @-expanded: error allocating extended attribute block %b.
msgid "@A @a @b %b. "
msgstr ""
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:768
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
msgid "@a @b %b is corrupt (allocation collision). "
msgstr ""
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:773
#. @-expanded: extended attribute block %b is corrupt (invalid name).
msgid "@a @b %b is corrupt (@n name). "
msgstr ""
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:778
#. @-expanded: extended attribute block %b is corrupt (invalid value).
msgid "@a @b %b is corrupt (@n value). "
msgstr ""
-#: e2fsck/problem.c:776
+#: e2fsck/problem.c:783
#, c-format
#. @-expanded: inode %i is too big.
msgid "@i %i is too big. "
msgstr ""
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:787
#. @-expanded: %B (%b) causes directory to be too big.
msgid "%B (%b) causes @d to be too big. "
msgstr ""
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
msgstr ""
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
msgstr ""
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:802
#, c-format
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr ""
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:807
#, c-format
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr ""
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:812
#, c-format
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
msgid "@h %i has an @n root node.\n"
msgstr ""
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:817
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr ""
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:822
#, c-format
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr ""
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:827
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr ""
-#: e2fsck/problem.c:825
+#: e2fsck/problem.c:832
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
msgid ""
@@ -1566,54 +1577,54 @@ msgid ""
"@f metadata. "
msgstr ""
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:838
#, c-format
#. @-expanded: Resize inode (re)creation failed: %m.
msgid "Resize @i (re)creation failed: %m."
msgstr ""
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:843
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr ""
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:848
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr ""
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:853
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr ""
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:858
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr ""
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:863
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
msgid "@a in @i %i has a value size (%N) which is @n\n"
msgstr ""
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:868
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr ""
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:873
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr ""
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:878
#, c-format
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr ""
-#: e2fsck/problem.c:876
+#: e2fsck/problem.c:883
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
msgid ""
@@ -1621,7 +1632,7 @@ msgid ""
"\t(op %s, blk %b, lblk %c): %m\n"
msgstr ""
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:889
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
msgid ""
@@ -1629,7 +1640,7 @@ msgid ""
"\t(logical @b %c, @n physical @b %b, len %N)\n"
msgstr ""
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:894
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
msgid ""
@@ -1637,30 +1648,30 @@ msgid ""
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:899
#, c-format
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr ""
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:904
#, c-format
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr ""
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:909
#, c-format
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr ""
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr ""
-#: e2fsck/problem.c:912
+#: e2fsck/problem.c:919
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
msgid ""
@@ -1668,38 +1679,38 @@ msgid ""
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
-#: e2fsck/problem.c:916
+#: e2fsck/problem.c:923
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr ""
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
#. @-expanded: Error converting subcluster block bitmap: %m\n
msgid "Error converting subcluster @b @B: %m\n"
msgstr ""
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
#. @-expanded: quota inode is not regular file.
msgid "@q @i is not regular file. "
msgstr ""
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
#. @-expanded: quota inode is not in use, but contains data.
msgid "@q @i is not in use, but contains data. "
msgstr ""
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
#. @-expanded: quota inode is visible to the user.
msgid "@q @i is visible to the user. "
msgstr ""
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
#. @-expanded: The bad block inode looks invalid.
msgid "The bad @b @i looks @n. "
msgstr ""
-#: e2fsck/problem.c:946
+#: e2fsck/problem.c:953
#. @-expanded: inode %i has zero length extent\n
#. @-expanded: \t(invalid logical block %c, physical block %b)\n
msgid ""
@@ -1707,7 +1718,23 @@ msgid ""
"\t(@n logical @b %c, physical @b %b)\n"
msgstr ""
-#: e2fsck/problem.c:953
+#: e2fsck/problem.c:960
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#: e2fsck/problem.c:966
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+
+#: e2fsck/problem.c:974
#. @-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
@@ -1717,45 +1744,45 @@ msgid ""
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
-#: e2fsck/problem.c:959
+#: e2fsck/problem.c:980
#, c-format
#. @-expanded: multiply-claimed block(s) in inode %i:
msgid "@m @b(s) in @i %i:"
msgstr ""
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr ""
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1000
#, c-format
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr ""
-#: e2fsck/problem.c:984
+#: e2fsck/problem.c:1005
#, c-format
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:989 e2fsck/problem.c:1304
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr ""
-#: e2fsck/problem.c:994
+#: e2fsck/problem.c:1015
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr ""
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1021
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr ""
-#: e2fsck/problem.c:1005
+#: e2fsck/problem.c:1026
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
msgid ""
@@ -1763,17 +1790,17 @@ msgid ""
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1032
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr ""
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1037
#. @-expanded: \t<filesystem metadata>\n
msgid "\t<@f metadata>\n"
msgstr ""
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1042
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
msgid ""
@@ -1781,7 +1808,7 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:1026
+#: e2fsck/problem.c:1047
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
msgid ""
@@ -1789,313 +1816,313 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:1039
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr ""
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1066
#. @-expanded: Pass 2: Checking directory structure\n
msgid "Pass 2: Checking @d structure\n"
msgstr ""
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1071
#, c-format
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1076
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
msgid "@E has @n @i #: %Di.\n"
msgstr ""
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1081
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
msgid "@E has @D/unused @i %Di. "
msgstr ""
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1086
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
msgid "@E @L to '.' "
msgstr ""
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1091
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr ""
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1096
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
msgid "@E @L to @d %P (%Di).\n"
msgstr ""
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1101
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
msgid "@E @L to the @r.\n"
msgstr ""
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1106
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
msgid "@E has illegal characters in its name.\n"
msgstr ""
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1111
#, c-format
#. @-expanded: Missing '.' in directory inode %i.\n
msgid "Missing '.' in @d @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1116
#, c-format
#. @-expanded: Missing '..' in directory inode %i.\n
msgid "Missing '..' in @d @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1121
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr ""
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1126
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr ""
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1131
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
msgid "i_faddr @F %IF, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1136
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
msgid "i_file_acl @F %If, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1141
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1146
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
msgid "i_frag @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1151
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
msgid "i_fsize @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1156
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr ""
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1161
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr ""
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1166
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr ""
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1171
#. @-expanded: directory inode %i has an unallocated %B.
msgid "@d @i %i has an unallocated %B. "
msgstr ""
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1176
#, c-format
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr ""
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1181
#, c-format
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr ""
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1186
#. @-expanded: inode %i (%Q) is an illegal character device.\n
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr ""
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1191
#. @-expanded: inode %i (%Q) is an illegal block device.\n
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr ""
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1196
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
msgid "@E is duplicate '.' @e.\n"
msgstr ""
-#: e2fsck/problem.c:1180
+#: e2fsck/problem.c:1201
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
msgid "@E is duplicate '..' @e.\n"
msgstr ""
-#: e2fsck/problem.c:1185 e2fsck/problem.c:1485
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr ""
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1211
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr ""
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1216
#, c-format
#. @-expanded: error allocating icount structure: %m\n
msgid "@A icount structure: %m\n"
msgstr ""
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1221
#, c-format
#. @-expanded: Error iterating over directory blocks: %m\n
msgid "Error iterating over @d @bs: %m\n"
msgstr ""
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1226
#. @-expanded: Error reading directory block %b (inode %i): %m\n
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr ""
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1231
#. @-expanded: Error writing directory block %b (inode %i): %m\n
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr ""
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1236
#, c-format
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1241
#, c-format
#. @-expanded: Error deallocating inode %i: %m\n
msgid "Error deallocating @i %i: %m\n"
msgstr ""
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1246
#, c-format
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr ""
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1251
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr ""
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1256
#. @-expanded: inode %i (%Q) is an illegal socket.\n
msgid "@i %i (%Q) is an @I socket.\n"
msgstr ""
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1261
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
msgid "Setting filetype for @E to %N.\n"
msgstr ""
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1266
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr ""
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1271
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
msgid "@E has filetype set.\n"
msgstr ""
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1276
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
msgid "@E has a @z name.\n"
msgstr ""
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1281
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr ""
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1286
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
msgid "@a @b @F @n (%If).\n"
msgstr ""
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1291
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr ""
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1296
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
msgid "@p @h %d: %B not referenced\n"
msgstr ""
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1301
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
msgid "@p @h %d: %B referenced twice\n"
msgstr ""
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1306
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
msgid "@p @h %d: %B has bad min hash\n"
msgstr ""
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1311
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
msgid "@p @h %d: %B has bad max hash\n"
msgstr ""
-#: e2fsck/problem.c:1295
+#: e2fsck/problem.c:1316
#. @-expanded: invalid HTREE directory inode %d (%q).
msgid "@n @h %d (%q). "
msgstr ""
-#: e2fsck/problem.c:1299
+#: e2fsck/problem.c:1320
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr ""
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1330
#, c-format
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
msgid "@p @h %d: root node is @n\n"
msgstr ""
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1335
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1340
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1345
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr ""
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1350
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1355
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
msgid "Duplicate @E found. "
msgstr ""
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1360
#, no-c-format
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
@@ -2104,7 +2131,7 @@ msgid ""
"Rename to %s"
msgstr ""
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1365
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
@@ -2114,115 +2141,115 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1370
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1354
+#: e2fsck/problem.c:1375
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
msgid "Unexpected @b in @h %d (%q).\n"
msgstr ""
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1379
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr ""
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1384
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
-#: e2fsck/problem.c:1368
+#: e2fsck/problem.c:1389
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1396
#. @-expanded: Pass 3: Checking directory connectivity\n
msgid "Pass 3: Checking @d connectivity\n"
msgstr ""
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1401
#. @-expanded: root inode not allocated.
msgid "@r not allocated. "
msgstr ""
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1406
#. @-expanded: No room in lost+found directory.
msgid "No room in @l @d. "
msgstr ""
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1411
#, c-format
#. @-expanded: Unconnected directory inode %i (%p)\n
msgid "Unconnected @d @i %i (%p)\n"
msgstr ""
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1416
#. @-expanded: /lost+found not found.
msgid "/@l not found. "
msgstr ""
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1421
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr ""
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1426
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr ""
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1431
#, c-format
#. @-expanded: Could not expand /lost+found: %m\n
msgid "Could not expand /@l: %m\n"
msgstr ""
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr ""
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1441
#, c-format
#. @-expanded: Error while trying to find /lost+found: %m\n
msgid "Error while trying to find /@l: %m\n"
msgstr ""
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1446
#, c-format
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr ""
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1451
#, c-format
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr ""
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1456
#, c-format
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr ""
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1461
#, c-format
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr ""
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1466
#, c-format
#. @-expanded: Error while adjusting inode count on inode %i\n
msgid "Error while adjusting @i count on @i %i\n"
msgstr ""
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1471
#, c-format
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
@@ -2231,7 +2258,7 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:1455
+#: e2fsck/problem.c:1476
#, c-format
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
@@ -2240,73 +2267,73 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1486
#, c-format
#. @-expanded: Error creating root directory (%s): %m\n
msgid "Error creating root @d (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1491
#, c-format
#. @-expanded: Error creating /lost+found directory (%s): %m\n
msgid "Error creating /@l @d (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1496
#. @-expanded: root inode is not a directory; aborting.\n
msgid "@r is not a @d; aborting.\n"
msgstr ""
-#: e2fsck/problem.c:1480
+#: e2fsck/problem.c:1501
#. @-expanded: Cannot proceed without a root inode.\n
msgid "Cannot proceed without a @r.\n"
msgstr ""
-#: e2fsck/problem.c:1490
+#: e2fsck/problem.c:1511
#, c-format
#. @-expanded: /lost+found is not a directory (ino=%i)\n
msgid "/@l is not a @d (ino=%i)\n"
msgstr ""
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr ""
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr ""
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr ""
-#: e2fsck/problem.c:1512
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr ""
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr ""
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1555
#, c-format
#. @-expanded: unattached zero-length inode %i.
msgid "@u @z @i %i. "
msgstr ""
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1560
#, c-format
#. @-expanded: unattached inode %i\n
msgid "@u @i %i\n"
msgstr ""
-#: e2fsck/problem.c:1544
+#: e2fsck/problem.c:1565
#. @-expanded: inode %i ref count is %Il, should be %N.
msgid "@i %i ref count is %Il, @s %N. "
msgstr ""
-#: e2fsck/problem.c:1548
+#: e2fsck/problem.c:1569
#. @-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
@@ -2316,57 +2343,57 @@ msgid ""
"@i_link_info[%i] is %N, @i.i_links_count is %Il. They @s the same!\n"
msgstr ""
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1579
#. @-expanded: Pass 5: Checking group summary information\n
msgid "Pass 5: Checking @g summary information\n"
msgstr ""
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1584
#. @-expanded: Padding at end of inode bitmap is not set.
msgid "Padding at end of @i @B is not set. "
msgstr ""
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1589
#. @-expanded: Padding at end of block bitmap is not set.
msgid "Padding at end of @b @B is not set. "
msgstr ""
-#: e2fsck/problem.c:1573
+#: e2fsck/problem.c:1594
#. @-expanded: block bitmap differences:
msgid "@b @B differences: "
msgstr ""
-#: e2fsck/problem.c:1593
+#: e2fsck/problem.c:1614
#. @-expanded: inode bitmap differences:
msgid "@i @B differences: "
msgstr ""
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1634
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1639
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1644
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr ""
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1649
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr ""
-#: e2fsck/problem.c:1633
+#: e2fsck/problem.c:1654
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr ""
-#: e2fsck/problem.c:1638
+#: e2fsck/problem.c:1659
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
msgid ""
@@ -2374,85 +2401,89 @@ msgid ""
"endpoints (%i, %j)\n"
msgstr ""
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1670
#, c-format
#. @-expanded: Error copying in replacement inode bitmap: %m\n
msgid "Error copying in replacement @i @B: %m\n"
msgstr ""
-#: e2fsck/problem.c:1654
+#: e2fsck/problem.c:1675
#, c-format
#. @-expanded: Error copying in replacement block bitmap: %m\n
msgid "Error copying in replacement @b @B: %m\n"
msgstr ""
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1700
#, c-format
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1684
+#: e2fsck/problem.c:1705
#, c-format
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1691
+#: e2fsck/problem.c:1712
#. @-expanded: Recreate journal
msgid "Recreate @j"
msgstr ""
-#: e2fsck/problem.c:1810
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr ""
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr ""
-#: e2fsck/problem.c:1935 e2fsck/problem.c:1939
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr ""
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr ""
-#: e2fsck/scantest.c:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr ""
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr ""
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr ""
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr ""
-#: e2fsck/super.c:210
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr ""
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr ""
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr ""
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2461,8 +2492,7 @@ msgid ""
"\t\t[-E extended-options] device\n"
msgstr ""
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
@@ -2474,8 +2504,7 @@ msgid ""
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
-#: e2fsck/unix.c:89
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2485,163 +2514,163 @@ msgid ""
" -L bad_blocks_file Set badblocks list\n"
msgstr ""
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr ""
-#: e2fsck/unix.c:140
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:144
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:149
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:154
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
msgstr ""
-#: e2fsck/unix.c:162
-msgid " Extent depth histogram: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
msgstr ""
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:180
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:187
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:194
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:201
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:215 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
-#: resize/main.c:247
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr ""
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
+msgid "Warning! %s is %s.\n"
msgstr ""
-#: e2fsck/unix.c:238
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
+msgid "%s is %s.\n"
msgstr ""
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2650,134 +2679,131 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr ""
-#: e2fsck/unix.c:249
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr ""
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr ""
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr ""
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr ""
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr ""
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
msgstr ""
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr ""
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ""
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr ""
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr ""
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr ""
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr ""
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr ""
-#: e2fsck/unix.c:645
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr ""
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr ""
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr ""
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr ""
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr ""
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr ""
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr ""
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
msgstr ""
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
msgstr ""
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
msgstr ""
-#: e2fsck/unix.c:943
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr ""
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2785,194 +2811,193 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1129
#, c-format
msgid ""
"MMP interval is %u seconds and total wait time is %u seconds. Please "
"wait...\n"
msgstr ""
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
msgstr ""
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-#: e2fsck/unix.c:1162
-#, c-format
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr ""
-#: e2fsck/unix.c:1170
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr ""
-#: e2fsck/unix.c:1193
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr ""
-#: e2fsck/unix.c:1205
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr ""
-#: e2fsck/unix.c:1253
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr ""
-#: e2fsck/unix.c:1255
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr ""
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr ""
-#: e2fsck/unix.c:1266
+#: e2fsck/unix.c:1312
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr ""
-#: e2fsck/unix.c:1270
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr ""
-#: e2fsck/unix.c:1298
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:1304
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr ""
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr ""
-#: e2fsck/unix.c:1312
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr ""
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr ""
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-#: e2fsck/unix.c:1386
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr ""
-#: e2fsck/unix.c:1434
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr ""
-#: e2fsck/unix.c:1445
+#: e2fsck/unix.c:1489
msgid ""
"Warning: skipping journal recovery because doing a read-only filesystem "
"check.\n"
msgstr ""
-#: e2fsck/unix.c:1458
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr ""
-#: e2fsck/unix.c:1464
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr ""
-#: e2fsck/unix.c:1489
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr ""
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1547
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr ""
-#: e2fsck/unix.c:1510
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-#: e2fsck/unix.c:1562
+#: e2fsck/unix.c:1605
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr ""
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr ""
-#: e2fsck/unix.c:1607
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr ""
-#: e2fsck/unix.c:1617
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr ""
-#: e2fsck/unix.c:1618
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
-#: e2fsck/unix.c:1630
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr ""
-#: e2fsck/unix.c:1634
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr ""
-#: e2fsck/unix.c:1641
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr ""
-#: e2fsck/unix.c:1646
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr ""
-#: e2fsck/unix.c:1658 e2fsck/util.c:67
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"%s: ***** FILE SYSTEM WAS MODIFIED *****\n"
msgstr ""
-#: e2fsck/unix.c:1662
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr ""
-#: e2fsck/unix.c:1670 e2fsck/util.c:73
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -2980,88 +3005,88 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/unix.c:1710
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr ""
-#: e2fsck/util.c:189 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr ""
-#: e2fsck/util.c:190
+#: e2fsck/util.c:191
msgid "nN"
msgstr ""
-#: e2fsck/util.c:204
+#: e2fsck/util.c:205
msgid "<y>"
msgstr ""
-#: e2fsck/util.c:206
+#: e2fsck/util.c:207
msgid "<n>"
msgstr ""
-#: e2fsck/util.c:208
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr ""
-#: e2fsck/util.c:222
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr ""
-#: e2fsck/util.c:237
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr ""
-#: e2fsck/util.c:239
+#: e2fsck/util.c:240
msgid "no\n"
msgstr ""
-#: e2fsck/util.c:249
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
"\n"
msgstr ""
-#: e2fsck/util.c:253
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
"\n"
msgstr ""
-#: e2fsck/util.c:257
+#: e2fsck/util.c:258
msgid "yes"
msgstr ""
-#: e2fsck/util.c:257
+#: e2fsck/util.c:258
msgid "no"
msgstr ""
-#: e2fsck/util.c:272
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr ""
-#: e2fsck/util.c:277
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr ""
-#: e2fsck/util.c:285
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr ""
-#: e2fsck/util.c:297
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr ""
-#: e2fsck/util.c:302
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr ""
-#: e2fsck/util.c:314
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3070,41 +3095,41 @@ msgid ""
"\t(i.e., without -a or -p options)\n"
msgstr ""
-#: e2fsck/util.c:395
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr ""
-#: e2fsck/util.c:399
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr ""
-#: e2fsck/util.c:406
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr ""
-#: e2fsck/util.c:411
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr ""
-#: e2fsck/util.c:446 e2fsck/util.c:460
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr ""
-#: e2fsck/util.c:474 e2fsck/util.c:487
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr ""
-#: e2fsck/util.c:636
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr ""
-#: e2fsck/util.c:788
+#: e2fsck/util.c:785
msgid ""
"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
"running.\n"
@@ -3114,7 +3139,7 @@ msgstr ""
msgid "done \n"
msgstr ""
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
@@ -3124,179 +3149,188 @@ msgid ""
" device [last_block [first_block]]\n"
msgstr ""
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr ""
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr ""
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr ""
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr ""
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr ""
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr ""
-#: misc/badblocks.c:489 misc/badblocks.c:749
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr ""
-#: misc/badblocks.c:503 misc/badblocks.c:602 misc/badblocks.c:759
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr ""
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr ""
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr ""
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr ""
-#: misc/badblocks.c:528 misc/badblocks.c:634 misc/badblocks.c:676
-#: misc/badblocks.c:822
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr ""
-#: misc/badblocks.c:609
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr ""
-#: misc/badblocks.c:611 misc/badblocks.c:772
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr ""
-#: misc/badblocks.c:666
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr ""
-#: misc/badblocks.c:771
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr ""
-#: misc/badblocks.c:777
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr ""
-#: misc/badblocks.c:784
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
msgstr ""
-#: misc/badblocks.c:867
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr ""
-#: misc/badblocks.c:988 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr ""
-#: misc/badblocks.c:990
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
-#: misc/badblocks.c:995
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr ""
-#: misc/badblocks.c:1000 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr ""
-#: misc/badblocks.c:1003
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr ""
-#: misc/badblocks.c:1023
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr ""
-#: misc/badblocks.c:1133
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr ""
-#: misc/badblocks.c:1163
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr ""
-#: misc/badblocks.c:1169
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr ""
-#: misc/badblocks.c:1183
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
msgstr ""
-#: misc/badblocks.c:1189
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr ""
-#: misc/badblocks.c:1194
+#: misc/badblocks.c:1200
msgid "last block"
msgstr ""
-#: misc/badblocks.c:1200
+#: misc/badblocks.c:1206
msgid "first block"
msgstr ""
-#: misc/badblocks.c:1203
+#: misc/badblocks.c:1209
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+msgid "invalid starting block (%llu): must be less than %llu"
msgstr ""
-#: misc/badblocks.c:1259
+#: misc/badblocks.c:1216
+#, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr ""
+
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr ""
-#: misc/badblocks.c:1274
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr ""
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr ""
-#: misc/badblocks.c:1298
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr ""
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
msgstr ""
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr ""
@@ -3311,172 +3345,166 @@ msgstr ""
msgid "while reading flags on %s"
msgstr ""
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr ""
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr ""
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr ""
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr ""
-#: misc/chattr.c:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr ""
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr ""
-#: misc/chattr.c:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr ""
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr ""
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr ""
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
msgstr ""
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
msgstr ""
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr ""
-#: misc/dumpe2fs.c:197
+#: misc/dumpe2fs.c:205
#, c-format
msgid " Checksum 0x%04x"
msgstr ""
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:207
#, c-format
msgid " (EXPECTED 0x%04x)"
msgstr ""
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:208
#, c-format
msgid ", unused inodes %u\n"
msgstr ""
-#: misc/dumpe2fs.c:205
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr ""
-#: misc/dumpe2fs.c:206
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr ""
-#: misc/dumpe2fs.c:206
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr ""
-#: misc/dumpe2fs.c:210
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ""
-#: misc/dumpe2fs.c:214
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
msgstr ""
-#: misc/dumpe2fs.c:221
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr ""
-#: misc/dumpe2fs.c:227
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr ""
-#: misc/dumpe2fs.c:231
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ""
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
msgstr ""
-#: misc/dumpe2fs.c:241
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
" %u free %s, %u free inodes, %u directories%s"
msgstr ""
-#: misc/dumpe2fs.c:248
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ""
-#: misc/dumpe2fs.c:251
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr ""
-#: misc/dumpe2fs.c:262
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr ""
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr ""
-#: misc/dumpe2fs.c:299
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr ""
-#: misc/dumpe2fs.c:326 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr ""
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr ""
-#: misc/dumpe2fs.c:338
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr ""
-#: misc/dumpe2fs.c:348
-#, c-format
+#: misc/dumpe2fs.c:364
+msgid "Journal superblock magic number invalid!\n"
+msgstr ""
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr ""
-#: misc/dumpe2fs.c:361
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr ""
-#: misc/dumpe2fs.c:372
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
@@ -3484,15 +3512,20 @@ msgid ""
"Journal start: %u\n"
msgstr ""
-#: misc/dumpe2fs.c:391 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr ""
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr ""
-#: misc/dumpe2fs.c:399
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr ""
-#: misc/dumpe2fs.c:403
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3504,27 +3537,26 @@ msgid ""
"Journal number of users: %u\n"
msgstr ""
-#: misc/dumpe2fs.c:416
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr ""
-#: misc/dumpe2fs.c:432 misc/mke2fs.c:665 misc/tune2fs.c:1137
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr ""
-#: misc/dumpe2fs.c:458
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr ""
-#: misc/dumpe2fs.c:473
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr ""
-#: misc/dumpe2fs.c:484
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3538,59 +3570,262 @@ msgid ""
"\tblocksize=<blocksize>\n"
msgstr ""
-#: misc/dumpe2fs.c:544 misc/mke2fs.c:1528
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr ""
-#: misc/dumpe2fs.c:580 misc/e2image.c:1310 misc/tune2fs.c:1923
-#: resize/main.c:305
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr ""
-#: misc/dumpe2fs.c:606
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
"%s: %s: error reading bitmaps: %s\n"
msgstr ""
-#: misc/e2image.c:87
+#: misc/e2image.c:101
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
msgstr ""
-#: misc/e2image.c:135
+#: misc/e2image.c:103
#, c-format
+msgid " %s -I device image-file\n"
+msgstr ""
+
+#: misc/e2image.c:104
+#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+msgid "while allocating buffer"
+msgstr ""
+
+#: misc/e2image.c:174
+#, c-format
+msgid "Writing block %llu\n"
+msgstr ""
+
+#: misc/e2image.c:188
+#, c-format
+msgid "error writing block %llu"
+msgstr ""
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
msgstr ""
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
msgstr ""
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr ""
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr ""
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr ""
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr ""
-#: misc/e2image.c:1342
+#: misc/e2image.c:502
+#, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr ""
+
+#: misc/e2image.c:514
+#, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr ""
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr ""
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, c-format
+msgid "error reading block %llu"
+msgstr ""
+
+#: misc/e2image.c:715
+#, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr ""
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+msgid "while allocating l1 table"
+msgstr ""
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr ""
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr ""
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr ""
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+msgid "while allocating block bitmap"
+msgstr ""
+
+#: misc/e2image.c:1278
+msgid "while allocating scramble block bitmap"
+msgstr ""
+
+#: misc/e2image.c:1285
+msgid "Scanning inodes...\n"
+msgstr ""
+
+#: misc/e2image.c:1297
+msgid "Can't allocate block buffer"
+msgstr ""
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, c-format
+msgid "while iterating over inode %u"
+msgstr ""
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+msgid "error reading bitmaps"
+msgstr ""
+
+#: misc/e2image.c:1415
+msgid "while opening device file"
+msgstr ""
+
+#: misc/e2image.c:1426
+msgid "while restoring the image table"
+msgstr ""
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr ""
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
msgstr ""
+#: misc/e2image.c:1639
+msgid "The -c option only supported in raw mode\n"
+msgstr ""
+
+#: misc/e2image.c:1644
+msgid "The -c option not supported when writing to stdout\n"
+msgstr ""
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr ""
+
+#: misc/e2image.c:1657
+msgid "The -p option only supported in raw mode\n"
+msgstr ""
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
+
#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
@@ -3611,7 +3846,7 @@ msgstr ""
msgid "e2label: not an ext2 filesystem\n"
msgstr ""
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr ""
@@ -3626,7 +3861,7 @@ msgstr ""
msgid "e2label: error writing superblock\n"
msgstr ""
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr ""
@@ -3683,17 +3918,17 @@ msgstr ""
msgid "Failed write %s\n"
msgstr ""
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr ""
-#: misc/fsck.c:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr ""
-#: misc/fsck.c:371
+#: misc/fsck.c:370
msgid ""
"WARNING: Your /etc/fstab does not contain the fsck passno\n"
"\tfield. I will kludge around things for you, but you\n"
@@ -3701,78 +3936,78 @@ msgid ""
"\n"
msgstr ""
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr ""
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr ""
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr ""
-#: misc/fsck.c:623
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr ""
-#: misc/fsck.c:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr ""
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr ""
-#: misc/fsck.c:743
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
msgstr ""
-#: misc/fsck.c:762
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr ""
-#: misc/fsck.c:885
+#: misc/fsck.c:884
#, c-format
msgid ""
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
"number\n"
msgstr ""
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr ""
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr ""
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr ""
-#: misc/fsck.c:1079
+#: misc/fsck.c:1078
msgid ""
"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr ""
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr ""
@@ -3792,7 +4027,7 @@ msgstr ""
msgid "While reading version on %s"
msgstr ""
-#: misc/mke2fs.c:117
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
@@ -3805,35 +4040,35 @@ msgid ""
"count]\n"
msgstr ""
-#: misc/mke2fs.c:220
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr ""
-#: misc/mke2fs.c:224
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr ""
-#: misc/mke2fs.c:231
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr ""
-#: misc/mke2fs.c:258
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr ""
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
-#: misc/mke2fs.c:263
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr ""
-#: misc/mke2fs.c:283
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -3841,209 +4076,250 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:302
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr ""
-#: misc/mke2fs.c:319
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr ""
-#: misc/mke2fs.c:340
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
-#: misc/mke2fs.c:354 misc/mke2fs.c:2177 misc/mke2fs.c:2431
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
msgstr ""
-#: misc/mke2fs.c:365
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr ""
-#: misc/mke2fs.c:372
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr ""
-#: misc/mke2fs.c:386
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr ""
-#: misc/mke2fs.c:404
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr ""
-#: misc/mke2fs.c:411
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr ""
-#: misc/mke2fs.c:424
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr ""
-#: misc/mke2fs.c:439
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr ""
-#: misc/mke2fs.c:466
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr ""
-#: misc/mke2fs.c:476
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr ""
-#: misc/mke2fs.c:492
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr ""
-#: misc/mke2fs.c:508
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr ""
-#: misc/mke2fs.c:516
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr ""
-#: misc/mke2fs.c:528
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr ""
-#: misc/mke2fs.c:546
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr ""
-#: misc/mke2fs.c:561
+#: misc/mke2fs.c:624
+#, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr ""
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr ""
-#: misc/mke2fs.c:571
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr ""
-#: misc/mke2fs.c:575
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr ""
-#: misc/mke2fs.c:579
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr ""
-#: misc/mke2fs.c:581
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr ""
-#: misc/mke2fs.c:583
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr ""
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr ""
-#: misc/mke2fs.c:588
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr ""
-#: misc/mke2fs.c:590
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr ""
-#: misc/mke2fs.c:594
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr ""
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr ""
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr ""
-#: misc/mke2fs.c:602
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr ""
-#: misc/mke2fs.c:604
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr ""
-#: misc/mke2fs.c:611
+#: misc/mke2fs.c:686
#, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr ""
-#: misc/mke2fs.c:690 misc/tune2fs.c:1165
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr ""
+
+#: misc/mke2fs.c:796
+#, c-format
+msgid "Invalid offset: %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr ""
-#: misc/mke2fs.c:704
+#: misc/mke2fs.c:824
+#, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:719
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:742
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:749
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
-#: misc/mke2fs.c:773
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:811
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr ""
+
+#: misc/mke2fs.c:976
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:822
+#: misc/mke2fs.c:987
#, c-format
msgid ""
"\n"
@@ -4053,11 +4329,17 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -4065,7 +4347,7 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:842
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4073,43 +4355,41 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:881
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-#: misc/mke2fs.c:894 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr ""
-#: misc/mke2fs.c:906 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr ""
-#: misc/mke2fs.c:1046
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
-#: misc/mke2fs.c:1050
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:1054
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr ""
-#: misc/mke2fs.c:1094
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4117,126 +4397,128 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:1252
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
msgstr ""
-#: misc/mke2fs.c:1293
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr ""
-#: misc/mke2fs.c:1333
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr ""
-#: misc/mke2fs.c:1337
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
-#: misc/mke2fs.c:1353
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
msgstr ""
-#: misc/mke2fs.c:1365
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr ""
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr ""
-#: misc/mke2fs.c:1370
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr ""
-#: misc/mke2fs.c:1378
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr ""
-#: misc/mke2fs.c:1384
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr ""
-#: misc/mke2fs.c:1394
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr ""
-#: misc/mke2fs.c:1404
+#: misc/mke2fs.c:1590
#, c-format
+msgid "invalid inode size - %s"
+msgstr ""
+
+#: misc/mke2fs.c:1603
msgid ""
"Warning: -K option is deprecated and should not be used anymore. Use '-E "
"nodiscard' extended option instead!\n"
msgstr ""
-#: misc/mke2fs.c:1418
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr ""
-#: misc/mke2fs.c:1428
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr ""
-#: misc/mke2fs.c:1446
-#, c-format
-msgid "bad revision level - %s"
-msgstr ""
-
-#: misc/mke2fs.c:1458
+#: misc/mke2fs.c:1642
#, c-format
-msgid "invalid inode size - %s"
+msgid "bad num inodes - %s"
msgstr ""
-#: misc/mke2fs.c:1478
+#: misc/mke2fs.c:1659
#, c-format
-msgid "bad num inodes - %s"
+msgid "bad revision level - %s"
msgstr ""
-#: misc/mke2fs.c:1495
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
msgstr ""
-#: misc/mke2fs.c:1503
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
msgstr ""
-#: misc/mke2fs.c:1553 misc/mke2fs.c:2510
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr ""
-#: misc/mke2fs.c:1559
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
-#: misc/mke2fs.c:1565
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr ""
-#: misc/mke2fs.c:1576
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr ""
-#: misc/mke2fs.c:1586
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr ""
-#: misc/mke2fs.c:1599 resize/main.c:374
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr ""
-#: misc/mke2fs.c:1605
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
msgstr ""
-#: misc/mke2fs.c:1612
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4244,126 +4526,147 @@ msgid ""
"\tto re-read your partition table.\n"
msgstr ""
-#: misc/mke2fs.c:1629
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr ""
-#: misc/mke2fs.c:1649
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr ""
-#: misc/mke2fs.c:1703
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr ""
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr ""
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr ""
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"\tin 32 bits using a blocksize of %d.\n"
msgstr ""
-#: misc/mke2fs.c:1719
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
msgstr ""
-#: misc/mke2fs.c:1726
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1733
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1745
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1759
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr ""
-#: misc/mke2fs.c:1775
-#, c-format
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-#: misc/mke2fs.c:1792
-msgid "while trying to determine hardware sector size"
-msgstr ""
-
-#: misc/mke2fs.c:1798
-msgid "while trying to determine physical sector size"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
msgstr ""
-#: misc/mke2fs.c:1831
-msgid "while setting blocksize; too small for device\n"
-msgstr ""
-
-#: misc/mke2fs.c:1836
-#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
msgstr ""
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr ""
-#: misc/mke2fs.c:1870
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr ""
-#: misc/mke2fs.c:1872
+#: misc/mke2fs.c:2072
#, c-format
msgid ""
"This may result in very poor performance, (re)-partitioning suggested.\n"
msgstr ""
-#: misc/mke2fs.c:1883
+#: misc/mke2fs.c:2093
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr ""
-#: misc/mke2fs.c:1887
+#: misc/mke2fs.c:2097
#, c-format
msgid ""
"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
msgstr ""
-#: misc/mke2fs.c:1922
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
-#: misc/mke2fs.c:1931
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr ""
-#: misc/mke2fs.c:1946
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
-#: misc/mke2fs.c:1958
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr ""
-#: misc/mke2fs.c:1976
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr ""
-#: misc/mke2fs.c:1983
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr ""
-#: misc/mke2fs.c:1997
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
@@ -4371,7 +4674,7 @@ msgid ""
"\tor lower inode count (-N).\n"
msgstr ""
-#: misc/mke2fs.c:2116
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4379,126 +4682,117 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:2130
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
msgstr ""
-#: misc/mke2fs.c:2156
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
msgstr ""
-#: misc/mke2fs.c:2172
+#: misc/mke2fs.c:2439
msgid "failed - "
msgstr ""
-#: misc/mke2fs.c:2279
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr ""
-#: misc/mke2fs.c:2288
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
msgstr ""
-#: misc/mke2fs.c:2371
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr ""
-#: misc/mke2fs.c:2423
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr ""
-#: misc/mke2fs.c:2427
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr ""
-#: misc/mke2fs.c:2436
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
msgstr ""
-#: misc/mke2fs.c:2479
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr ""
-#: misc/mke2fs.c:2492
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr ""
-#: misc/mke2fs.c:2503 misc/tune2fs.c:640
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr ""
-#: misc/mke2fs.c:2515
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr ""
-#: misc/mke2fs.c:2522
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
"\twhile trying to add journal to device %s"
msgstr ""
-#: misc/mke2fs.c:2527 misc/mke2fs.c:2559 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr ""
-#: misc/mke2fs.c:2536
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr ""
-#: misc/mke2fs.c:2547
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr ""
-#: misc/mke2fs.c:2555
+#: misc/mke2fs.c:2854
msgid ""
"\n"
"\twhile trying to create journal"
msgstr ""
-#: misc/mke2fs.c:2566 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
-#: misc/mke2fs.c:2571
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
msgstr ""
-#: misc/mke2fs.c:2584
-#, c-format
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
-#: misc/mke2fs.c:2591
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
msgstr ""
-#: misc/mke2fs.c:2593
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
msgstr ""
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
msgstr ""
@@ -4532,11 +4826,11 @@ msgstr ""
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr ""
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr ""
-#: misc/tune2fs.c:116
+#: misc/tune2fs.c:121
#, c-format
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
@@ -4545,161 +4839,167 @@ msgid ""
"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr ""
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr ""
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr ""
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr ""
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
msgstr ""
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr ""
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr ""
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr ""
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr ""
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
msgstr ""
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr ""
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr ""
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
msgstr ""
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:462
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
"read-only.\n"
msgstr ""
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
msgstr ""
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
msgstr ""
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
msgstr ""
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
msgstr ""
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
msgstr ""
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr ""
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
"\twhile trying to open journal on %s\n"
msgstr ""
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr ""
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr ""
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr ""
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
msgstr ""
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr ""
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
@@ -4712,70 +5012,70 @@ msgid ""
"\n"
msgstr ""
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr ""
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr ""
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr ""
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr ""
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr ""
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr ""
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr ""
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr ""
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr ""
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr ""
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr ""
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr ""
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr ""
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
msgid_plural ""
@@ -4783,28 +5083,27 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr ""
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr ""
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr ""
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr ""
-#: misc/tune2fs.c:1257
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -4822,46 +5121,46 @@ msgid ""
"\t^test_fs\n"
msgstr ""
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
msgstr ""
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
msgstr ""
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr ""
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr ""
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr ""
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
msgstr ""
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
msgstr ""
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
msgstr ""
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -4869,195 +5168,259 @@ msgid ""
"\n"
msgstr ""
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr ""
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
+msgstr ""
+
+#: misc/tune2fs.c:1987
#, c-format
-msgid "Shrinking the inode size is not supported\n"
+msgid "Invalid inode size %lu (max %d)\n"
msgstr ""
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr ""
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr ""
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr ""
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr ""
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr ""
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr ""
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr ""
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr ""
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr ""
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
msgstr ""
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2092
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
"Sparse superblock flag set. %s"
msgstr ""
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2108
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr ""
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr ""
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr ""
-#: misc/tune2fs.c:2120
+#: misc/tune2fs.c:2172
msgid ""
"The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr ""
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr ""
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr ""
-#: misc/tune2fs.c:2190
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
msgstr ""
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr ""
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr ""
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr ""
-#: misc/util.c:74
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr ""
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr ""
-#: misc/util.c:89
+#: misc/util.c:129
#, c-format
-msgid "Could not stat %s --- %s\n"
+msgid "\tlast mounted on %s on %s"
msgstr ""
-#: misc/util.c:92
+#: misc/util.c:132
+#, c-format
+msgid "\tlast mounted on %s"
+msgstr ""
+
+#: misc/util.c:135
+#, c-format
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, c-format
+msgid "Creating regular file %s\n"
+msgstr ""
+
+#: misc/util.c:205
+#, c-format
+msgid "Could not open %s: %s\n"
+msgstr ""
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
msgstr ""
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr ""
-#: misc/util.c:132
+#: misc/util.c:252
+#, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr ""
+
+#: misc/util.c:255
+#, c-format
+msgid "%s contains a %s file system\n"
+msgstr ""
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr ""
-#: misc/util.c:154
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr ""
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr ""
-#: misc/util.c:182
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr ""
-#: misc/util.c:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
"Could not find journal device matching %s\n"
msgstr ""
-#: misc/util.c:228
+#: misc/util.c:395
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5068,18 +5431,19 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
msgstr ""
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
msgstr ""
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5087,13 +5451,13 @@ msgid ""
"between 1024 and 10240000 blocks. Aborting.\n"
msgstr ""
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
msgstr ""
-#: misc/util.c:287
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -5210,7 +5574,6 @@ msgstr[0] ""
msgstr[1] ""
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
msgstr ""
@@ -5243,90 +5606,91 @@ msgstr ""
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr ""
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr ""
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr ""
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr ""
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
msgstr ""
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
msgstr ""
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr ""
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr ""
-#: resize/main.c:259
-#, c-format
-msgid "while opening %s"
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
msgstr ""
-#: resize/main.c:267
+#: resize/main.c:272
#, c-format
-msgid "while getting stat information for %s"
+msgid "while opening %s"
msgstr ""
-#: resize/main.c:331
+#: resize/main.c:280
#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
+msgid "while getting stat information for %s"
msgstr ""
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"\n"
msgstr ""
-#: resize/main.c:348
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr ""
-#: resize/main.c:384
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr ""
-#: resize/main.c:392
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
msgstr ""
-#: resize/main.c:404
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr ""
-#: resize/main.c:410
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr ""
-#: resize/main.c:434
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
@@ -5334,7 +5698,7 @@ msgid ""
"\n"
msgstr ""
-#: resize/main.c:441
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
@@ -5370,81 +5734,105 @@ msgstr ""
msgid "while trying to truncate %s"
msgstr ""
-#: resize/online.c:40
+#: resize/online.c:82
+msgid "kernel does not support online resize with sparse_super2"
+msgstr ""
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
msgstr ""
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr ""
-#: resize/online.c:70
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr ""
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr ""
-#: resize/online.c:92 resize/online.c:116
-msgid "Permission denied to resize filesystem"
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
msgstr ""
-#: resize/online.c:95 resize/online.c:122
-msgid "While checking for on-line resizing support"
+#: resize/online.c:164 resize/online.c:181
+msgid "Permission denied to resize filesystem"
msgstr ""
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
+#: resize/online.c:167 resize/online.c:187
+msgid "While checking for on-line resizing support"
msgstr ""
-#: resize/online.c:119
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
msgstr ""
-#: resize/online.c:152
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/online.c:162
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr ""
-#: resize/online.c:216
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr ""
-#: resize/online.c:227
+#: resize/online.c:298
#, c-format
msgid ""
"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
"this system.\n"
msgstr ""
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr ""
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr ""
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr ""
-#: resize/resize2fs.c:1735
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+msgid "new meta blocks"
+msgstr ""
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr ""
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42.2"
+msgid "EXT2FS Library version 1.42.10"
msgstr ""
#: lib/ext2fs/ext2_err.c:12
@@ -5560,11 +5948,11 @@ msgid "Can't read an inode bitmap"
msgstr ""
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
+msgid "Can't write a block bitmap"
msgstr ""
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
+msgid "Can't read a block bitmap"
msgstr ""
#: lib/ext2fs/ext2_err.c:42
@@ -6023,6 +6411,50 @@ msgstr ""
msgid "MMP: open with O_DIRECT failed"
msgstr ""
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
msgstr ""
diff --git a/po/es.gmo b/po/es.gmo
index 0b9c4d4c..469932fa 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 70c7105a..b435c9f5 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,9 +1,9 @@
-# Mensajes en español para GNU e2fsprogs.
-# Copyright (C) 2008 Theodore Tso (msgids)
+# Mensajes en español para e2fsprogs.
+# Copyright (C) 2013 Theodore Tso (msgids)
# This file is distributed under the same license as the e2fsprogs package.
#
# Max de Mendizábal <max@upn.mx>, 2003, 2005.
-# Benno Schulenberg <benno@vertaalt.nl>, 2008.
+# Benno Schulenberg <benno@vertaalt.nl>, 2008, 2014.
#
#
#. The strings in e2fsck's problem.c can be very hard to translate,
@@ -66,17 +66,18 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.40.8\n"
+"Project-Id-Version: e2fsprogs-1.42.9\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2009-01-26 20:41-0500\n"
-"PO-Revision-Date: 2008-06-01 23:56+0200\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2014-01-05 22:51+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Spanish <es@li.org>\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
+"X-Generator: Lokalize 1.0\n"
# Ojo: "To ignore" no es ignorar sino "no tener en cuenta",
# "pasar por alto", etc. Ya sé que "ignorar" se entiende, pero sólo
@@ -84,7 +85,7 @@ msgstr ""
# ¿Qué tal "se descarta"? Me gustaría saber si hay algún glosario de
# frases para traducir programas GNU, son cosas que deberían ser
# estándar. mm
-#: e2fsck/badblocks.c:22 misc/mke2fs.c:165
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "El bloque dañado %u está fuera del intervalo; se descarta.\n"
@@ -92,7 +93,7 @@ msgstr "El bloque dañado %u está fuera del intervalo; se descarta.\n"
# En el K&R se habla de nodo-i. ¿Cuáles son las razones a favor y en contra
# de "nodo i" sobre "nodo-i"? sv
# El plural. Pero está bien, adopto la convención K&R. mm
-#: e2fsck/badblocks.c:45
+#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
msgstr "mientras se revisaba la salud del nodo-i de bloques dañados"
@@ -100,139 +101,144 @@ msgstr "mientras se revisaba la salud del nodo-i de bloques dañados"
# formato ext2, pero creo que es muy posible que haya un nodo-i especial
# cuya tarea sea precisamente la de recordar cuáles son los bloques
# dañados. Investigarlo en caso de duda. sv
-#: e2fsck/badblocks.c:57
+#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
msgstr "mientras se leía el nodo-i de bloques dañados"
-#: e2fsck/badblocks.c:71 e2fsck/iscan.c:112 e2fsck/scantest.c:109
-#: e2fsck/unix.c:1037 e2fsck/unix.c:1120 misc/badblocks.c:1148
-#: misc/badblocks.c:1156 misc/badblocks.c:1170 misc/badblocks.c:1182
-#: misc/dumpe2fs.c:505 misc/e2image.c:576 misc/e2image.c:672
-#: misc/e2image.c:688 misc/mke2fs.c:181 misc/tune2fs.c:1515 resize/main.c:309
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "mientras se intentaba abrir %s"
-#: e2fsck/badblocks.c:82
+#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
msgstr "mientras se intentaba abrir una tubería a '%s'"
-#: e2fsck/badblocks.c:93 misc/mke2fs.c:188
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "mientras se leía una lista de bloques dañados desde un fichero"
-#: e2fsck/badblocks.c:104
+#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
msgstr "mientras se actualizaba el nodo-i de bloques dañados"
# Solemos traducir Warning por Atención. sv
# Ok, uniformizo. mm
-#: e2fsck/badblocks.c:130
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr ""
"Atención: se encontró un bloque ilegal %u en el nodo-i de bloques dañados. "
"Limpiado.\n"
-#: e2fsck/ehandler.c:54
+#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
msgstr "Error al leer el bloque %lu (%s) mientras %s. "
-#: e2fsck/ehandler.c:57
+#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
msgstr "Error al leer el bloque %lu (%s). "
-#: e2fsck/ehandler.c:60 e2fsck/ehandler.c:109
+#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
msgstr "Se descarta el error"
-#: e2fsck/ehandler.c:61
+#: e2fsck/ehandler.c:62
msgid "Force rewrite"
msgstr "Se fuerza la reescritura"
-#: e2fsck/ehandler.c:103
+#: e2fsck/ehandler.c:104
#, c-format
msgid "Error writing block %lu (%s) while %s. "
msgstr "Error al escribir el bloque %lu (%s) mientras %s. "
-#: e2fsck/ehandler.c:106
+#: e2fsck/ehandler.c:107
#, c-format
msgid "Error writing block %lu (%s). "
msgstr "Error al escribir el bloque %lu (%s). "
-#: e2fsck/emptydir.c:56
+#: e2fsck/emptydir.c:57
msgid "empty dirblocks"
msgstr "bloques de directorio vacíos"
-#: e2fsck/emptydir.c:61
+#: e2fsck/emptydir.c:62
msgid "empty dir map"
msgstr "mapa de directorios vacío"
-#: e2fsck/emptydir.c:97
+#: e2fsck/emptydir.c:98
#, c-format
msgid "Empty directory block %u (#%d) in inode %u\n"
msgstr "El bloque del directorio %u (#%d) está vacío en el nodo-i %u\n"
-#: e2fsck/extend.c:21
+#: e2fsck/extend.c:22
#, c-format
msgid "%s: %s filename nblocks blocksize\n"
msgstr "%s: %s fichero númerodebloques tamañodelbloque\n"
-#: e2fsck/extend.c:43
+#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
msgstr "¡Número inválido de bloques!\n"
-#: e2fsck/extend.c:49
+#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
msgstr "No se puede reservar el bloque del búfer (tamaño=%d)\n"
-#: e2fsck/flushb.c:34
+#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
msgstr "Modo de empleo: %s disco\n"
-#: e2fsck/flushb.c:63
+#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr ""
"¡No está implementado el control de entrada/salida del BLKFLSBUF! No se "
"pueden vaciar los búfers.\n"
-#: e2fsck/iscan.c:46
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr ""
"Modo de empleo: %s [-F] [-I bloques_del_búfer_del_nodo_i] dispositivo\n"
-#: e2fsck/iscan.c:83 e2fsck/unix.c:818
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "mientras se abría %s para su vaciado"
-#: e2fsck/iscan.c:88 e2fsck/unix.c:824 resize/main.c:285
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "mientras se intentaba vaciar %s"
-#: e2fsck/iscan.c:121 e2fsck/scantest.c:116 misc/e2image.c:482
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr "mientras se intentaba abrir '%s'"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "mientras se iniciaba la exploración de los nodos-i"
-#: e2fsck/iscan.c:129 misc/e2image.c:500
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "mientras se obtenía el nodo-i siguiente"
-#: e2fsck/iscan.c:138
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u nodos-i explorados.\n"
-#: e2fsck/journal.c:507
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "leyendo el superbloque del fichero de transacciones\n"
@@ -241,356 +247,375 @@ msgstr "leyendo el superbloque del fichero de transacciones\n"
# que es distinto (a lo mejor no se ha encontrado ningún superbloque
# en absoluto). Creo que la traducción debería cambiarse. sv
# En efecto, tienes toda la razón. Corregido. mm
-#: e2fsck/journal.c:564
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr ""
"%s: no se encontró un superbloque válido en el fichero de transacciones\n"
-#: e2fsck/journal.c:573
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: el fichero de transacciones es demasiado corto\n"
-#: e2fsck/journal.c:858
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: recuperando el fichero de transacciones\n"
-#: e2fsck/journal.c:860
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr ""
"%s: no se puede hacer la recuperación del fichero de transacciones en modo "
"de sólo lectura\n"
-#: e2fsck/journal.c:881
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "mientras se intentaba reabrir %s"
-#: e2fsck/message.c:110
+#: e2fsck/message.c:113
msgid "aextended attribute"
msgstr "aatributo extendido"
-#: e2fsck/message.c:111
+#: e2fsck/message.c:114
msgid "Aerror allocating"
msgstr "Aerror en la reserva"
-#: e2fsck/message.c:112
+#: e2fsck/message.c:115
msgid "bblock"
msgstr "bbloque"
-#: e2fsck/message.c:113
+#: e2fsck/message.c:116
msgid "Bbitmap"
msgstr "Bmapa de bits"
-#: e2fsck/message.c:114
+#: e2fsck/message.c:117
msgid "ccompress"
msgstr "ccompresión"
-#: e2fsck/message.c:115
+#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
-msgstr "CEntra en conflicto con algún otro sistema de ficheros @b"
+msgstr "Centra en conflicto con algún otro @b del sistema de ficheros"
-#: e2fsck/message.c:116
+#: e2fsck/message.c:119
msgid "iinode"
msgstr "inodo-i"
-#: e2fsck/message.c:117
+#: e2fsck/message.c:120
msgid "Iillegal"
msgstr "Iilegal"
-#: e2fsck/message.c:118
+#: e2fsck/message.c:121
msgid "jjournal"
msgstr "jfichero de transacciones"
-#: e2fsck/message.c:119
+#: e2fsck/message.c:122
msgid "Ddeleted"
msgstr "Dborrado"
-#: e2fsck/message.c:120
+#: e2fsck/message.c:123
msgid "ddirectory"
msgstr "ddirectorio"
-#: e2fsck/message.c:121
+#: e2fsck/message.c:124
msgid "eentry"
msgstr "eentrada"
-#: e2fsck/message.c:122
+#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
msgstr "ELa @e '%Dn' que está en %p (%i)"
-#: e2fsck/message.c:123
+#: e2fsck/message.c:126
msgid "ffilesystem"
msgstr "fsistema de ficheros"
-#: e2fsck/message.c:124
+#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
msgstr "Fpara el @i %i (%Q) es"
-#: e2fsck/message.c:125
+#: e2fsck/message.c:128
msgid "ggroup"
msgstr "ggrupo"
-#: e2fsck/message.c:126
+#: e2fsck/message.c:129
msgid "hHTREE @d @i"
msgstr "hEl ÃRBOL-H del @i del @d"
-#: e2fsck/message.c:127
+#: e2fsck/message.c:130
msgid "llost+found"
msgstr "llost+found"
-#: e2fsck/message.c:128
+#: e2fsck/message.c:131
msgid "Lis a link"
msgstr "Les un enlace"
-#: e2fsck/message.c:129
+#: e2fsck/message.c:132
msgid "mmultiply-claimed"
msgstr "mreclamado en múltiples ocasiones"
-#: e2fsck/message.c:130
+#: e2fsck/message.c:133
msgid "ninvalid"
msgstr "ninválido"
-#: e2fsck/message.c:131
+#: e2fsck/message.c:134
msgid "oorphaned"
msgstr "ohuérfano"
-#: e2fsck/message.c:132
+#: e2fsck/message.c:135
msgid "pproblem in"
msgstr "pproblema en"
-#: e2fsck/message.c:133
+#: e2fsck/message.c:136
+msgid "qquota"
+msgstr "qcuota"
+
+#: e2fsck/message.c:137
msgid "rroot @i"
msgstr "r@i raíz"
-#: e2fsck/message.c:134
+#: e2fsck/message.c:138
msgid "sshould be"
msgstr "sdebería ser"
-#: e2fsck/message.c:135
+#: e2fsck/message.c:139
msgid "Ssuper@b"
msgstr "Ssuper@b"
-#: e2fsck/message.c:136
+#: e2fsck/message.c:140
msgid "uunattached"
msgstr "udesacoplado"
-#: e2fsck/message.c:137
+#: e2fsck/message.c:141
msgid "vdevice"
msgstr "vdispositivo"
-#: e2fsck/message.c:138
-#, fuzzy
+#: e2fsck/message.c:142
msgid "xextent"
-msgstr "eentrada"
+msgstr ""
-#: e2fsck/message.c:139
+#: e2fsck/message.c:143
msgid "zzero-length"
msgstr "zlongitud cero"
-#: e2fsck/message.c:150
+#: e2fsck/message.c:154
msgid "<The NULL inode>"
msgstr "<El nodo-i NULO>"
-#: e2fsck/message.c:151
+#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
msgstr "<El nodo-i de bloques dañados>"
-#: e2fsck/message.c:153
-msgid "<The ACL index inode>"
-msgstr "<El índice ACL del nodo-i>"
+#: e2fsck/message.c:157
+#, fuzzy
+msgid "<The user quota inode>"
+msgstr "<El nodo-i del fichero de transacciones>"
-#: e2fsck/message.c:154
-msgid "<The ACL data inode>"
-msgstr "<La información ACL del nodo-i>"
+#: e2fsck/message.c:158
+#, fuzzy
+msgid "<The group quota inode>"
+msgstr "<El nodo-i descriptor del grupo>"
-#: e2fsck/message.c:155
+#: e2fsck/message.c:159
msgid "<The boot loader inode>"
msgstr "<El nodo-i del cargador de arranque>"
-#: e2fsck/message.c:156
+#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
msgstr "<El nodo-i del directorio de desborrado>"
-#: e2fsck/message.c:157
+#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
msgstr "<El nodo-i descriptor del grupo>"
-#: e2fsck/message.c:158
+#: e2fsck/message.c:162
msgid "<The journal inode>"
msgstr "<El nodo-i del fichero de transacciones>"
-#: e2fsck/message.c:159
+#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
msgstr "<Se ha reservado el nodo-i 9>"
-#: e2fsck/message.c:160
+#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
msgstr "<Se ha reservado el nodo-i 10>"
-#: e2fsck/message.c:323
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "fichero regular"
-#: e2fsck/message.c:325
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "directorio"
-#: e2fsck/message.c:327
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "dispositivo de caracteres"
-#: e2fsck/message.c:329
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "dispositivo de bloque"
-#: e2fsck/message.c:331
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "tubería designada"
-#: e2fsck/message.c:333
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "enlace simbólico"
-#: e2fsck/message.c:335
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "zócalo"
-#: e2fsck/message.c:337
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "tipo de fichero desconocido con modo 0%o"
-#: e2fsck/pass1b.c:215
+#: e2fsck/message.c:423
+msgid "indirect block"
+msgstr "bloque indirecto"
+
+#: e2fsck/message.c:425
+#, fuzzy
+msgid "double indirect block"
+msgstr "leyendo bloque de directorio"
+
+#: e2fsck/message.c:427
+#, fuzzy
+msgid "triple indirect block"
+msgstr "leyendo bloque de directorio"
+
+#: e2fsck/message.c:429
+#, fuzzy
+msgid "translator block"
+msgstr "bloques de metadatos"
+
+#: e2fsck/message.c:431
+#, fuzzy
+msgid "block #"
+msgstr "bbloque"
+
+#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
msgstr "mapa de nodos-i reclamados en múltiples ocasiones"
-#: e2fsck/pass1b.c:567 e2fsck/pass1b.c:700
-#, fuzzy, c-format
-msgid "internal error: can't find dup_blk for %u\n"
-msgstr "error interno: no se encontró el dup_blk para %u\n"
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
+#, c-format
+msgid "internal error: can't find dup_blk for %llu\n"
+msgstr "error interno: no se encontró el dup_blk para %llu\n"
-#: e2fsck/pass1b.c:743
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "regresado del clone_file_block"
-#: e2fsck/pass1b.c:762
+#: e2fsck/pass1b.c:843
#, fuzzy, c-format
-msgid "internal error: couldn't lookup EA block record for %u"
+msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "Error interno: no se puede encontrar el dir_info para %i.\n"
-#: e2fsck/pass1b.c:774
+#: e2fsck/pass1b.c:855
#, fuzzy, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr "Error interno: no se puede encontrar el dir_info para %i.\n"
-#: e2fsck/pass1.c:430 e2fsck/pass2.c:780
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "leyendo bloque de directorio"
-#: e2fsck/pass1.c:552
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "mapa de nodos-i usados"
-#: e2fsck/pass1.c:561
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "mapa de nodos-i de directorio"
-#: e2fsck/pass1.c:569
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "mapa de nodos-i de ficheros normales"
-#: e2fsck/pass1.c:576
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "mapa de bloques usados"
-#: e2fsck/pass1.c:630
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "iniciando la exploración de los nodos-i"
-#: e2fsck/pass1.c:654
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "obteniendo el siguiente nodo-i para examinar"
-#: e2fsck/pass1.c:1122
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Paso 1"
-#: e2fsck/pass1.c:1181
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "leyendo bloques indirectos del nodo-i %u"
-#: e2fsck/pass1.c:1225
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "mapa de nodos-i dañados"
-#: e2fsck/pass1.c:1247
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "el nodo-i está en el mapa de bloques dañados"
-#: e2fsck/pass1.c:1267
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "mapa de nodos-i con 'imagic'"
-#: e2fsck/pass1.c:1294
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr "mapa de bloques reclamados en múltiples ocasiones"
-#: e2fsck/pass1.c:1393
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "mapa de bloques de atributos extendidos"
-#: e2fsck/pass1.c:2134
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr ""
-#: e2fsck/pass1.c:2449
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "mapa de bits de bloques"
-#: e2fsck/pass1.c:2453
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "mapa de bits de nodos-i"
-#: e2fsck/pass1.c:2457
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "tabla de nodos-i"
-#: e2fsck/pass2.c:284
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Paso 2"
-#: e2fsck/pass2.c:803
-#, fuzzy
+#: e2fsck/pass2.c:805
msgid "Can not continue."
-msgstr ""
-"No se puede continuar, se finaliza.\n"
-"\n"
+msgstr "No se puede continuar."
-#: e2fsck/pass3.c:79
+#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr "mapa de bits de nodos-i pasados"
-#: e2fsck/pass3.c:90
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Memoria pico"
-#: e2fsck/pass3.c:146
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Paso 3"
-#: e2fsck/pass3.c:334
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "mapa de bits de detección de ciclos de nodos-i"
@@ -598,11 +623,11 @@ msgstr "mapa de bits de detección de ciclos de nodos-i"
msgid "Pass 4"
msgstr "Paso 4"
-#: e2fsck/pass5.c:70
+#: e2fsck/pass5.c:74
msgid "Pass 5"
msgstr "Paso 5"
-#: e2fsck/problem.c:50
+#: e2fsck/problem.c:51
msgid "(no prompt)"
msgstr "(no hay cursor)"
@@ -610,179 +635,179 @@ msgstr "(no hay cursor)"
# mejor en forma impersonal. Fíjate que todos los demás verbos que siguen
# están en infinitivo.
# Cierto. mm
-#: e2fsck/problem.c:51
+#: e2fsck/problem.c:52
msgid "Fix"
msgstr "Arreglar"
-#: e2fsck/problem.c:52
+#: e2fsck/problem.c:53
msgid "Clear"
msgstr "Borrar"
-#: e2fsck/problem.c:53
+#: e2fsck/problem.c:54
msgid "Relocate"
msgstr "Reubicar"
-#: e2fsck/problem.c:54
+#: e2fsck/problem.c:55
msgid "Allocate"
msgstr "Reservar"
-#: e2fsck/problem.c:55
+#: e2fsck/problem.c:56
msgid "Expand"
msgstr "Expandir"
-#: e2fsck/problem.c:56
+#: e2fsck/problem.c:57
msgid "Connect to /lost+found"
msgstr "Conectar a /lost+found"
-#: e2fsck/problem.c:57
+#: e2fsck/problem.c:58
msgid "Create"
msgstr "Crear"
-#: e2fsck/problem.c:58
+#: e2fsck/problem.c:59
msgid "Salvage"
msgstr "Recuperar"
-#: e2fsck/problem.c:59
+#: e2fsck/problem.c:60
msgid "Truncate"
msgstr "Truncar"
-#: e2fsck/problem.c:60
+#: e2fsck/problem.c:61
msgid "Clear inode"
msgstr "Borrar nodo-i"
-#: e2fsck/problem.c:61
+#: e2fsck/problem.c:62
msgid "Abort"
msgstr "Interrumpir"
-#: e2fsck/problem.c:62
+#: e2fsck/problem.c:63
msgid "Split"
msgstr "Dividir"
-#: e2fsck/problem.c:63
+#: e2fsck/problem.c:64
msgid "Continue"
msgstr "Continuar"
-#: e2fsck/problem.c:64
+#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
msgstr "Clonar los bloques reclamados en múltiples ocasiones"
-#: e2fsck/problem.c:65
+#: e2fsck/problem.c:66
msgid "Delete file"
msgstr "Borrar fichero"
-#: e2fsck/problem.c:66
+#: e2fsck/problem.c:67
msgid "Suppress messages"
msgstr "Eliminar mensajes"
-#: e2fsck/problem.c:67
+#: e2fsck/problem.c:68
msgid "Unlink"
msgstr "Desvincular"
-#: e2fsck/problem.c:68
+#: e2fsck/problem.c:69
msgid "Clear HTree index"
msgstr "Borrar el índice del árbol-H"
-#: e2fsck/problem.c:69
+#: e2fsck/problem.c:70
msgid "Recreate"
msgstr "Recrear"
-#: e2fsck/problem.c:78
+#: e2fsck/problem.c:79
msgid "(NONE)"
msgstr "(NINGUNO)"
-#: e2fsck/problem.c:79
+#: e2fsck/problem.c:80
msgid "FIXED"
msgstr "ARREGLADO"
-#: e2fsck/problem.c:80
+#: e2fsck/problem.c:81
msgid "CLEARED"
msgstr "BORRADO"
-#: e2fsck/problem.c:81
+#: e2fsck/problem.c:82
msgid "RELOCATED"
msgstr "REUBICADO"
-#: e2fsck/problem.c:82
+#: e2fsck/problem.c:83
msgid "ALLOCATED"
msgstr "RESERVADO"
-#: e2fsck/problem.c:83
+#: e2fsck/problem.c:84
msgid "EXPANDED"
msgstr "EXPANDIDO"
-#: e2fsck/problem.c:84
+#: e2fsck/problem.c:85
msgid "RECONNECTED"
msgstr "RECONECTADO"
-#: e2fsck/problem.c:85
+#: e2fsck/problem.c:86
msgid "CREATED"
msgstr "CREADO"
-#: e2fsck/problem.c:86
+#: e2fsck/problem.c:87
msgid "SALVAGED"
msgstr "RECUPERADO"
-#: e2fsck/problem.c:87
+#: e2fsck/problem.c:88
msgid "TRUNCATED"
msgstr "TRUNCADO"
-#: e2fsck/problem.c:88
+#: e2fsck/problem.c:89
msgid "INODE CLEARED"
msgstr "NODO-I BORRADO"
-#: e2fsck/problem.c:89
+#: e2fsck/problem.c:90
msgid "ABORTED"
msgstr "INTERRUMPIDO"
-#: e2fsck/problem.c:90
+#: e2fsck/problem.c:91
msgid "SPLIT"
msgstr "DIVIDIDO"
-#: e2fsck/problem.c:91
+#: e2fsck/problem.c:92
msgid "CONTINUING"
msgstr "CONTINUANDO"
-#: e2fsck/problem.c:92
+#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
msgstr "SE CLONARON LOS BLOQUES RECLAMADOS EN MÚLTIPLES OCASIONES"
-#: e2fsck/problem.c:93
+#: e2fsck/problem.c:94
msgid "FILE DELETED"
msgstr "FICHERO BORRADO"
-#: e2fsck/problem.c:94
+#: e2fsck/problem.c:95
msgid "SUPPRESSED"
msgstr "SUPRIMIDO"
-#: e2fsck/problem.c:95
+#: e2fsck/problem.c:96
msgid "UNLINKED"
msgstr "DESVINCULADO"
-#: e2fsck/problem.c:96
+#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
msgstr "SE BORRÓ EL ÃNDICE DEL ÃRBOL-H"
-#: e2fsck/problem.c:97
+#: e2fsck/problem.c:98
msgid "WILL RECREATE"
msgstr "SE RECREARÃ"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:106
+#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
msgstr ""
-"El mapa de bits de bloques para el grupo %g no está en el grupo. (bloque %"
-"b)\n"
+"El mapa de bits de bloques para el grupo %g no está en el grupo. (bloque "
+"%b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:110
+#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
msgstr ""
-"El mapa de bits de nodos-i para el grupo %g no está en el grupo. (bloque %"
-"b)\n"
+"El mapa de bits de nodos-i para el grupo %g no está en el grupo. (bloque "
+"%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
+#: e2fsck/problem.c:116
msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
@@ -791,21 +816,25 @@ msgstr ""
"ATENCIÓN: ES POSIBLE QUE HAYA UNA PÉRDIDA DE DATOS SEVERA.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
-#: e2fsck/problem.c:121
-#, c-format
+#: e2fsck/problem.c:122
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -819,7 +848,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:130
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -832,7 +861,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:137
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -843,24 +872,24 @@ msgstr ""
"tamaños de fragmento distintos al del @b.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:144
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "El @bs_per_group del @S = %b y debería haber sido %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:149
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "El first_data_@b del @S = %b y debería haber sido %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:154
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
msgstr "El @f no tiene un UUID; se generará uno.\n"
-#: e2fsck/problem.c:159
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -879,48 +908,48 @@ msgstr ""
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:168
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "El @S está corrupto. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:173
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "Error al determinar el tamaño del @v físico: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:178
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "La cuenta @i en el @S es %i, @s %j.\n"
-#: e2fsck/problem.c:182
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "El Hurd no tiene implementada la opción de tipos de fichero.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:187
-#, fuzzy, c-format
+#: e2fsck/problem.c:190
+#, c-format
msgid "@S has an @n @j (@i %i).\n"
-msgstr "@S tiene un @j ext3 @n (@i %i).\n"
+msgstr "@S tiene un @j @n (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:192
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "El @j externo tiene varios usuarios del @f (no implementado).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:197
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "No puedo encontrar un @j externo\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:202
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "El @j externo tiene un @S dañado\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:207
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "El @j externo no tiene implementado este @f\n"
@@ -928,7 +957,7 @@ msgstr "El @j externo no tiene implementado este @f\n"
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#. @-expanded: format.\n
#. @-expanded: It is also possible the journal superblock is corrupt.\n
-#: e2fsck/problem.c:212
+#: e2fsck/problem.c:215
#, fuzzy
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
@@ -942,13 +971,13 @@ msgstr ""
"También es posible que el @S del @j esté corrupto.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:220
+#: e2fsck/problem.c:223
#, fuzzy
msgid "@j @S is corrupt.\n"
msgstr "El @S del @j ext3 está corrupto.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:225
+#: e2fsck/problem.c:228
#, fuzzy, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr ""
@@ -956,14 +985,14 @@ msgstr ""
"contiene información.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:230
+#: e2fsck/problem.c:233
#, fuzzy
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr ""
"El @S tiene ext3 y la bandera need_recovery está activada, pero no hay @j.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:235
+#: e2fsck/problem.c:238
#, fuzzy
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr ""
@@ -971,57 +1000,47 @@ msgstr ""
"contiene información.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:240
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Borrar el @j"
-#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:245
-msgid "Run @j anyway"
-msgstr "Ejecutar el @j de todas formas"
-
-#. @-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"
+#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
+msgid "@f has feature flag(s) set, but is a revision 0 @f. "
msgstr ""
-"La bandera de recuperación no está activada en el @S de respaldo,\n"
-"por eso se ejecutará de todas maneras el @j.\n"
+"El @f tiene una(s) bandera(s) especial(es), pero es una revisión 0 del @f. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:255
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s @i @o %i (uid=%Iu, gid=%Ig, modo=%Im, tamaño=%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"
+#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:258
+#, fuzzy
+msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "@b @I #%B (%b) encontrado en un @i @o %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"
+#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:263
+#, fuzzy
+msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "Ya se borró el @b #%B (%b) encontrado en el @i @o %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:270
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@i @o @I %i en el @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:275
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "@i @I %i en la lista de @i @o.\n"
-#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:280 e2fsck/problem.c:647
-msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr ""
-"El @f tiene una(s) bandera(s) especial(es), pero es una revisión 0 del @f. "
-
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:285
+#: e2fsck/problem.c:278
#, fuzzy
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr ""
@@ -1029,7 +1048,7 @@ msgstr ""
"de sólo lectura.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:290
+#: e2fsck/problem.c:283
#, fuzzy
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr ""
@@ -1037,13 +1056,13 @@ msgstr ""
"incompatible.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:295
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "La versión del @j no está implementada en este e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:300
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1054,7 +1073,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:305
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1066,7 +1085,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:310
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1077,9 +1096,21 @@ msgstr ""
"Borrando los campos que exceden la V1 del @j del @S...\n"
"\n"
+#. @-expanded: Run journal anyway
+#: e2fsck/problem.c:309
+msgid "Run @j anyway"
+msgstr "Ejecutar el @j de todas formas"
+
+#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
+#: e2fsck/problem.c:314
+msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
+msgstr ""
+"La bandera de recuperación no está activada en el @S de respaldo,\n"
+"por eso se ejecutará de todas maneras el @j.\n"
+
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:316
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1089,7 +1120,7 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:321
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1098,36 +1129,44 @@ msgstr ""
"es %N; debería ser cero. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:327
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr ""
"El 'resize_inode' no está habilitado, pero el nodo-i de cambio del tamaño no "
"es cero. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:332
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr "El nodo-i de cambio del tamaño no es válido. "
-#. @-expanded: superblock last mount time is in the future.
-#: e2fsck/problem.c:337
-msgid "@S last mount time is in the future. "
+#. @-expanded: superblock last mount time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:340
+#, fuzzy
+msgid ""
+"@S last mount time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr "La última vez que se montó el superbloque es en el futuro. "
-#. @-expanded: superblock last write time is in the future.
-#: e2fsck/problem.c:342
-msgid "@S last write time is in the future. "
+#. @-expanded: superblock last write time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:345
+#, fuzzy
+msgid ""
+"@S last write time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr "La última vez que se escribió en el superbloque es en el futuro. "
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:346
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr "La pista de superbloque para un superbloque externo debería ser %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:351
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
@@ -1135,161 +1174,228 @@ msgstr ""
"Agregando la pista dirhash al sistema de ficheros\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:356
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
msgstr ""
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:361
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr ""
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:366
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr ""
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:371
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr ""
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:376
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr ""
-#: e2fsck/problem.c:381
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr ""
-#: e2fsck/problem.c:385
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr ""
+#. @-expanded: superblock last mount time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set)
+#: e2fsck/problem.c:388
+msgid ""
+"@S last mount time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
+msgstr ""
+
+#. @-expanded: superblock last write time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set).
+#: e2fsck/problem.c:394
+msgid ""
+"@S last write time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
+msgstr ""
+
+#. @-expanded: One or more block group descriptor checksums are invalid.
+#: e2fsck/problem.c:400
+msgid "One or more @b @g descriptor checksums are invalid. "
+msgstr ""
+
+#. @-expanded: Setting free inodes count to %j (was %i)\n
+#: e2fsck/problem.c:405
+#, fuzzy
+msgid "Setting free @is count to %j (was %i)\n"
+msgstr "Se pone la cantidad de bloques reservados a %lu\n"
+
+#. @-expanded: Setting free blocks count to %c (was %b)\n
+#: e2fsck/problem.c:410
+#, fuzzy
+msgid "Setting free @bs count to %c (was %b)\n"
+msgstr "Se pone la cantidad de bloques reservados a %lu\n"
+
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+#, fuzzy
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr ""
+"Moviendo el @j de /%s a un nodo-i oculto.\n"
+"\n"
+
+#. @-expanded: superblock has invalid MMP block.
+#: e2fsck/problem.c:420
+#, fuzzy
+msgid "@S has invalid MMP block. "
+msgstr "tamaño del bloque inválido - %s"
+
+#. @-expanded: superblock has invalid MMP magic.
+#: e2fsck/problem.c:425
+msgid "@S has invalid MMP magic. "
+msgstr ""
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr ""
+
+#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr ""
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
# Prefiero el infinitivo, pero hay ocasiones en que el gerundio es
# indispensable, como por ejemplo "verificando", "revisando", en donde
# da la impresión de que en ese momento se están haciendo las cosas.
# En este caso en particular, creo que es conveniente el gerundio. mm
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
-#: e2fsck/problem.c:392
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Paso 1: Verificando nodos-i, @bs y tamaños\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:396
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "el @r no es un @d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:401
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr ""
"el @r tiene puesto el dtime (probablemente debido a una versión antigua del "
"mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:406
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "El @i reservado %i %Q tiene un modo incorrecto. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:411
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "@i %i @D, tiene un dtime cero. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:416
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "@i %i está en uso, pero tiene puesto dtime. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:421
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "@i %i es un @d con @z. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:426
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
-msgstr "@b del @B del @g %g @C está en %b.\n"
+msgstr "El @B de @bs del @g %g en el lugar %b @C.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:431
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
-msgstr "El @i del @B del @g %g @C en %b.\n"
+msgstr "El @B de nodos-i del @g %g en el lugar %b @C.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:436
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
-msgstr "La tabla de @i del @g %g @C en %b.\n"
+msgstr "La tabla de @i del @g %g en el lugar %b @C.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:441
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
-msgstr "El @b del @B (%B) del @g %g está dañado. "
+msgstr "El @B (%b) de @bs del @g %g está dañado. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:446
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
-msgstr "El @i del @B (%B) del @g %g está dañado. "
+msgstr "El @B (%b) de nodos-i del @g %g está dañado. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:451
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "@i %i, i_size es %Is, @s %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:456
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "@i %i, i_@bs es %Ib, @s %N. "
-#. @-expanded: illegal block #%B (%b) in inode %i.
-#: e2fsck/problem.c:461
-msgid "@I @b #%B (%b) in @i %i. "
+#. @-expanded: illegal %B (%b) in inode %i.
+#: e2fsck/problem.c:516
+#, fuzzy
+msgid "@I %B (%b) in @i %i. "
msgstr "@I @b #%B (%b) en @i %i. "
-#. @-expanded: block #%B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:466
-msgid "@b #%B (%b) overlaps @f metadata in @i %i. "
+#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
+#: e2fsck/problem.c:521
+#, fuzzy
+msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr "@b #%B (%b) se encima con los metadatos del @f en el @i %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:471
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "@i %i tiene @b(s) inválido(s). "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:476
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Demasiados @bs inválidos en el @i %i.\n"
-#. @-expanded: illegal block #%B (%b) in bad block inode.
-#: e2fsck/problem.c:481
-msgid "@I @b #%B (%b) in bad @b @i. "
+#. @-expanded: illegal %B (%b) in bad block inode.
+#: e2fsck/problem.c:536
+#, fuzzy
+msgid "@I %B (%b) in bad @b @i. "
msgstr "@b @I #%B (%b) en el @b del @i dañado. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:486
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "@b del @i dañado tiene @b(s) inválido(s). "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:491
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "¡@b duplicado o dañado está en uso!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:496
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr "El @b %b dañado se usa de forma indirecta como @b del @i. "
@@ -1297,7 +1403,7 @@ msgstr "El @b %b dañado se usa de forma indirecta como @b del @i. "
#. @-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:501
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1313,7 +1419,7 @@ msgstr ""
# cuando se traducen.
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:508
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1324,7 +1430,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:513
+#: e2fsck/problem.c:568
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"
@@ -1335,129 +1441,129 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "El @S primario (%b) está en la lista de @bs dañados.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
msgstr ""
"El bloque %b en los descriptores primarios del @g está en la lista de @bs "
"dañados\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:530
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Atención: el @S (%B) del grupo %g está dañado.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:535
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
msgstr ""
"Atención: la copia de los descriptores del @g %g tiene un @b (%b) dañado.\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:541
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
msgstr ""
"¿Será un error de programación? El @b #%b se reclama sin razón en el "
"process_bad_block.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:547
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr "@A %N, es contigua a los @bs en el @b del @g %g para %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:552
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "@A del búfer del @b por reubicar %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:557
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Reubicando %s del @g %g de %b a %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Reubicando el @g %g de %s hacia %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Atención: no se puede leer el @b %b de %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:572
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Atención: no se puede escribir el @b %b para %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:577 e2fsck/problem.c:1378
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "Hay un @A del @B del @i (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:582
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "Hay un @A del @b del @B (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:587
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr "@A en la cuenta-i de la información del enlace: %m\n"
# array -> matriz
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:592
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "@A el arreglo del @b de @ds: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:597
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Error mientras se exploraba el @i (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:602
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr "Error mientras se iteraba sobre los @bs en el @i %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:607
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr ""
"Error al guardar la información de la cuenta del @i (@i=%i, cuenta=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:612
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
msgstr ""
"Error al guardar la información del @b de @ds (@i=%i, @b=%b, núm=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:618
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Error al leer el @i %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:626
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "@i %i tiene puesta la bandera imagic. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:631
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1467,7 +1573,7 @@ msgstr ""
"no es modificable o tiene la bandera 'append-only' (sólo añadir). "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:637
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr ""
@@ -1475,7 +1581,7 @@ msgstr ""
"implementada. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:642
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr ""
@@ -1483,106 +1589,108 @@ msgstr ""
"tiene un tamaño distinto de cero. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:652
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "El @i del @j no está en uso, pero contiene información. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:657
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "el @j no es un fichero regular. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:662
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "el @i %i era parte de la lista de nodos-i @os. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:668
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr ""
"Los nodos-i fueron parte de una lista enlazada que estaba huérfana y "
"dañada. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:673
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "@A de la estructura refcount (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:678
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr "Error al leer el @b del @a %b para el @i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:683
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "@i %i tiene un @b del @a %b dañado. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:688
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "Error al leer el @b del @a %b (%m). "
-#. @-expanded: extended attribute block %b has reference count %B, should be %N.
-#: e2fsck/problem.c:693
-msgid "@a @b %b has reference count %B, @s %N. "
+#. @-expanded: extended attribute block %b has reference count %r, should be %N.
+#: e2fsck/problem.c:748
+#, fuzzy
+msgid "@a @b %b has reference count %r, @s %N. "
msgstr "El @b del @a %b tiene una cuenta de referencia %B y @s %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:698
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "Error al escribir el @b de @a %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:703
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr "El @b del @a %b tiene h_@bs > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:708
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "@A de @a @b %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:713
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "el @b del @a %b está dañado (hubo una colisión en la reserva). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:718
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "el @b del @a %b está dañado (nombre no válido). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:723
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "el @b del @a %b está dañado (valor no válido). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:728
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "el @i %i es muy grande. "
-#. @-expanded: block #%B (%b) causes directory to be too big.
-#: e2fsck/problem.c:732
-msgid "@b #%B (%b) causes @d to be too big. "
+#. @-expanded: %B (%b) causes directory to be too big.
+#: e2fsck/problem.c:787
+#, fuzzy
+msgid "%B (%b) causes @d to be too big. "
msgstr "el @b #%B (%b) causa que el @d sea muy grande. "
-#. @-expanded: block #%B (%b) causes file to be too big.
-#: e2fsck/problem.c:737
-msgid "@b #%B (%b) causes file to be too big. "
+#: e2fsck/problem.c:792
+#, fuzzy
+msgid "%B (%b) causes file to be too big. "
msgstr "el @b #%B (%b) causa que el fichero sea muy grande. "
-#. @-expanded: block #%B (%b) causes symlink to be too big.
-#: e2fsck/problem.c:742
-msgid "@b #%B (%b) causes symlink to be too big. "
+#: e2fsck/problem.c:797
+#, fuzzy
+msgid "%B (%b) causes symlink to be too big. "
msgstr "el @b #%B (%b) causa que el enlace simbólico sea muy grande. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:747
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr ""
@@ -1590,37 +1698,37 @@ msgstr ""
"implementado.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:752
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "@i %i tiene puesta la bandera INDEX_FL pero no es un @d.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:757
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "El @h %i tiene un nodo raíz no válido.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:762
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr "El @h %i tiene una versión de hash no implementada (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:767
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr ""
"El @h %i utiliza una bandera incompatible para el nodo raíz del árbol h.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:772
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "El @h %i tiene una profundidad (%N) muy grande\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:777
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
@@ -1629,56 +1737,56 @@ msgstr ""
"entra en conflicto con la metainformación del @f. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:783
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "Falló la (re)creación del nodo-i de cambio de tamaño: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:788
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "El @i %i tiene un tamaño adicional (%IS) que es @n\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:793
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "El @a en el @i %i tiene una longitud de nombre (%N) que es @n\n"
-#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:798
-msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "El @a en el @i %i tiene un valor de tamaño (%N) que es @n\n"
-
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:803
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr "El @a en @i %i tiene un valor de desplazamiento (%N) que es @n\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:808
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr "El @a en el @i %i tiene un valor de @b (%N) que es @n (debe ser 0)\n"
+#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
+#: e2fsck/problem.c:863
+msgid "@a in @i %i has a value size (%N) which is @n\n"
+msgstr "El @a en el @i %i tiene un valor de tamaño (%N) que es @n\n"
+
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:813
+#: e2fsck/problem.c:868
#, fuzzy
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "El @a en el @i %i tiene una longitud de nombre (%N) que es @n\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:818
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr "Nodo-i %i está marcado como un %It pero parece ser un directorio.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:823
+#: e2fsck/problem.c:878
#, fuzzy, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr "Error mientras se iteraba sobre los @bs en el @i %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:828
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1686,7 +1794,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:834
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1694,14 +1802,14 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:839
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:844
+#: e2fsck/problem.c:899
#, fuzzy, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr ""
@@ -1709,39 +1817,92 @@ msgstr ""
"implementado.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:849
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr ""
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:854
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr ""
-#: e2fsck/problem.c:859
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr ""
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:864
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:868
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr ""
+#. @-expanded: Error converting subcluster block bitmap: %m\n
+#: e2fsck/problem.c:928
+#, fuzzy, c-format
+msgid "Error converting subcluster @b @B: %m\n"
+msgstr "Error al iterar sobre los @bs del @d: %m\n"
+
+#. @-expanded: quota inode is not regular file.
+#: e2fsck/problem.c:933
+#, fuzzy
+msgid "@q @i is not regular file. "
+msgstr "el @j no es un fichero regular. "
+
+#. @-expanded: quota inode is not in use, but contains data.
+#: e2fsck/problem.c:938
+#, fuzzy
+msgid "@q @i is not in use, but contains data. "
+msgstr "El @i del @j no está en uso, pero contiene información. "
+
+#. @-expanded: quota inode is visible to the user.
+#: e2fsck/problem.c:943
+#, fuzzy
+msgid "@q @i is visible to the user. "
+msgstr "@i %i está en uso, pero tiene puesto dtime. "
+
+#. @-expanded: The bad block inode looks invalid.
+#: e2fsck/problem.c:948
+msgid "The bad @b @i looks @n. "
+msgstr "El nodo-i de bloques dañados parece inválido. "
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+
#. @-expanded: \n
#. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n
#. @-expanded: Pass 1B: Rescanning for multiply-claimed blocks\n
-#: e2fsck/problem.c:875
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1754,70 +1915,71 @@ msgstr ""
"ocasiones\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:881
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "Bloque(s) reclamado(s) en múltiples ocasiones en nodo- %i. "
-#: e2fsck/problem.c:896
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Error mientras se exploraban los nodos-i (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:901
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "@A del @B del @i (@i_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:906
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr "Error mientras se iteraba sobre los @bs en el @i %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:911 e2fsck/problem.c:1227
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr ""
"Error al ajustar la cuenta de referencia para el @b del @a %b (@i %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:917
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr ""
"Paso 1C: Explorando los directorios para buscar nodos-i con @bs reclamados "
"en múltiples ocasiones\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:923
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Paso 1D: Reconciliando los @bs reclamados en múltiples ocasiones\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:928
+#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
+#: e2fsck/problem.c:1026
+#, fuzzy
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
-" has %B @m @b(s), shared with %N file(s):\n"
+" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
"El fichero %Q (@i #%i, fecha de modificación %IM)\n"
"tiene %B @b(s) reclamado(s) en múltiples ocasiones, compartido(s) con %N "
"fichero(s):\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:934
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (@i #%i, fecha de modificación %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:939
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<metadatos del @f>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:944
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1827,328 +1989,338 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:949
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
"Los @bs reclamados en múltiples ocasiones ya se reasignaron o se clonaron.\n"
-#: e2fsck/problem.c:962
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "No se puede clonar el fichero: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:968
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Paso 2: Verificando la estructura de @ds\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:973
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr "Número @n del @i para '.' en el @i del @d %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:978
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "@E tiene un @i @n #: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:983
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr "@E tiene un @i %Di @D/no utilizado. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:988
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "@E @L a '.' "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:993
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "@E apunta al @i (%Di) ubicado en un @b dañado.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:998
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "@E @L al @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1003
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "@E @L al @r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1008
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "La @E contiene caracteres no válidos en el nombre.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1013
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "Falta '.' en el @d @i %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1018
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "Falta '..' en el @i del @d %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1023
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr "La primera @e '%Dn' (@i=%Di) en el @i del @d %i (%p) @s '.'\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1028
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "La segunda @e '%Dn' (@i=%Di) en el @i del @d %i @s '..'\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1033
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr "El i_faddr @F %IF, @s cero.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1038
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "El i_file_acl @F %If, @s cero.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1043
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "El i_dir_acl @F %Id, @s cero.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1048
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr "El i_frag @F %N, @s cero.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1053
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "El i_fsize @F %N, @s cero.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1058
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "El @i %i (%Q) tiene un modo @n (%Im).\n"
-#. @-expanded: directory inode %i, block %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1063
-msgid "@d @i %i, @b %B, offset %N: @d corrupted\n"
+#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
+#: e2fsck/problem.c:1161
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "El @i del @d %i, @b %B, desplazamiento %N: el @d está dañado\n"
-#. @-expanded: directory inode %i, block %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1068
-msgid "@d @i %i, @b %B, offset %N: filename too long\n"
+#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
+#: e2fsck/problem.c:1166
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr ""
"El @i del @d %i, @b %B, desplazamiento %N: el nombre del fichero es muy "
"largo\n"
-#. @-expanded: directory inode %i has an unallocated block #%B.
-#: e2fsck/problem.c:1073
-msgid "@d @i %i has an unallocated @b #%B. "
+#. @-expanded: directory inode %i has an unallocated %B.
+#: e2fsck/problem.c:1171
+#, fuzzy
+msgid "@d @i %i has an unallocated %B. "
msgstr "El @i %i del @d tiene un @b #%B que no está reservado. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1078
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "La @e en el @d '.' en el @i del @d %i no está terminada con NULL\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1083
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "La @e al @d '..' en el @i %i del @d no está terminada con NULL\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1088
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "El @i %i (%Q) es un @v de carácter @I.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1093
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "El @i %i (%Q) es un @v de @b @I.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1098
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "La @E está duplicada en la @e '.'.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1103
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "La @E está duplicada en la @e '..'.\n"
-#: e2fsck/problem.c:1108 e2fsck/problem.c:1403
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "Error interno: no se puede encontrar el dir_info para %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1113
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "La @E tiene un rec_len de %Dr y @s %N.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1118
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "@A de la estructura icount: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1123
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Error al iterar sobre los @bs del @d: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1128
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Error al leer el @b %b del @d (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1133
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Error al escribir el @b %b del @d (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1138
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "@A del @b del @d para el @i %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1143
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Error al liberar el @i %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1148
+#: e2fsck/problem.c:1246
#, fuzzy, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "La @e del @d para '.' es grande. "
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1153
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "El @i %i (%Q) es un FIFO @I.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1158
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "El @i %i (%Q) es un sócket @I.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1163
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "Se pone el tipo de fichero para la @E a %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1168
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "La @E tiene un tipo de fichero incorrecto (era %Dt y @s %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1173
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "La @E tiene puesto el tipo de fichero.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1178
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "La @E tiene un nombre de @z.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1183
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "El enlace simbólico %Q (@i #%i) es @n.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1188
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "El @b del @a @F es @n (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1193
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr ""
"El @f contiene ficheros muy grandes, pero no tiene la bandera LARGE_FILE en "
"el @S.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) not referenced\n
-#: e2fsck/problem.c:1198
-msgid "@p @h %d: node (%B) not referenced\n"
+#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
+#: e2fsck/problem.c:1296
+#, fuzzy
+msgid "@p @h %d: %B not referenced\n"
msgstr "Hay un @p en el @h %d: el nodo (%B) no ha sido referenciado.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) referenced twice\n
-#: e2fsck/problem.c:1203
-msgid "@p @h %d: node (%B) referenced twice\n"
+#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
+#: e2fsck/problem.c:1301
+#, fuzzy
+msgid "@p @h %d: %B referenced twice\n"
msgstr "Hay un @p en el @h %d: el nodo (%B) ha sido referenciado dos veces.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad min hash\n
-#: e2fsck/problem.c:1208
-msgid "@p @h %d: node (%B) has bad min hash\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
+#: e2fsck/problem.c:1306
+#, fuzzy
+msgid "@p @h %d: %B has bad min hash\n"
msgstr "Hay un @p en el @h %d: el nodo (%B) tiene un hash mínimo incorrecto.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad max hash\n
-#: e2fsck/problem.c:1213
-msgid "@p @h %d: node (%B) has bad max hash\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
+#: e2fsck/problem.c:1311
+#, fuzzy
+msgid "@p @h %d: %B has bad max hash\n"
msgstr "Hay un @p en el @h %d: el nodo (%B) tiene un hash máximo incorrecto.\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1218
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "El @h %d es @n (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1222
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "Hay un @p en el @h %d (%q): el número del @b %b es incorrecto.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1232
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "Hay un @p en el @h %d: el nodo raíz es @n.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid limit (%N)\n
-#: e2fsck/problem.c:1237
-msgid "@p @h %d: node (%B) has @n limit (%N)\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
+#: e2fsck/problem.c:1335
+#, fuzzy
+msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr "Hay un @p en el @h %d: el nodo (%B) tiene un límite @n (%N).\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid count (%N)\n
-#: e2fsck/problem.c:1242
-msgid "@p @h %d: node (%B) has @n count (%N)\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
+#: e2fsck/problem.c:1340
+#, fuzzy
+msgid "@p @h %d: %B has @n count (%N)\n"
msgstr "Hay un @p en el @h %d: el nodo (%B) tiene una cuenta @n (%N).\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
-#: e2fsck/problem.c:1247
-msgid "@p @h %d: node (%B) has an unordered hash table\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
+#: e2fsck/problem.c:1345
+#, fuzzy
+msgid "@p @h %d: %B has an unordered hash table\n"
msgstr ""
"Hay un @p en el @h %d: el nodo (%B) tiene una tabla de hash no ordenada.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth (%N)\n
-#: e2fsck/problem.c:1252
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
+#: e2fsck/problem.c:1350
#, fuzzy
-msgid "@p @h %d: node (%B) has @n depth (%N)\n"
+msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "Hay un @p en el @h %d: el nodo (%B) su profundidad es @n.\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1257
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "@E está duplicada. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1262
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2160,7 +2332,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1267
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2171,112 +2343,118 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1272
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "El i_blocks_hi @F %N, @s cero.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1277
+#: e2fsck/problem.c:1375
#, fuzzy
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "El @d del @i %i (%p) está desconectado\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1281
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1286
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
+#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
+#: e2fsck/problem.c:1389
+#, fuzzy
+msgid "i_file_acl_hi @F %N, @s zero.\n"
+msgstr "El i_file_acl @F %If, @s cero.\n"
+
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1293
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Paso 3: Revisando la conectividad de directorios\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1298
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "El @r no ha sido reservado. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1303
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "No hay espacio en el @d @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1308
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "El @d del @i %i (%p) está desconectado\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1313
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "No se encontró /@l. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1318
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "'..' en %Q (i) es %P (%j) y debería ser %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1323
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "El /@l no existe o está dañado. No se puede reconectar.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1328
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "No se puede expandir /@l: %m\n"
-#: e2fsck/problem.c:1333
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "No se puede reconectar %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1338
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "Error mientras se intentaba encontrar /@l: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1343
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_block: %m mientras se intentaba crear el @d /@l.\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1348
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_inode: %m cuando se intentaba crear el @d /@l.\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr "ext2fs_new_dir_block: %m mientras se creaba un nuevo @b de @d.\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr "ext2fs_write_dir_block: %m mientras se escribía el @b de @d para /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Error mientras se ajustaba la cuenta del @i en el @i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1368
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2290,7 +2468,7 @@ msgstr ""
# Hay alguna regla que se me escape? mm
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1373
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2301,76 +2479,76 @@ msgstr ""
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1383
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Error al crear el @d raíz (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1388
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Error al crear el @d /@l (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1393
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "El @r no es un @d; se finaliza la operación.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1398
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "No se puede proceder sin un @r.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1408
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "El /@l no es un @d (ino=%i)\n"
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Paso 3A: Optimizando directorios\n"
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1523
#, fuzzy, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Falla al crear el iterador dirs_to_hash: %m"
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1528
#, fuzzy
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Fallo al optimizar el directorio %q (%d): %m"
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Optimizando directorios: "
-#: e2fsck/problem.c:1447
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Paso 4: Revisando las cuentas de referencia\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1452
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "@i %i que tiene @z está @u. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1457
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "el @i %i está @u\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1462
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "La cuenta de referencia del @i %i es %Il, y @s %N. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
-#: e2fsck/problem.c:1466
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2383,61 +2561,61 @@ msgstr ""
"mismo!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1476
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Paso 5: Revisando el resumen de información de grupos\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1481
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "No está puesto el relleno al final del @B del @i. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1486
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "No está puesto el relleno al final del @B del @b. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1491
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "Diferencias del @B del @b: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1511
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "Diferencias del @B del @i: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1531
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
"La cuenta de nodos-i libres es incorrecta para el @g #%g (%i, contados=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1536
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
"La cuenta de directorios es incorrecta para @g #%g (%i, contados=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1541
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "La cuenta de nodos-i libres es incorrecta (%i, contados=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1546
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr ""
"La cuenta de @bs libres es incorrecta para el @g #%g (%b, contados=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1551
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "La cuenta de @bs libres es incorrecta (%b, contados=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1556
+#: e2fsck/problem.c:1659
msgid ""
"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
"endpoints (%i, %j)\n"
@@ -2445,86 +2623,90 @@ msgstr ""
"ERROR DE PROGRAMACIÓN: el @f (#%N) los puntos finales del %B (%b, %c) no "
"coinciden con los puntos finales del @B calculados (%i, %j)\n"
-#: e2fsck/problem.c:1562
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr "Error interno: el final del bitmap no tiene sentido (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1567
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Error al copiar el reemplazo del @i @B: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1572
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr "Error al copiar el reemplazo del @b @B: %m\n"
-#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1597
-#, fuzzy
-msgid "Recreate @j"
-msgstr "Recrear"
-
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1602
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr ""
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1607
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1725
+#. @-expanded: Recreate journal
+#: e2fsck/problem.c:1712
+#, fuzzy
+msgid "Recreate @j"
+msgstr "Recrear"
+
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr ""
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "¡Código de error no previsto (0x%x)!\n"
-#: e2fsck/problem.c:1820
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "SE IGNORA"
-#: e2fsck/scantest.c:81
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Memoria utilizada: %d, tiempo transcurrido: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:100
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "tamaño del nodo-i=%d\n"
-#: e2fsck/scantest.c:121
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "mientras se comenzaba a explorar los nodos-i"
-#: e2fsck/scantest.c:132
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "mientras se exploraba los nodos-i"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "mientras se llamaba a ext2fs_block_iterate para el nodo-i %d"
-#: e2fsck/super.c:209
-#, c-format
-msgid "while calling ext2fs_adjust_ea_refcount for inode %d"
+#: e2fsck/super.c:213
+#, fuzzy, c-format
+msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "mientras se llamaba a ext2fs_adjust_ea_refcount para el nodo-i %d"
-#: e2fsck/super.c:267
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Truncando"
-#: e2fsck/super.c:268
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Borrando"
-#: e2fsck/unix.c:76
+#: e2fsck/unix.c:74
#, fuzzy, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2538,8 +2720,7 @@ msgstr ""
"externo]\n"
"\t\t[-E opciones-extendidas] dispositivo\n"
-#: e2fsck/unix.c:82
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
@@ -2560,8 +2741,7 @@ msgstr ""
" -f Fuerza la revisión aún si el sistema de ficheros\n"
" está etiquetado como limpio\n"
-#: e2fsck/unix.c:88
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2582,38 +2762,165 @@ msgstr ""
" -L fichero_de_bloques_dañados \n"
" Pone la lista de bloques dañados\n"
-#: e2fsck/unix.c:132
+#: e2fsck/unix.c:131
#, c-format
-msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %u/%u blocks\n"
-msgstr "%s: %u/%u ficheros (%0d.%d%% no contiguos), %u/%u bloques\n"
+msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
+msgstr "%s: %u/%u ficheros (%0d.%d%% no contiguos), %llu/%llu bloques\n"
-#: e2fsck/unix.c:150
+#: e2fsck/unix.c:157
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " # de nodos-i con bloques ind/dind/tind: %u/%u/%u\n"
+msgid ""
+"\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
+msgid_plural ""
+"\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
+msgstr[0] ""
+"\n"
+"%12u nodo-i utilizado (%2.2f%%, el %u)\n"
+msgstr[1] ""
+"\n"
+"%12u nodos-i utilizados (%2.2f%%, el %u)\n"
-#: e2fsck/unix.c:157
+#: e2fsck/unix.c:161
+#, c-format
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u fichero no contiguo (%0d.%d%%)\n"
+msgstr[1] "%12u ficheros no contiguos (%0d.%d%%)\n"
+
+#: e2fsck/unix.c:166
#, c-format
-msgid " Extent depth histogram: "
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u directorio no contiguo (%0d.%d%%)\n"
+msgstr[1] "%12u directorios no contiguos (%0d.%d%%)\n"
+
+#: e2fsck/unix.c:171
+#, c-format
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " número de nodos-i con bloques ind/dind/tind: %u/%u/%u\n"
+
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
msgstr ""
-#: e2fsck/unix.c:207 misc/badblocks.c:916 misc/tune2fs.c:1567 misc/util.c:151
-#: resize/main.c:248
+#: e2fsck/unix.c:188
+#, c-format
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu bloque usado (%2.2f%%, el %llu)\n"
+msgstr[1] "%12llu bloques usados (%2.2f%%, el %llu)\n"
+
+#: e2fsck/unix.c:192
+#, c-format
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u bloque dañado\n"
+msgstr[1] "%12u bloques dañados\n"
+
+#: e2fsck/unix.c:194
+#, c-format
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u fichero grande\n"
+msgstr[1] "%12u ficheros grandes\n"
+
+#: e2fsck/unix.c:196
+#, c-format
+msgid ""
+"\n"
+"%12u regular file\n"
+msgid_plural ""
+"\n"
+"%12u regular files\n"
+msgstr[0] ""
+"\n"
+"%12u fichero regular\n"
+msgstr[1] ""
+"\n"
+"%12u ficheros regulares\n"
+
+#: e2fsck/unix.c:198
+#, c-format
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u directorio\n"
+msgstr[1] "%12u directorios\n"
+
+#: e2fsck/unix.c:200
+#, c-format
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u dispositivo de caracteres\n"
+msgstr[1] "%12u dispositivos de caracteres\n"
+
+#: e2fsck/unix.c:203
+#, c-format
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u dispositivo de bloque\n"
+msgstr[1] "%12u dispositivos de bloque\n"
+
+#: e2fsck/unix.c:205
+#, c-format
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
+msgstr[1] "%12u fifos\n"
+
+#: e2fsck/unix.c:207
+#, c-format
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u vínculo\n"
+msgstr[1] "%12u vínculos\n"
+
+#: e2fsck/unix.c:209
+#, c-format
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u enlace simbólico"
+msgstr[1] "%12u enlaces simbólicos"
+
+#: e2fsck/unix.c:211
+#, c-format
+msgid " (%u fast symbolic link)\n"
+msgid_plural " (%u fast symbolic links)\n"
+msgstr[0] " (%u vínculo simbólico rápido)\n"
+msgstr[1] " (%u vínculos simbólicos rápidos)\n"
+
+#: e2fsck/unix.c:215
+#, c-format
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u zócalo\n"
+msgstr[1] "%12u zócalos\n"
+
+#: e2fsck/unix.c:219
+#, c-format
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u fichero\n"
+msgstr[1] "%12u ficheros\n"
+
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "mientras se determinaba si %s está montado."
-#: e2fsck/unix.c:225
-#, c-format
-msgid "Warning! %s is mounted.\n"
+#: e2fsck/unix.c:252
+#, fuzzy, c-format
+msgid "Warning! %s is %s.\n"
msgstr "¡Atención! %s está montado.\n"
-#: e2fsck/unix.c:229
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s está montado. "
+msgid "%s is %s.\n"
+msgstr ""
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2621,13 +2928,13 @@ msgstr ""
"No se puede continuar, se finaliza.\n"
"\n"
-#: e2fsck/unix.c:232
-#, c-format
+#: e2fsck/unix.c:264
+#, fuzzy
msgid ""
"\n"
"\n"
-"\a\a\a\aWARNING!!! Running e2fsck on a mounted filesystem may cause\n"
-"SEVERE filesystem damage.\a\a\a\n"
+"WARNING!!! The filesystem is mounted. If you continue you ***WILL***\n"
+"cause ***SEVERE*** filesystem damage.\n"
"\n"
msgstr ""
"\n"
@@ -2636,83 +2943,81 @@ msgstr ""
"puede causar GRAVES daños al sistema de ficheros.\a\a\a\n"
"\n"
-#: e2fsck/unix.c:235
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "¿De verdad quiere continuar?"
-#: e2fsck/unix.c:237
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "revisión terminada.\n"
-#: e2fsck/unix.c:310
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " contiene un sistema de ficheros con errores"
-#: e2fsck/unix.c:312
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " no fue desmontado limpiamente"
-#: e2fsck/unix.c:314
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr ""
" las características del superbloque primario difieren de las de la copia de "
"seguridad"
-#: e2fsck/unix.c:318
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " ha sido montado %u veces sin ser revisado"
-#: e2fsck/unix.c:324
+#: e2fsck/unix.c:379
#, fuzzy
msgid " has filesystem last checked time in the future"
msgstr "Se pone la hora de la última revisión al sistema de ficheros a %s\n"
-#: e2fsck/unix.c:330
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " ya lleva %u días sin ser revisado"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", se fuerza la revisión.\n"
-#: e2fsck/unix.c:342
+#: e2fsck/unix.c:427
#, c-format
-msgid "%s: clean, %u/%u files, %u/%u blocks"
-msgstr "%s: limpio, %u/%u ficheros, %u/%u bloques"
+msgid "%s: clean, %u/%u files, %llu/%llu blocks"
+msgstr "%s: limpio, %u/%u ficheros, %llu/%llu bloques"
-#: e2fsck/unix.c:359
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (comprobación aplazada; con baterías)"
# O "revisión después del siguiente montaje".
-#: e2fsck/unix.c:362
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (comprobación en el siguiente montaje)"
-#: e2fsck/unix.c:364
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (comprobación después de %ld montajes)"
-#: e2fsck/unix.c:511
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "ERROR: no se puede abrir /dev/null (%s)\n"
-#: e2fsck/unix.c:581
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Versión de EA no válida.\n"
-#: e2fsck/unix.c:590
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Opción extendida desconocida: %s\n"
-#: e2fsck/unix.c:612
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2721,35 +3026,47 @@ msgstr ""
"Error de sintaxis en el fichero de configuración de e2fsck (%s, línea #%d)\n"
"\t%s\n"
-#: e2fsck/unix.c:680
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Error al validar el descriptor de ficheros %d: %s\n"
-#: e2fsck/unix.c:684
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr "Información de consistencia no válida en el descriptor de ficheros"
-#: e2fsck/unix.c:699
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Sólo se puede especificar una de las opciones -p/-a, -n o -y."
-#: e2fsck/unix.c:720
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "La opción -t no está implementada en esta versión de e2fsck.\n"
-#: e2fsck/unix.c:801 misc/tune2fs.c:549 misc/tune2fs.c:833 misc/tune2fs.c:850
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "No es posible resolver '%s'"
-#: e2fsck/unix.c:831
-#, c-format
+#: e2fsck/unix.c:918
+msgid "The -n and -D options are incompatible."
+msgstr "Las opciones -n y -D se excluyen mutuamente."
+
+#: e2fsck/unix.c:923
+msgid "The -n and -c options are incompatible."
+msgstr "Las opciones -n y -c se excluyen mutuamente."
+
+#: e2fsck/unix.c:928
+msgid "The -n and -l/-L options are incompatible."
+msgstr "Las opciones -n y -l/-L se excluyen mutuamente."
+
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "Las opciones -c y -l/-L no pueden ser utilizadas simultáneamente.\n"
-#: e2fsck/unix.c:879
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
@@ -2758,7 +3075,7 @@ msgstr ""
"E2FSCK_JBD_DEBUG \"%s\" no es un entero\n"
"\n"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2769,39 +3086,71 @@ msgstr ""
"Argumento no numérico inválido para -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:929
+#: e2fsck/unix.c:1129
#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
+#, fuzzy
+msgid "while checking MMP block"
+msgstr "mientras se ajustaba el superbloque"
+
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
+msgid ""
+"If you are sure the filesystem is not in use on any node, run:\n"
+"'tune2fs -f -E clear_mmp {device}'\n"
+msgstr ""
+
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "¡Error: la versión de la biblioteca ext2fs está caduca!\n"
-#: e2fsck/unix.c:937
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "mientras se intentaba inicializar el programa"
-#: e2fsck/unix.c:951
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tAl emplear %s, %s\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "se necesita una terminal para hacer las reparaciones interactivas"
-#: e2fsck/unix.c:1010
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s intentando los bloques de respaldo...\n"
-#: e2fsck/unix.c:1012
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Superbloque es inválido,"
-#: e2fsck/unix.c:1013
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Los descriptores de los grupos parecen dañados..."
-#: e2fsck/unix.c:1040
-#, c-format
+#: e2fsck/unix.c:1312
+#, fuzzy, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s intentando los bloques de respaldo...\n"
+
+# Ojo: No es que se haya encontrado un superbloque que resulta que no es
+# válido, sino que no se ha encontrado ningún superbloque que sea válido,
+# que es distinto (a lo mejor no se ha encontrado ningún superbloque
+# en absoluto). Creo que la traducción debería cambiarse. sv
+# En efecto, tienes toda la razón. Corregido. mm
+#: e2fsck/unix.c:1316
+#, fuzzy, c-format
+msgid "%s: going back to original superblock\n"
+msgstr ""
+"%s: no se encontró un superbloque válido en el fichero de transacciones\n"
+
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2812,29 +3161,29 @@ msgstr ""
"versión de e2fsck. (O el superbloque del sistema de ficheros está dañado)\n"
"\n"
-#: e2fsck/unix.c:1046
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "¿Esta podría ser una partición de longitud cero?\n"
-#: e2fsck/unix.c:1048
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Se debe tener acceso %s al sistema de ficheros o ser root\n"
-#: e2fsck/unix.c:1053
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "¿Es posible que no exista o que sea un dispositivo de intercambio?\n"
-#: e2fsck/unix.c:1055
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"¿Sistema de ficheros montado o abierto en exclusiva por otro programa?\n"
-#: e2fsck/unix.c:1059
-#, c-format
+#: e2fsck/unix.c:1366
+msgid "Possibly non-existent device?\n"
+msgstr "¿Es posible que no exista el dispositivo?\n"
+
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -2842,17 +3191,16 @@ msgstr ""
"El disco está protegido contra escritura; utilice la opción -n para\n"
"hacer una revisión de sólo lectura al dispositivo.\n"
-#: e2fsck/unix.c:1123
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "¡Consiga una versión más moderna de e2fsck!"
-#: e2fsck/unix.c:1147
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "mientras se revisaba el fichero de transacciones ext3 para %s"
-#: e2fsck/unix.c:1158
-#, c-format
+#: e2fsck/unix.c:1489
msgid ""
"Warning: skipping journal recovery because doing a read-only filesystem "
"check.\n"
@@ -2860,67 +3208,54 @@ msgstr ""
"Atención: se omitirá la recuperación del fichero de transacciones debido a "
"que se está haciendo una revisión de sólo lectura del sistema de ficheros.\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "no es posible poner las banderas de superbloque en %s\n"
-#: e2fsck/unix.c:1177
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "mientras se recuperaba el fichero de transacciones ext3 de %s"
-#: e2fsck/unix.c:1201
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s tiene características no soportadas:"
-#: e2fsck/unix.c:1217
-msgid "Warning: compression support is experimental.\n"
-msgstr "Atención: el soporte a la compresión es experimental.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s: atención: el soporte a la compresión es experimental.\n"
-#: e2fsck/unix.c:1222
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"E2fsck no está compilado con soporte a ÃRBOLES-H,\n"
+"%s: e2fsck no está compilado con soporte a ÃRBOLES-H,\n"
"\tpero el sistema de ficheros %s tiene directorios con ÃRBOLES-H.\n"
-#: e2fsck/unix.c:1276
-msgid "while reading bad blocks inode"
-msgstr "mientras se leían los bloques dañados del nodo-i"
-
-#: e2fsck/unix.c:1278
+#: e2fsck/unix.c:1605
#, c-format
-msgid "This doesn't bode well, but we'll try to go on...\n"
-msgstr "Esto no se se ve muy bien, pero se intentará continuar...\n"
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s: %s mientras se leía el nodo-i de los bloques dañados\n"
-#: e2fsck/unix.c:1304
-msgid "Couldn't determine journal size"
-msgstr "No se puede determinar el tamaño del fichero de transacciones"
+#: e2fsck/unix.c:1608
+msgid "This doesn't bode well, but we'll try to go on...\n"
+msgstr "Esto no se ve muy bien, pero se intentará continuar...\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Creando el fichero de transacciones (%d bloques): "
-#: e2fsck/unix.c:1314 misc/mke2fs.c:2091
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tmientras se intentaba crear el fichero de transacciones"
-
-#: e2fsck/unix.c:1317
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " Hecho.\n"
-#: e2fsck/unix.c:1318
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
@@ -2929,25 +3264,24 @@ msgstr ""
"*** el fichero de transacciones se ha creado de nuevo ***\n"
"*** el sistema de ficheros vuelve a ser ext3 ***\n"
-#: e2fsck/unix.c:1325
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Se reinicia e2fsck desde el principio...\n"
-#: e2fsck/unix.c:1329
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "mientras se reajusta el contexto"
-#: e2fsck/unix.c:1336
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: se cancela e2fsck.\n"
-#: e2fsck/unix.c:1341
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "finalizado"
-#: e2fsck/unix.c:1353
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -2956,12 +3290,12 @@ msgstr ""
"\n"
"%s: ***** EL SISTEMA DE FICHEROS FUE MODIFICADO *****\n"
-#: e2fsck/unix.c:1356
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** REINICIE LINUX *****\n"
-#: e2fsck/unix.c:1364
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -2973,44 +3307,44 @@ msgstr ""
"***********\n"
"\n"
-#: e2fsck/unix.c:1400
+#: e2fsck/unix.c:1765
#, fuzzy
msgid "while setting block group checksum info"
msgstr "mientras se ponía el nodo-i de bloques dañados"
-#: e2fsck/util.c:138 misc/util.c:68
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "sS"
-#: e2fsck/util.c:139
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:153
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<s>"
-#: e2fsck/util.c:155
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:157
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (s/n)"
-#: e2fsck/util.c:172
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "¡cancelado!\n"
-#: e2fsck/util.c:187
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "si\n"
-#: e2fsck/util.c:189
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "no\n"
-#: e2fsck/util.c:199
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3019,7 +3353,7 @@ msgstr ""
"¿%s? no\n"
"\n"
-#: e2fsck/util.c:203
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3028,40 +3362,40 @@ msgstr ""
"¿%s? si\n"
"\n"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "yes"
msgstr "si"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "no"
msgstr "no"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps: bloque(s) ilegal(es) de mapas de bits para %s"
-#: e2fsck/util.c:226
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "leyendo los mapas de bits del nodo-i y del bloque"
-#: e2fsck/util.c:231
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "mientras se intentaban leer los mapas de bits para %s"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:298
#, fuzzy
msgid "writing block and inode bitmaps"
msgstr "escribiendo los mapas de bits del bloque"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:303
#, fuzzy, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr ""
"mientras se reintentaba escribir los mapas de bits de los nodos-i para %s"
-#: e2fsck/util.c:260
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3074,45 +3408,51 @@ msgstr ""
"%s: INCONSISTENCIA INESPERADA; EJECUTE fsck MANUALMENTE.\n"
"(i.e., sin las opciones -a o -p)\n"
-#: e2fsck/util.c:336
+#: e2fsck/util.c:396
#, c-format
-msgid "Memory used: %dk/%dk (%dk/%dk), "
-msgstr "Memoria utilizada: %dk/%dk (%dk/%dk), "
+msgid "Memory used: %luk/%luk (%luk/%luk), "
+msgstr "Memoria utilizada: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:340
+#: e2fsck/util.c:400
#, c-format
-msgid "Memory used: %d, "
-msgstr "Memoria utilizada: %d, "
+msgid "Memory used: %lu, "
+msgstr "Memoria utilizada: %lu, "
-#: e2fsck/util.c:346
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "fecha: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:351
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "tiempo transcurrido: %6.3f\n"
-#: e2fsck/util.c:385 e2fsck/util.c:399
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
-msgid "while reading inode %ld in %s"
-msgstr "mientras se leía el nodo-i %ld en %s"
+msgid "while reading inode %lu in %s"
+msgstr "mientras se leía el nodo-i %lu en %s"
-#: e2fsck/util.c:413 e2fsck/util.c:426
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
-msgid "while writing inode %ld in %s"
-msgstr "mientras se escribía el nodo-i %ld en %s"
+msgid "while writing inode %lu in %s"
+msgstr "mientras se escribía el nodo-i %lu en %s"
-#: e2fsck/util.c:575
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "mientras se reservaba el búfer relleno con ceros"
-#: misc/badblocks.c:66
-msgid "done \n"
-msgstr "hecho \n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+
+#: misc/badblocks.c:69
+msgid "done \n"
+msgstr "hecho \n"
-#: misc/badblocks.c:89
+#: misc/badblocks.c:92
#, fuzzy, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
@@ -3127,7 +3467,7 @@ msgstr ""
" [...]]]\n"
" dispositivo [bloque_final [bloque_inicial]]\n"
-#: misc/badblocks.c:100
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
@@ -3136,82 +3476,82 @@ msgstr ""
"%s: Las opciones -n y -w se excluyen mutuamente.\n"
"\n"
-#: misc/badblocks.c:202
+#: misc/badblocks.c:218
#, c-format
-msgid "%6.2f%% done, %s elapsed"
+msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr ""
-#: misc/badblocks.c:289
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Probando con un patrón aleatorio: "
-#: misc/badblocks.c:307
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Probando con el patrón 0x"
-#: misc/badblocks.c:335 misc/badblocks.c:404
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "durante la búsqueda"
-#: misc/badblocks.c:346
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Valor extraño (%ld) en do_read\n"
-#: misc/badblocks.c:424
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "durante el ext2fs_sync_device"
-#: misc/badblocks.c:440 misc/badblocks.c:699
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "mientras se comenzaba la iteración en la lista de bloques dañados"
-#: misc/badblocks.c:454 misc/badblocks.c:551 misc/badblocks.c:709
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "mientras se reservaban los búferes"
-#: misc/badblocks.c:458
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Revisando los bloques del %lu al %lu\n"
-#: misc/badblocks.c:463
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Revisando los bloques dañados en modo de sólo lectura\n"
-#: misc/badblocks.c:472
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Se están revisando los bloques dañados (prueba de sólo lectura): "
-#: misc/badblocks.c:480 misc/badblocks.c:583 misc/badblocks.c:628
-#: misc/badblocks.c:772
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr ""
-#: misc/badblocks.c:558
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Se están revisando los bloques dañados en modo de lectura-escritura\n"
-#: misc/badblocks.c:560 misc/badblocks.c:722
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Del bloque %lu al %lu\n"
-#: misc/badblocks.c:618
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Leyendo y comparando: "
-#: misc/badblocks.c:721
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr ""
"Revisando los bloques dañados en modo lectura-escritura no destructivo\n"
-#: misc/badblocks.c:727
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr ""
"Revisando los bloques dañados (prueba de lectura-escritura no destructiva)\n"
-#: misc/badblocks.c:734
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3219,61 +3559,56 @@ msgstr ""
"\n"
"Se interceptó una interrupción, se limpia todo\n"
-#: misc/badblocks.c:810
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "durante la prueba de escritura de datos del bloque %lu"
-#: misc/badblocks.c:921 misc/util.c:156
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s está montado; "
-#: misc/badblocks.c:923
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"los bloques dañados se fuerzan de todas formas. Se cree que /etc/mtab esté "
"incorrecto.\n"
-#: misc/badblocks.c:928
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "¡No es seguro ejecutar los bloques dañados!\n"
-#: misc/badblocks.c:933 misc/util.c:167
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s está aparentemente en uso por el sistema; "
-#: misc/badblocks.c:936
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "los bloques dañados se fuerzan de todas formas.\n"
-#: misc/badblocks.c:956
+#: misc/badblocks.c:1028
#, fuzzy, c-format
msgid "invalid %s - %s"
msgstr "tamaño del bloque inválido - %s"
-#: misc/badblocks.c:1015
-#, c-format
-msgid "bad block size - %s"
-msgstr "tamaño de los bloques dañados - %s"
-
-#: misc/badblocks.c:1070
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "no se puede reservar memoria para el patrón_de_prueba - %s"
-#: misc/badblocks.c:1097
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr ""
"Sólo un máximo de un patrón_de_prueba puede ser especificado en modo sólo "
"lectura"
-#: misc/badblocks.c:1103
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "El patrón_de_prueba aleatorio no está permitido en modo sólo lectura"
-#: misc/badblocks.c:1117
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
@@ -3281,128 +3616,153 @@ msgstr ""
"No se puede determinar el tamaño del dispositivo; se debe especificar\n"
"de forma manual\n"
-#: misc/badblocks.c:1123
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "mientras se intentaba determinar el tamaño del dispositivo"
-#: misc/badblocks.c:1128
+#: misc/badblocks.c:1200
#, fuzzy
msgid "last block"
msgstr "Reubicando bloques"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1206
#, fuzzy
msgid "first block"
msgstr "Primer bloque de datos=%u\n"
-#: misc/badblocks.c:1137
+#: misc/badblocks.c:1209
+#, fuzzy, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "bloque inicial no válido (%d): debe ser menos que %lu"
+
+#: misc/badblocks.c:1216
#, fuzzy, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+msgid "invalid end block (%llu): must be 32-bit value"
msgstr "bloque inicial no válido (%d): debe ser menos que %lu"
-#: misc/badblocks.c:1193
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "cuando se creaba la lista de bloques dañados en memoria"
-#: misc/badblocks.c:1208
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr ""
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "cuando se añadía a la lista de bloques dañados en memoria"
-#: misc/badblocks.c:1232
-#, c-format
-msgid "Pass completed, %u bad blocks found.\n"
+#: misc/badblocks.c:1323
+#, fuzzy, c-format
+msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Paso terminado, se encontraron %u bloques dañados.\n"
-#: misc/chattr.c:85
+#: misc/chattr.c:86
#, fuzzy, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdijsSu] [-v version] files...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
msgstr "modo de empleo: %s [-RV] [-+=AacDdijsSu] [-v versión] ficheros...\n"
-#: misc/chattr.c:152
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "versión incorrecta - %s\n"
-#: misc/chattr.c:198 misc/lsattr.c:113
+#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "mientras se intentaba ver el estado del fichero %s"
-#: misc/chattr.c:204 misc/chattr.c:222
-#, c-format
-msgid "Flags of %s set as "
-msgstr "Las banderas de %s están puestas como "
-
-#: misc/chattr.c:214
+#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr "mientras se estaban leyendo las banderas en %s"
-#: misc/chattr.c:231
+#: misc/chattr.c:213 misc/chattr.c:225
+#, c-format
+msgid "Flags of %s set as "
+msgstr "Las banderas de %s están puestas como "
+
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "mientras se ponían las banderas en %s"
-#: misc/chattr.c:239
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "La versión de %s está puesta como %lu\n"
-#: misc/chattr.c:243
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "mientras se estaba poniendo la versión en %s"
-#: misc/chattr.c:263
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "No se puede reservar la variable de ruta en chattr_dir_proc"
-#: misc/chattr.c:302
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= es incompatible con - y +\n"
-#: misc/chattr.c:310
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Se debe usar '-v', =, - o +\n"
-#: misc/dumpe2fs.c:53
-#, c-format
-msgid "Usage: %s [-bfhixV] [-ob superblock] [-oB blocksize] device\n"
+#: misc/dumpe2fs.c:55
+#, fuzzy, c-format
+msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr ""
"Modo de empleo: %s [-bfhixV] [-ob superbloque] [-oB tamañodelbloque] "
"dispositivo\n"
-#: misc/dumpe2fs.c:168
+#: misc/dumpe2fs.c:159
+#, fuzzy
+msgid "blocks"
+msgstr "bbloque"
+
+#: misc/dumpe2fs.c:169
+msgid "clusters"
+msgstr ""
+
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Grupo %lu: (Bloques "
-#: misc/dumpe2fs.c:173
+#: misc/dumpe2fs.c:205
+#, c-format
+msgid " Checksum 0x%04x"
+msgstr ""
+
+#: misc/dumpe2fs.c:207
#, c-format
-msgid " Checksum 0x%04x, unused inodes %d\n"
+msgid " (EXPECTED 0x%04x)"
msgstr ""
-#: misc/dumpe2fs.c:178
+#: misc/dumpe2fs.c:208
+#, fuzzy, c-format
+msgid ", unused inodes %u\n"
+msgstr "número de los nodos-i inválido - %s"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s superbloque en "
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Primario"
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Respaldo"
-#: misc/dumpe2fs.c:183
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", descriptores de grupo en "
-#: misc/dumpe2fs.c:187
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3410,20 +3770,19 @@ msgstr ""
"\n"
" Se reservaron los bloques GDT en "
-#: misc/dumpe2fs.c:194
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Descriptor de grupo en "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Mapa de bits de bloque en "
-#: misc/dumpe2fs.c:205
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", mapa de bits de nodo-i en "
-#: misc/dumpe2fs.c:210
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3431,56 +3790,96 @@ msgstr ""
"\n"
" tabla de nodos-i en "
-#: misc/dumpe2fs.c:217
+#: misc/dumpe2fs.c:249
#, fuzzy, c-format
msgid ""
"\n"
-" %u free blocks, %u free inodes, %u directories%s"
+" %u free %s, %u free inodes, %u directories%s"
msgstr ""
"\n"
" %d bloques libres, %d nodos-i libres, % directorios\n"
-#: misc/dumpe2fs.c:224
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ""
-#: misc/dumpe2fs.c:227
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Bloques libres: "
-#: misc/dumpe2fs.c:237
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Nodos-i libres: "
-#: misc/dumpe2fs.c:264
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "mientras se imprimía la lista de bloques dañados"
-#: misc/dumpe2fs.c:270
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Bloques dañados: %u"
-#: misc/dumpe2fs.c:292 misc/tune2fs.c:279
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "mientras se leía el nodo-i del fichero de transacciones"
-#: misc/dumpe2fs.c:295
+#: misc/dumpe2fs.c:351
+#, fuzzy
+msgid "while opening journal inode"
+msgstr "mientras se leía el nodo-i del fichero de transacciones"
+
+#: misc/dumpe2fs.c:357
+#, fuzzy
+msgid "while reading journal super block"
+msgstr "mientras se leía el superbloque del fichero de transacciones"
+
+#: misc/dumpe2fs.c:364
+#, fuzzy
+msgid "Journal superblock magic number invalid!\n"
+msgstr "¡No se encontró el superbloque del fichero de transacciones!\n"
+
+#: misc/dumpe2fs.c:367
+#, fuzzy
+msgid "Journal features: "
+msgstr "Usuarios del fichero de transacciones: %s\n"
+
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Tamaño de fichero de transacciones: "
-#: misc/dumpe2fs.c:319 misc/tune2fs.c:200
+#: misc/dumpe2fs.c:391
+#, fuzzy, c-format
+msgid ""
+"Journal length: %u\n"
+"Journal sequence: 0x%08x\n"
+"Journal start: %u\n"
+msgstr ""
+"\n"
+"Tamaño del bloque del fichero de transacciones: %u\n"
+"Longitud del fichero de transacciones: %u\n"
+"Primer bloque del fichero de transacciones: %u\n"
+"Secuencia del fichero de transacciones: 0x%08x\n"
+"Inicio del fichero de transacciones: %u\n"
+"Número de usuarios del fichero de transacciones: %u\n"
+
+#: misc/dumpe2fs.c:398
+#, fuzzy, c-format
+msgid "Journal errno: %d\n"
+msgstr "Usuarios del fichero de transacciones: %s\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "mientras se leía el superbloque del fichero de transacciones"
-#: misc/dumpe2fs.c:327
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr ""
"No se pueden encontrar los números mágicos del superbloque del fichero de "
"transacciones"
-#: misc/dumpe2fs.c:331
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3499,28 +3898,27 @@ msgstr ""
"Inicio del fichero de transacciones: %u\n"
"Número de usuarios del fichero de transacciones: %u\n"
-#: misc/dumpe2fs.c:344
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Usuarios del fichero de transacciones: %s\n"
-#: misc/dumpe2fs.c:360 misc/mke2fs.c:693 misc/tune2fs.c:868
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr ""
"¡No se puede reservar memoria para analizar sintácticamente las opciones!\n"
-#: misc/dumpe2fs.c:386
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Parámetro de superbloque no válido: %s\n"
-#: misc/dumpe2fs.c:401
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Parámetro de tamaño del bloque no válido: %s\n"
-#: misc/dumpe2fs.c:412
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3543,19 +3941,18 @@ msgstr ""
"\tsuperblock=<número_del_superbloque>\n"
"\tblocksize=<tamaño_del_bloque>\n"
-#: misc/dumpe2fs.c:471 misc/mke2fs.c:1355
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tSe emplea %s\n"
-#: misc/dumpe2fs.c:507 misc/e2image.c:674 misc/tune2fs.c:1518
-#: resize/main.c:311
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr ""
"No se pudo encontrar un superbloque válido para el sistema de ficheros.\n"
-#: misc/dumpe2fs.c:532
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3564,77 +3961,303 @@ msgstr ""
"\n"
"%s: %s: error al leer los mapas de bits: %s\n"
-#: misc/e2image.c:52
-#, c-format
-msgid "Usage: %s [-rsI] device image_file\n"
+#: misc/e2image.c:101
+#, fuzzy, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
msgstr "Modo de empleo: %s [-rsI] dispositivo fichero_de_imagen\n"
-#: misc/e2image.c:64
-msgid "Couldn't allocate header buffer\n"
-msgstr "No se puede reservar el búfer del encabezado\n"
+#: misc/e2image.c:103
+#, fuzzy, c-format
+msgid " %s -I device image-file\n"
+msgstr "Modo de empleo: %s [-rsI] dispositivo fichero_de_imagen\n"
-#: misc/e2image.c:83
+#: misc/e2image.c:104
#, c-format
-msgid "short write (only %d bytes) for writing image header"
-msgstr "se escribió muy poco (sólo %d bytes) para el encabezado de la imagen"
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+#, fuzzy
+msgid "while allocating buffer"
+msgstr "mientras se reservaban los búferes"
+
+#: misc/e2image.c:174
+#, fuzzy, c-format
+msgid "Writing block %llu\n"
+msgstr "Revisando los bloques del %lu al %lu\n"
+
+#: misc/e2image.c:188
+#, fuzzy, c-format
+msgid "error writing block %llu"
+msgstr "Error al escribir el bloque %lu (%s). "
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
-#: misc/e2image.c:102
+#: misc/e2image.c:208
+msgid "Error: header size is bigger than wrt_size\n"
+msgstr ""
+
+#: misc/e2image.c:213
+msgid "Couldn't allocate header buffer\n"
+msgstr "No se puede reservar el búfer del encabezado\n"
+
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "mientras se escribía el superbloque"
-#: misc/e2image.c:110
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "mientras se escribía la tabla de nodos-i"
-#: misc/e2image.c:117
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "mientras se escribía el mapa de bits del bloque"
-#: misc/e2image.c:124
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "mientras se escribía el mapa de bits del nodo-i"
-#: misc/e2label.c:57
+#: misc/e2image.c:502
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "El bloque del directorio %u (#%d) está vacío en el nodo-i %u\n"
+
+#: misc/e2image.c:514
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "El bloque del directorio %u (#%d) está vacío en el nodo-i %u\n"
+
+#: misc/e2image.c:555
+#, fuzzy, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%8d bloque usado (%d%%)\n"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, fuzzy, c-format
+msgid "error reading block %llu"
+msgstr "Error al leer el bloque %lu (%s). "
+
+#: misc/e2image.c:715
+#, fuzzy, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr "%8d bloque usado (%d%%)\n"
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+#, fuzzy
+msgid "while allocating l1 table"
+msgstr "mientras se reservaban los búferes"
+
+#: misc/e2image.c:800
+#, fuzzy
+msgid "while allocating l2 cache"
+msgstr "mientras se reservaban los búferes"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+#, fuzzy
+msgid "while allocating ext2_qcow2_image"
+msgstr "mientras se llamaba a ext2fs_block_iterate"
+
+#: misc/e2image.c:1152
+#, fuzzy
+msgid "while initializing ext2_qcow2_image"
+msgstr "mientras se llamaba a ext2fs_block_iterate"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+#, fuzzy
+msgid "while allocating block bitmap"
+msgstr "mientras se escribía el mapa de bits del bloque"
+
+#: misc/e2image.c:1278
+#, fuzzy
+msgid "while allocating scramble block bitmap"
+msgstr "mientras se escribía el mapa de bits del bloque"
+
+#: misc/e2image.c:1285
+#, fuzzy
+msgid "Scanning inodes...\n"
+msgstr "Revisando la tabla de nodos-i"
+
+#: misc/e2image.c:1297
+#, fuzzy
+msgid "Can't allocate block buffer"
+msgstr "No se puede reservar el bloque del búfer (tamaño=%d)\n"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, fuzzy, c-format
+msgid "while iterating over inode %u"
+msgstr "mientras se obtenía el nodo-i siguiente"
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+#, fuzzy
+msgid "error reading bitmaps"
+msgstr "mientras se leían los mapas de bits"
+
+#: misc/e2image.c:1415
+#, fuzzy
+msgid "while opening device file"
+msgstr "mientras se iniciaba la exploración de los nodos-i"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "mientras se escribía la tabla de nodos-i"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+#, fuzzy
+msgid "checking if mounted"
+msgstr " (comprobación después de %ld montajes)"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
+#, c-format
+msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
+msgstr ""
+
+#: misc/e2image.c:1639
+#, fuzzy
+msgid "The -c option only supported in raw mode\n"
+msgstr "La opción -t no está implementada en esta versión de e2fsck.\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "La opción -t no está implementada en esta versión de e2fsck.\n"
+
+#: misc/e2image.c:1651
+#, fuzzy
+msgid "while allocating check_buf"
+msgstr "mientras se reservaban los búferes"
+
+#: misc/e2image.c:1657
+#, fuzzy
+msgid "The -p option only supported in raw mode\n"
+msgstr "La opción -t no está implementada en esta versión de e2fsck.\n"
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
+
+#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
msgstr "e2label: no se puede abrir %s\n"
-#: misc/e2label.c:62
+#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
msgstr "e2label: no se puede buscar al superbloque\n"
-#: misc/e2label.c:67
+#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
msgstr "e2label: error leyendo el superbloque\n"
-#: misc/e2label.c:71
+#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: no es un sistema de ficheros ext2\n"
-#: misc/e2label.c:96 misc/tune2fs.c:1653
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Atención: la etiqueta es muy larga, se trunca.\n"
-#: misc/e2label.c:99
+#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
msgstr "e2label: de nuevo, no se puede encontrar al superbloque\n"
-#: misc/e2label.c:104
+#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2label: error al escribir el superbloque\n"
-#: misc/e2label.c:116 misc/tune2fs.c:541
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Modo de empleo: e2label dispositivo [nuevabandera]\n"
-#: misc/e2undo.c:35
+#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
msgstr ""
@@ -3642,9 +4265,9 @@ msgstr ""
#: misc/e2undo.c:52
#, fuzzy
msgid "Failed to read the file system data \n"
-msgstr "Falla al crear el iterador dirs_to_hash: %m"
+msgstr "mientras se intentaba reservar las tablas del sistema de ficheros"
-#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:204
+#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
msgid "Failed tdb_fetch %s\n"
msgstr ""
@@ -3658,48 +4281,49 @@ msgstr ""
msgid "The file system UUID didn't match \n"
msgstr ""
-#: misc/e2undo.c:161
+#: misc/e2undo.c:163
#, fuzzy, c-format
msgid "Failed tdb_open %s\n"
msgstr "mientras se abría %s"
-#: misc/e2undo.c:167
+#: misc/e2undo.c:169
#, fuzzy, c-format
msgid "Error while determining whether %s is mounted.\n"
msgstr "mientras se determinaba si %s está montado."
-#: misc/e2undo.c:173
+#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
msgstr ""
-#: misc/e2undo.c:182
+#: misc/e2undo.c:184
#, fuzzy, c-format
msgid "Failed to open %s\n"
msgstr "mientras se intentaba abrir %s"
-#: misc/e2undo.c:208
+#: misc/e2undo.c:210
#, c-format
-msgid "Replayed transaction of size %zd at location %ld\n"
+msgid "Replayed transaction of size %zd at location %llu\n"
msgstr ""
-#: misc/e2undo.c:214
+#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
msgstr ""
-#: misc/fsck.c:347
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "ATENCIÓN: no se puede abrir %s: %s\n"
-#: misc/fsck.c:357
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "ATENCIÓN: formato incorrecto en la línea %d de %s\n"
-#: misc/fsck.c:372
+#: misc/fsck.c:370
+#, fuzzy
msgid ""
-"\a\a\aWARNING: Your /etc/fstab does not contain the fsck passno\n"
+"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"
@@ -3709,37 +4333,37 @@ msgstr ""
"fichero /etc/fstab tan pronto como sea posible.\n"
"\n"
-#: misc/fsck.c:481
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: no se encontró\n"
-#: misc/fsck.c:597
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: espera: ¿¡¿No hay más procesos hijos?!?\n"
-#: misc/fsck.c:619
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Atención... %s para el dispositivo %s que finalizó con la señal %d.\n"
-#: misc/fsck.c:625
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: el estatus es %x, y nunca debió haber sucedido.\n"
-#: misc/fsck.c:664
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "Se finaliza con %s (estado de salida %d)\n"
-#: misc/fsck.c:724
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: Error %d mientras se ejecutaba fsck. %s para %s\n"
-#: misc/fsck.c:745
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3747,73 +4371,74 @@ msgstr ""
"Puede ser que todos o ninguno de los tipos de sistemas de ficheros que se \n"
"pasaron con -t deban estar con el prefijo 'no' o '!0.\n"
-#: misc/fsck.c:764
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "No se puede reservar memoria para los tipos de sistema de ficheros\n"
-#: misc/fsck.c:887
+#: misc/fsck.c:884
#, c-format
msgid ""
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
"number\n"
msgstr ""
-#: misc/fsck.c:914
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: no se puede verificar %s: fsck.%s no se encuentra\n"
-#: misc/fsck.c:970
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Revisando todos los sistemas de ficheros.\n"
-#: misc/fsck.c:1061
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--esperando-- (paso %d)\n"
-#: misc/fsck.c:1081
+#: misc/fsck.c:1078
msgid ""
"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
"Modo de empleo: fsck [-AMNPRTV] [ -C [ fd ] ] [-t tipo_de_sf]\n"
" [opciones_de_sf] [sistema_de_ficheros ...]\n"
-#: misc/fsck.c:1123
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: demasiados dispositivos\n"
-#: misc/fsck.c:1156 misc/fsck.c:1242
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: demasiados argumentos\n"
-#: misc/lsattr.c:73
+#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
msgstr "Modo de empleo: %s [-RVadlv] [ficheros...]\n"
-#: misc/lsattr.c:83
+#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
msgstr "Mientras se leían las banderas en %s"
-#: misc/lsattr.c:90
+#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
msgstr "Mientras se leía la versión en %s"
-#: misc/mke2fs.c:104
+#: misc/mke2fs.c:123
#, fuzzy, c-format
msgid ""
-"Usage: %s [-c|-l filename] [-b block-size] [-f fragment-size]\n"
+"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
"Modo de empleo: %s [-c|-l nombre-del-fichero] [-b tamaño-del-bloque]\n"
"\t[-f tamaño-del-fragmento] [-i bytes-por-nodo-i] [-I tamaño-del-nodo-i]\n"
@@ -3824,237 +4449,307 @@ msgstr ""
"\t[-r revisión-del-sf] [-E opción-extendida{,...]]\n"
"\t[-T tipo-del-sf] [-jnqvFSV] dispositivo [cuenta-de-bloques]\n"
-#: misc/mke2fs.c:206
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Ejecutando orden: %s\n"
-#: misc/mke2fs.c:210
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "mientras se intentaba ejecutar '%s'"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "mientras se procesaba la lista de bloques dañados del programa"
-#: misc/mke2fs.c:244
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr ""
"El bloque %d en el área del descriptor primario del superbloque/grupo está "
"dañado.\n"
-#: misc/mke2fs.c:246
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Los bloques del %u al %u deben estar correctos para poder construir un "
"sistema de ficheros.\n"
-#: misc/mke2fs.c:249
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Finalizando...\n"
-#: misc/mke2fs.c:269
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tbad blocks.\n"
"\n"
msgstr ""
-"Atención: los descriptores de respaldo del superbloque/grupo en el bloque %"
-"u\n"
+"Atención: los descriptores de respaldo del superbloque/grupo en el bloque "
+"%u\n"
"\tcontienen bloques dañados.\n"
"\n"
-#: misc/mke2fs.c:288
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "mientras se marcaban los bloques dañados como utilizados"
-#: misc/mke2fs.c:346
-msgid "done \n"
-msgstr "hecho \n"
-
-#: misc/mke2fs.c:360
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Escribiendo las tablas de nodos-i: "
-#: misc/mke2fs.c:383
-#, c-format
+#: misc/mke2fs.c:405
+#, fuzzy, c-format
msgid ""
"\n"
-"Could not write %d blocks in inode table starting at %u: %s\n"
+"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
-"No se pueden escribir %d bloques en la tabla de nodos-i al principio de %u: %"
-"s\n"
+"No se pueden escribir %d bloques en la tabla de nodos-i al principio de %u: "
+"%s\n"
-#: misc/mke2fs.c:407
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
+msgid "done \n"
+msgstr "hecho \n"
+
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "mientras se creaba el directorio raíz"
-#: misc/mke2fs.c:414
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "mientras se leía el nodo-i raíz"
-#: misc/mke2fs.c:428
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "mientras se ponían los permisos del dueño del nodo-i raíz"
-#: misc/mke2fs.c:446
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "mientras se creaba /lost+found"
-#: misc/mke2fs.c:453
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "mientras se revisaba /lost+found"
-#: misc/mke2fs.c:466
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "mientras se expandía /lost+found"
-#: misc/mke2fs.c:481
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "mientras se ponía el nodo-i de bloques dañados"
-#: misc/mke2fs.c:508
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Se agotó la memoria cuando se borraban los sectores %d-%d\n"
-#: misc/mke2fs.c:518
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Atención: no se puede leer el bloque 0: %s\n"
-#: misc/mke2fs.c:534
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Atención: no se puede borrar el sector %d: %s\n"
-#: misc/mke2fs.c:550
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "mientras se inicializaba el superbloque del fichero de transacciones"
-#: misc/mke2fs.c:556
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Se rellena con ceros el dispositivo del fichero de transacciones: "
-#: misc/mke2fs.c:569
-#, c-format
-msgid "while zeroing journal device (block %u, count %d)"
+#: misc/mke2fs.c:591
+#, fuzzy, c-format
+msgid "while zeroing journal device (block %llu, count %d)"
msgstr ""
"mientras se inicializaba con ceros el fichero de transacciones del "
"dispositivo (bloque %u, cuenta %d)"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "mientras se escribía el superbloque del fichero de transacciones"
-#: misc/mke2fs.c:601
-#, c-format
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"El sistema de ficheros en %s tiene ahora %u bloques.\n"
+"\n"
+
+#: misc/mke2fs.c:632
+#, fuzzy, c-format
msgid ""
-"warning: %u blocks unused.\n"
+"warning: %llu blocks unused.\n"
"\n"
msgstr ""
"Atención: hay %u bloques sin usar.\n"
"\n"
-#: misc/mke2fs.c:606
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Etiqueta del sistema de ficheros=%s\n"
-#: misc/mke2fs.c:607
-msgid "OS type: "
+#: misc/mke2fs.c:640
+#, fuzzy, c-format
+msgid "OS type: %s\n"
msgstr "Tipo de SO: "
-#: misc/mke2fs.c:612
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Tamaño del bloque=%u (bitácora=%u)\n"
-#: misc/mke2fs.c:614
+#: misc/mke2fs.c:646
+#, fuzzy, c-format
+msgid "Cluster size=%u (log=%u)\n"
+msgstr "Tamaño del bloque=%u (bitácora=%u)\n"
+
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Tamaño del fragmento=%u (bitácora=%u)\n"
-#: misc/mke2fs.c:616
+#: misc/mke2fs.c:652
#, c-format
-msgid "%u inodes, %u blocks\n"
+msgid "Stride=%u blocks, Stripe width=%u blocks\n"
+msgstr ""
+
+#: misc/mke2fs.c:654
+#, fuzzy, c-format
+msgid "%u inodes, %llu blocks\n"
msgstr "%u nodos-i, %u bloques\n"
-#: misc/mke2fs.c:618
-#, c-format
-msgid "%u blocks (%2.2f%%) reserved for the super user\n"
+#: misc/mke2fs.c:656
+#, fuzzy, c-format
+msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%u bloques (%2.2f%%) reservados para el superusuario\n"
-#: misc/mke2fs.c:621
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Primer bloque de datos=%u\n"
-#: misc/mke2fs.c:623
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Número máximo de bloques del sistema de ficheros=%lu\n"
-#: misc/mke2fs.c:627
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u bloque de grupos\n"
-#: misc/mke2fs.c:629
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u bloque de grupo\n"
-#: misc/mke2fs.c:630
+#: misc/mke2fs.c:672
+#, fuzzy, c-format
+msgid "%u blocks per group, %u clusters per group\n"
+msgstr "%u bloques por grupo, %u fragmentos por grupo\n"
+
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u bloques por grupo, %u fragmentos por grupo\n"
-#: misc/mke2fs.c:632
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u nodos-i por grupo\n"
-#: misc/mke2fs.c:639
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Etiqueta del sistema de ficheros=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Respaldo del superbloque guardado en los bloques: "
-#: misc/mke2fs.c:718
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, fuzzy, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "tamaño de los nodos-i inválido - %s"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "tamaño de los nodos-i inválido - %s"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
+#, fuzzy, c-format
+msgid "Invalid mmp_update_interval: %s\n"
+msgstr "patrón_de_prueba no válido: %s\n"
+
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Parámetro de superbloque no válido: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Tamaño de zancada no válido: %s\n"
-#: misc/mke2fs.c:733
+#: misc/mke2fs.c:861
#, fuzzy, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Parámetro de zancada no válido: %s\n"
-#: misc/mke2fs.c:755
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Parámetro de variación de tamaño no válido: %s\n"
-#: misc/mke2fs.c:762
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
"El máximo de la variación de tamaño debe ser mayor que el tamaño del sistema "
"de ficheros.\n"
-#: misc/mke2fs.c:786
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"El cambio de tamaño en línea no está soportado con sistemas de archivos de "
"revisión 0\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, fuzzy, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Se puso una opción de montaje no válida: %s\n"
+
+#: misc/mke2fs.c:976
+#, fuzzy, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "Tamaño de zancada no válido: %s\n"
+
+#: misc/mke2fs.c:987
#, fuzzy, c-format
msgid ""
"\n"
@@ -4064,11 +4759,21 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
+"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
+"\tdiscard\n"
+"\tnodiscard\n"
+"\tquotatype=<usr OR grp>\n"
"\n"
msgstr ""
"\n"
@@ -4084,7 +4789,7 @@ msgstr ""
"\n"
"\ttest_fs\n"
-#: misc/mke2fs.c:824
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4092,7 +4797,7 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:856
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4101,146 +4806,167 @@ msgstr ""
"Error de sintaxis en el fichero de configuración de mke2fs (%s, línea #%d)\n"
"\t%s\n"
-#: misc/mke2fs.c:869 misc/tune2fs.c:353
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Se puso una opción no válida para el sistema de ficheros: %s\n"
-#: misc/mke2fs.c:979
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
+#, c-format
+msgid "Invalid mount option set: %s\n"
+msgstr "Se puso una opción de montaje no válida: %s\n"
+
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
-"Warning! Your mke2fs.conf file does not define the %s filesystem type.\n"
+"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
-#: misc/mke2fs.c:982
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:1177
+#: misc/mke2fs.c:1226
+#, fuzzy
+msgid "Aborting...\n"
+msgstr "Finalizando...\n"
+
+#: misc/mke2fs.c:1267
+#, c-format
+msgid ""
+"\n"
+"Warning: the fs_type %s is not defined in mke2fs.conf\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:1435
+#, fuzzy
+msgid "Couldn't allocate memory for new PATH.\n"
+msgstr "No se puede reservar memoria para los tipos de sistema de ficheros\n"
+
+#: misc/mke2fs.c:1476
+#, c-format
+msgid "Couldn't init profile successfully (error: %ld).\n"
+msgstr ""
+
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "tamaño del bloque inválido - %s"
-#: misc/mke2fs.c:1181
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
"Atención: el tamaño del bloque %d no se puede utilizar en muchos sistemas.\n"
-#: misc/mke2fs.c:1197
-#, c-format
-msgid "invalid fragment size - %s"
-msgstr "Tamaño del fragmento inválido - %s"
+#: misc/mke2fs.c:1529
+#, fuzzy, c-format
+msgid "invalid cluster size - %s"
+msgstr "tamaño del bloque inválido - %s"
-#: misc/mke2fs.c:1203
-#, c-format
-msgid "Warning: fragments not supported. Ignoring -f option\n"
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
msgstr ""
-"Atención: no están implementados los fragmentos. Se descarta la opción -f\n"
-#: misc/mke2fs.c:1210
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Número ilegal de bloques por grupo"
-#: misc/mke2fs.c:1215
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "los bloques por grupo deben ser un múltiplo de 8"
-#: misc/mke2fs.c:1223
+#: misc/mke2fs.c:1564
#, fuzzy
msgid "Illegal number for flex_bg size"
-msgstr "¡Número inválido de bloques!\n"
+msgstr "Número ilegal de bloques por grupo"
-#: misc/mke2fs.c:1229
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr ""
-#: misc/mke2fs.c:1239
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "proporción de nodos-i inválida %s (min %d/max %d)"
-#: misc/mke2fs.c:1256
+#: misc/mke2fs.c:1590
+#, c-format
+msgid "invalid inode size - %s"
+msgstr "tamaño de los nodos-i inválido - %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "en malloc para fichero_de_bloques_dañados"
-#: misc/mke2fs.c:1265
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "el porcentaje de bloques reservados es inválido - %s"
-#: misc/mke2fs.c:1283
+#: misc/mke2fs.c:1642
+#, c-format
+msgid "bad num inodes - %s"
+msgstr "número de los nodos-i inválido - %s"
+
+#: misc/mke2fs.c:1659
#, c-format
msgid "bad revision level - %s"
msgstr "nivel de revisión incorrecto - %s"
-#: misc/mke2fs.c:1295
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "tamaño de los nodos-i inválido - %s"
+#: misc/mke2fs.c:1673
+#, fuzzy
+msgid "The -t option may only be used once"
+msgstr "-o solo podría ser especificado una vez"
-#: misc/mke2fs.c:1315
-#, c-format
-msgid "bad num inodes - %s"
-msgstr "número de los nodos-i inválido - %s"
+#: misc/mke2fs.c:1681
+#, fuzzy
+msgid "The -T option may only be used once"
+msgstr "-o solo podría ser especificado una vez"
-#: misc/mke2fs.c:1380 misc/mke2fs.c:2052
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr ""
"mientras se intentaba abrir el fichero de transacciones del dispositivo %s\n"
-#: misc/mke2fs.c:1386
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
"El tamaño del bloque del dispositivo del fichero de transacciones (%d) es\n"
"menor que el tamaño del bloque mínimo %d\n"
-#: misc/mke2fs.c:1392
+#: misc/mke2fs.c:1746
#, fuzzy, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Añadiendo el fichero de transacciones al dispositivo %s: "
-#: misc/mke2fs.c:1401
-#, c-format
-msgid "%d-byte blocks too big for system (max %d)"
-msgstr "los bloques de %d bytes son muy grandes para el sistema (máx %d)"
-
-#: misc/mke2fs.c:1405
-#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Atención: los bloques de %d bytes son muy grandes para el sistema \n"
-"(máx %d), se hace un esfuerzo para continuar\n"
-
# The specified number of blocks is invalid.
-#: misc/mke2fs.c:1413
-#, c-format
-msgid "invalid blocks count - %s"
+#: misc/mke2fs.c:1757
+#, fuzzy, c-format
+msgid "invalid blocks '%s' on device '%s'"
msgstr "cuenta de bloques no válida - %s"
-#: misc/mke2fs.c:1423
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "sistema de ficheros"
-#: misc/mke2fs.c:1459
-#, c-format
-msgid ""
-"%s: Size of device %s too big to be expressed in 32 bits\n"
-"\tusing a blocksize of %d.\n"
-msgstr ""
-
-#: misc/mke2fs.c:1468 resize/main.c:371
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "mientras se intentaba determinar el tamaño del sistema de ficheros"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4248,7 +4974,7 @@ msgstr ""
"No se puede determinar el tamaño del dispositivo; se deberá especificar\n"
"explícitamente el tamaño del sistema de ficheros\n"
-#: misc/mke2fs.c:1482
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4261,97 +4987,175 @@ msgstr ""
"\tpartición modificada está ocupada o en uso. Es necesario reiniciar\n"
"\tpara poder releer la tabla de particiones.\n"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr ""
"El sistema de ficheros es más grande que el tamaño aparente del dispositivo."
-#: misc/mke2fs.c:1506
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr ""
-#: misc/mke2fs.c:1542
-msgid "fs_types for mke2fs.conf resolution: "
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "mientras se intentaba determinar el tamaño del sector por hardware"
+
+#: misc/mke2fs.c:1887
+#, fuzzy
+msgid "while trying to determine physical sector size"
+msgstr "mientras se intentaba determinar el tamaño del sector por hardware"
+
+#: misc/mke2fs.c:1919
+#, fuzzy
+msgid "while setting blocksize; too small for device\n"
+msgstr "mientras se reservaban los bloques para el cambio de tamaño en línea"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
msgstr ""
-#: misc/mke2fs.c:1549
+#: misc/mke2fs.c:1948
#, c-format
+msgid ""
+"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
+"\tin 32 bits using a blocksize of %d.\n"
+msgstr ""
+
+#: misc/mke2fs.c:1964
+msgid "fs_types for mke2fs.conf resolution: "
+msgstr ""
+
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1556
-#, fuzzy, c-format
+#: misc/mke2fs.c:1979
+#, fuzzy
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"el cambio de tamaño en línea de los bloques reservados no está implementado "
"para los sistemas de ficheros que no están esparcidos"
-#: misc/mke2fs.c:1568
-#, fuzzy, c-format
+#: misc/mke2fs.c:1991
+#, fuzzy
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
"\n"
"El tamaño del fichero de transacciones es muy grande para el sistema de "
"ficheros.\n"
-#: misc/mke2fs.c:1586
+#: misc/mke2fs.c:2005
+#, fuzzy, c-format
+msgid "invalid reserved blocks percent - %lf"
+msgstr "el porcentaje de bloques reservados es inválido - %s"
+
+#: misc/mke2fs.c:2022
+msgid ""
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2042
+#, fuzzy
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr ""
+"El máximo de la variación de tamaño debe ser mayor que el tamaño del sistema "
+"de ficheros.\n"
+
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
+
+#: misc/mke2fs.c:2067
+#, c-format
+msgid "warning: Unable to get device geometry for %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:2070
+#, c-format
+msgid "%s alignment is offset by %lu bytes.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2072
#, c-format
msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2093
+#, c-format
+msgid "%d-byte blocks too big for system (max %d)"
+msgstr "los bloques de %d bytes son muy grandes para el sistema (máx %d)"
+
+#: misc/mke2fs.c:2097
+#, c-format
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Atención: los bloques de %d bytes son muy grandes para el sistema \n"
+"(máx %d), se hace un esfuerzo para continuar\n"
+
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"They can not be both enabled simultaneously.\n"
msgstr ""
-#: misc/mke2fs.c:1603
-msgid "while trying to determine hardware sector size"
-msgstr "mientras se intentaba determinar el tamaño del sector por hardware"
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
-#: misc/mke2fs.c:1661
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"el cambio de tamaño en línea de los bloques reservados no está implementado "
"para los sistemas de ficheros que no están esparcidos"
-#: misc/mke2fs.c:1670
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "la cuenta de bloques por grupo está fuera del intervalo"
-#: misc/mke2fs.c:1685
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
-#: misc/mke2fs.c:1697
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "tamaño incorrecto del nodo-i %d (mín %d/máx %d)"
-#: misc/mke2fs.c:1711
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "demasiados nodos-i (%llu), ¿aumentar el ratio de los nodos-i?"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "demasiados nodos-i (%llu), especifique menos que 2^32 nodos-i"
-#: misc/mke2fs.c:1731
-#, c-format
+#: misc/mke2fs.c:2256
+#, fuzzy, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
-"\tfilesystem with %lu blocks, specify higher inode_ratio (-i)\n"
+"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
"tamaño_de_nodos_i (%u) * número_de_nodos_i (%u) es demasiado\n"
"grande para un sistema de ficheros con %lu bloques; especifique\n"
"un ratio mayor de nodos-i (-i) o un menor número de nodos-i (-N).\n"
-#: misc/mke2fs.c:1828 misc/tune2fs.c:1462
-#, fuzzy, c-format
-msgid "while trying to delete %s"
-msgstr "mientras se intentaba modificar el tamaño %s"
-
-#: misc/mke2fs.c:1837
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4359,39 +5163,71 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:1885
+#: misc/mke2fs.c:2397
+#, fuzzy
+msgid "while trying to setup undo file\n"
+msgstr ""
+"\n"
+"\tmientras intentaba crear el fichero de transacciones"
+
+#: misc/mke2fs.c:2423
+#, fuzzy
+msgid "Discarding device blocks: "
+msgstr "leyendo bloque de directorio"
+
+#: misc/mke2fs.c:2439
+msgid "failed - "
+msgstr ""
+
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "mientras se ajustaba el superbloque"
-#: misc/mke2fs.c:1936
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "sistema operativo desconocido - %s"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2717
+#, fuzzy
+msgid "Allocating group tables: "
+msgstr "Escribiendo las tablas de nodos-i: "
+
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "mientras se intentaba reservar las tablas del sistema de ficheros"
-#: misc/mke2fs.c:2021
-#, c-format
-msgid "while zeroing block %u at end of filesystem"
+#: misc/mke2fs.c:2734
+#, fuzzy
+msgid ""
+"\n"
+"\twhile converting subcluster bitmap"
+msgstr "mientras se escribía el mapa de bits del bloque"
+
+#: misc/mke2fs.c:2777
+#, fuzzy, c-format
+msgid "while zeroing block %llu at end of filesystem"
msgstr ""
"mientras se inicializaba a cero el bloque %u al final del sistema de ficheros"
-#: misc/mke2fs.c:2034
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "mientras se reservaban los bloques para el cambio de tamaño en línea"
-#: misc/mke2fs.c:2045 misc/tune2fs.c:477
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "fichero de transacciones"
-#: misc/mke2fs.c:2057
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Añadiendo el fichero de transacciones al dispositivo %s: "
-#: misc/mke2fs.c:2064
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4400,24 +5236,44 @@ msgstr ""
"\n"
"\tmientras se intentaba añadir el fichero de transacciones al dispositivo %s"
-#: misc/mke2fs.c:2069 misc/mke2fs.c:2095 misc/tune2fs.c:506 misc/tune2fs.c:520
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "hecho\n"
-#: misc/mke2fs.c:2083
+#: misc/mke2fs.c:2834
+msgid "Skipping journal creation in super-only mode\n"
+msgstr ""
+
+#: misc/mke2fs.c:2845
#, fuzzy, c-format
msgid "Creating journal (%u blocks): "
msgstr "Creando el fichero de transacciones (%d bloques): "
-#: misc/mke2fs.c:2100
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tmientras se intentaba crear el fichero de transacciones"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
+msgid ""
+"\n"
+"Error while enabling multiple mount protection feature."
+msgstr ""
+
+#: misc/mke2fs.c:2871
#, c-format
+msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
"Escribiendo superbloques y la información contable del sistema de ficheros: "
-#: misc/mke2fs.c:2105
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4425,8 +5281,7 @@ msgstr ""
"\n"
"Atención, se tuvo un problema al escribir los superbloques."
-#: misc/mke2fs.c:2108
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4434,12 +5289,11 @@ msgstr ""
"hecho\n"
"\n"
-#: misc/mklost+found.c:49
-#, c-format
+#: misc/mklost+found.c:50
msgid "Usage: mklost+found\n"
msgstr "Modo de empleo: mklost+found\n"
-#: misc/partinfo.c:39
+#: misc/partinfo.c:41
#, fuzzy, c-format
msgid ""
"Usage: %s device...\n"
@@ -4456,38 +5310,40 @@ msgstr ""
"\t%s /dev/hda?\n"
"\n"
-#: misc/partinfo.c:49
+#: misc/partinfo.c:51
#, fuzzy, c-format
msgid "Cannot open %s: %s"
msgstr "e2label: no se puede abrir %s\n"
-#: misc/partinfo.c:55
+#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
msgstr ""
-#: misc/partinfo.c:63
+#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
msgstr ""
-#: misc/partinfo.c:69
+#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr ""
-#: misc/tune2fs.c:96
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Por favor ejecute e2fsck sobre el sistema de ficheros.\n"
-#: misc/tune2fs.c:103
+#: misc/tune2fs.c:121
#, fuzzy, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] \n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
@@ -4500,62 +5356,63 @@ msgstr ""
"\t[-M último-directorio-montado] [-O [^]característica[,...]]\n"
"\t[-T última-fecha-de-revisón] [-U UUID] dispositivo\n"
-#: misc/tune2fs.c:188
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "mientras se intentaba abrir el fichero de transacciones externo"
-#: misc/tune2fs.c:192
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s no es un dispositivo con fichero de transacciones.\n"
-#: misc/tune2fs.c:207
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "¡No se encontró el superbloque del fichero de transacciones!\n"
-#: misc/tune2fs.c:219
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr ""
"No se encontró el UUID del sistema de ficheros en el fichero de\n"
"transacciones del dispositivo.\n"
-#: misc/tune2fs.c:240
-msgid "Journal NOT removed\n"
-msgstr "NO se ha eliminado el fichero de transacciones\n"
+#: misc/tune2fs.c:269
+msgid ""
+"Cannot locate journal device. It was NOT removed\n"
+"Use -f option to remove missing journal device.\n"
+msgstr ""
-#: misc/tune2fs.c:246
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Fichero de transacciones eliminado\n"
-#: misc/tune2fs.c:286
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "mientras se leían los mapas de bits"
-#: misc/tune2fs.c:294
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "mientras se borraba el nodo-i del fichero de transacciones"
-#: misc/tune2fs.c:305
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "mientras se escribía el nodo-i del fichero de transacciones"
-#: misc/tune2fs.c:320
-#, c-format
-msgid "Invalid mount option set: %s\n"
-msgstr "Se puso una opción de montaje no válida: %s\n"
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
+msgid "(and reboot afterwards!)\n"
+msgstr ""
-#: misc/tune2fs.c:356
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr ""
"No se soporta desactivar la característica '%s' del sistema de ficheros.\n"
-#: misc/tune2fs.c:362
+#: misc/tune2fs.c:425
#, fuzzy, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr "Se pone la hora de la última revisión al sistema de ficheros a %s\n"
-#: misc/tune2fs.c:371
+#: misc/tune2fs.c:434
#, fuzzy
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
@@ -4564,7 +5421,7 @@ msgstr ""
"La bandera 'has_journal' sólo puede ser borrada cuando el sistema de\n"
"ficheros no está montada o está en modo de sólo lectura.\n"
-#: misc/tune2fs.c:379
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4572,13 +5429,56 @@ msgstr ""
"La bandera 'needs_recovery' está puesta. Por favor ejecute e2fsck antes\n"
"de deactivar la bandera 'has_journal'.\n"
-#: misc/tune2fs.c:412
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr "Se pone la hora de la última revisión al sistema de ficheros a %s\n"
+
+#: misc/tune2fs.c:475
+#, fuzzy
+msgid ""
+"The multiple mount protection feature can't\n"
+"be set if the filesystem is mounted or\n"
+"read-only.\n"
+msgstr ""
+"La bandera 'has_journal' sólo puede ser borrada cuando el sistema de\n"
+"ficheros no está montada o está en modo de sólo lectura.\n"
+
+#: misc/tune2fs.c:493
+#, c-format
+msgid "Multiple mount protection has been enabled with update interval %ds.\n"
+msgstr ""
+
+#: misc/tune2fs.c:502
+msgid ""
+"The multiple mount protection feature cannot\n"
+"be disabled if the filesystem is readonly.\n"
+msgstr ""
+
+#: misc/tune2fs.c:510
+#, fuzzy
+msgid "Error while reading bitmaps\n"
+msgstr "mientras se leían los mapas de bits"
+
+#: misc/tune2fs.c:519
+#, c-format
+msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
+msgstr ""
+
+#: misc/tune2fs.c:524
+#, fuzzy
+msgid "while reading MMP block."
+msgstr "mientras se leían los bloques dañados del nodo-i"
+
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-#: misc/tune2fs.c:423
+#: misc/tune2fs.c:567
#, fuzzy
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
@@ -4587,16 +5487,17 @@ msgstr ""
"La bandera 'has_journal' sólo puede ser borrada cuando el sistema de\n"
"ficheros no está montada o está en modo de sólo lectura.\n"
-#: misc/tune2fs.c:451
-#, c-format
-msgid "(and reboot afterwards!)\n"
+#: misc/tune2fs.c:627
+msgid ""
+"\n"
+"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
-#: misc/tune2fs.c:472
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "El sistema de ficheros ya tiene un fichero de transacciones.\n"
-#: misc/tune2fs.c:490
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4605,22 +5506,22 @@ msgstr ""
"\n"
"\tmientras se intentaba abrir el fichero de transacciones en %s\n"
-#: misc/tune2fs.c:494
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Creando un fichero de transacciones en el dispositivo %s: "
-#: misc/tune2fs.c:502
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr ""
"mientras se agregaba un sistema de ficheros al fichero de transacciones en %s"
-#: misc/tune2fs.c:508
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Creando el nodo-i del fichero de transacciones: "
-#: misc/tune2fs.c:517
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -4628,87 +5529,119 @@ msgstr ""
"\n"
"\tmientras intentaba crear el fichero de transacciones"
-#: misc/tune2fs.c:584
+#: misc/tune2fs.c:799
+#, fuzzy
+msgid "Couldn't allocate memory to parse quota options!\n"
+msgstr ""
+"¡No se puede reservar memoria para analizar sintácticamente las opciones!\n"
+
+#: misc/tune2fs.c:821
+msgid ""
+"\n"
+"Bad quota options specified.\n"
+"\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
+"\t[^]usrquota\n"
+"\t[^]grpquota\n"
+"\n"
+"\n"
+msgstr ""
+
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr ""
"No se puede analizar sintácticamente el especificador de fecha/hora: %s"
-#: misc/tune2fs.c:608 misc/tune2fs.c:621
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "cuenta de montajes incorrectos - %s"
-#: misc/tune2fs.c:637
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "comportamiento de errores incorrecto - %s"
-#: misc/tune2fs.c:664
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "nombre del gid/grupo incorrecto - %s"
-#: misc/tune2fs.c:697
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "intervalo incorrecto - %s"
-#: misc/tune2fs.c:725
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "proporción de bloques reservados incorrecta - %s"
-#: misc/tune2fs.c:740
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o solo podría ser especificado una vez"
-#: misc/tune2fs.c:750
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O sólo se puede especificar una vez"
-#: misc/tune2fs.c:760
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "cuenta de bloques reservados incorrecta - %s"
-#: misc/tune2fs.c:789
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "nombre de uid/usuario incorrecto - %s"
-#: misc/tune2fs.c:806
+#: misc/tune2fs.c:1114
#, fuzzy, c-format
msgid "bad inode size - %s"
msgstr "tamaño de los nodos-i inválido - %s"
-#: misc/tune2fs.c:813
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr ""
-#: misc/tune2fs.c:900
+#: misc/tune2fs.c:1215
+#, c-format
+msgid "mmp_update_interval too big: %lu\n"
+msgstr ""
+
+#: misc/tune2fs.c:1220
+#, fuzzy, c-format
+msgid "Setting multiple mount protection update interval to %lu second\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Se pone la cuenta de montajes máxima a %d\n"
+msgstr[1] "Se pone la cuenta de montajes máxima a %d\n"
+
+#: misc/tune2fs.c:1243
#, fuzzy, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Parámetro de zancada no válido: %s\n"
-#: misc/tune2fs.c:915
+#: misc/tune2fs.c:1258
#, fuzzy, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Parámetro de zancada no válido: %s\n"
-#: misc/tune2fs.c:930
+#: misc/tune2fs.c:1273
#, fuzzy, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Tamaño de zancada no válido: %s\n"
-#: misc/tune2fs.c:936
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr ""
-#: misc/tune2fs.c:944
-#, fuzzy, c-format
+#: misc/tune2fs.c:1298
+#, fuzzy
msgid ""
"\n"
"Bad options specified.\n"
@@ -4717,9 +5650,11 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tclear_mmp\n"
+"\thash_alg=<hash algorithm>\n"
+"\tmount_opts=<extended default mount options>\n"
"\tstride=<RAID per-disk chunk size in blocks>\n"
"\tstripe_width=<RAID stride*data disks in blocks>\n"
-"\thash_alg=<hash algorithm>\n"
"\ttest_fs\n"
"\t^test_fs\n"
msgstr ""
@@ -4734,11 +5669,50 @@ msgstr ""
"\tresize=<máximo de variación de tamaño en bloques>\n"
"\n"
-#: misc/tune2fs.c:1384 misc/tune2fs.c:1389 resize/resize2fs.c:760
+#: misc/tune2fs.c:1764
+#, fuzzy
+msgid "Failed to read inode bitmap\n"
+msgstr "mientras se leían los mapas de bits"
+
+#: misc/tune2fs.c:1769
+#, fuzzy
+msgid "Failed to read block bitmap\n"
+msgstr "leyendo los mapas de bits del nodo-i y del bloque"
+
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "bloques por ser movidos"
-#: misc/tune2fs.c:1471
+#: misc/tune2fs.c:1789
+msgid "Failed to allocate block bitmap when increasing inode size\n"
+msgstr ""
+
+#: misc/tune2fs.c:1795
+msgid "Not enough space to increase inode size \n"
+msgstr ""
+
+#: misc/tune2fs.c:1800
+#, fuzzy
+msgid "Failed to relocate blocks during inode resize \n"
+msgstr "mientras se reservaban los bloques para el cambio de tamaño en línea"
+
+#: misc/tune2fs.c:1832
+msgid ""
+"Error in resizing the inode size.\n"
+"Run e2undo to undo the file system changes. \n"
+msgstr ""
+
+#: misc/tune2fs.c:1859
+#, fuzzy
+msgid "Couldn't allocate memory for tdb filename\n"
+msgstr "No se puede reservar memoria para los tipos de sistema de ficheros\n"
+
+#: misc/tune2fs.c:1880
+#, fuzzy, c-format
+msgid "while trying to delete %s"
+msgstr "mientras se intentaba modificar el tamaño %s"
+
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -4746,57 +5720,74 @@ msgid ""
"\n"
msgstr ""
-#: misc/tune2fs.c:1529
+#: misc/tune2fs.c:1957
#, c-format
-msgid "The inode size is already %d\n"
+msgid ""
+"MMP block magic is bad. Try to fix it by running:\n"
+"'e2fsck -f %s'\n"
msgstr ""
-#: misc/tune2fs.c:1534
-#, fuzzy, c-format
-msgid "Shrinking the inode size is not supported\n"
+#: misc/tune2fs.c:1975
+#, c-format
+msgid "The inode size is already %lu\n"
+msgstr ""
+
+#: misc/tune2fs.c:1982
+#, fuzzy
+msgid "Shrinking inode size is not supported\n"
msgstr "Se pone la hora de la última revisión al sistema de ficheros a %s\n"
-#: misc/tune2fs.c:1577
+#: misc/tune2fs.c:1987
+#, fuzzy, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "tamaño incorrecto del nodo-i %d (mín %d/máx %d)"
+
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Se pone la cuenta de montajes máxima a %d\n"
-#: misc/tune2fs.c:1583
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Se pone la cuenta de montajes actual a %d\n"
-#: misc/tune2fs.c:1588
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Se pone el comportamiento de errores a %d\n"
-#: misc/tune2fs.c:1593
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Se pone el gid de los bloques reservados %lu\n"
-#: misc/tune2fs.c:1598
+#: misc/tune2fs.c:2055
+#, fuzzy, c-format
+msgid "interval between checks is too big (%lu)"
+msgstr "Se pone el intervalo entre revisiones en %lu segundos\n"
+
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Se pone el intervalo entre revisiones en %lu segundos\n"
-#: misc/tune2fs.c:1605
+#: misc/tune2fs.c:2069
#, fuzzy, c-format
-msgid "Setting reserved blocks percentage to %g%% (%u blocks)\n"
+msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Se pone el porcentaje de bloques reservados a %lu (%u bloques)\n"
-#: misc/tune2fs.c:1612
-#, c-format
-msgid "reserved blocks count is too big (%lu)"
+#: misc/tune2fs.c:2075
+#, fuzzy, c-format
+msgid "reserved blocks count is too big (%llu)"
msgstr "la cantidad de bloques reservados es muy grande (%lu)"
-#: misc/tune2fs.c:1618
-#, c-format
-msgid "Setting reserved blocks count to %lu\n"
+#: misc/tune2fs.c:2082
+#, fuzzy, c-format
+msgid "Setting reserved blocks count to %llu\n"
msgstr "Se pone la cantidad de bloques reservados a %lu\n"
-#: misc/tune2fs.c:1624
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -4804,7 +5795,14 @@ msgstr ""
"\n"
"El sistema de ficheros ya tiene superbloques dispersos.\n"
-#: misc/tune2fs.c:1631
+#: misc/tune2fs.c:2092
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -4813,70 +5811,135 @@ msgstr ""
"\n"
"La bandera de superbloques dispersos está puesta. %s"
-#: misc/tune2fs.c:1636
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
+"No se soporta desactivar la característica '%s' del sistema de ficheros.\n"
-#: misc/tune2fs.c:1643
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Se pone la hora de la última revisión al sistema de ficheros a %s\n"
-#: misc/tune2fs.c:1649
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Se pone el uid de los bloques reservados a %lu\n"
-#: misc/tune2fs.c:1700
+#: misc/tune2fs.c:2154
+msgid "Error in using clear_mmp. It must be used with -f\n"
+msgstr ""
+
+#: misc/tune2fs.c:2172
+#, fuzzy
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"La bandera 'has_journal' sólo puede ser borrada cuando el sistema de\n"
+"ficheros no está montada o está en modo de sólo lectura.\n"
+
+#: misc/tune2fs.c:2191
+#, fuzzy
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"La bandera 'has_journal' sólo puede ser borrada cuando el sistema de\n"
+"ficheros no está montada o está en modo de sólo lectura.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Formato del UUID no válido\n"
-#: misc/tune2fs.c:1712
+#: misc/tune2fs.c:2232
#, fuzzy
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"La bandera 'has_journal' sólo puede ser borrada cuando el sistema de\n"
"ficheros no está montada o está en modo de sólo lectura.\n"
-#: misc/tune2fs.c:1719
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-#: misc/tune2fs.c:1731
-msgid ""
-"Error in resizing the inode size.\n"
-"Run e2undo to undo the file system changes. \n"
-msgstr ""
-
-#: misc/tune2fs.c:1735
+#: misc/tune2fs.c:2253
#, fuzzy, c-format
msgid "Setting inode size %lu\n"
msgstr "Se pone el gid de los bloques reservados %lu\n"
-#: misc/tune2fs.c:1745
+#: misc/tune2fs.c:2256
+#, fuzzy
+msgid "Failed to change inode size\n"
+msgstr "mientras se comenzaba a explorar los nodos-i"
+
+#: misc/tune2fs.c:2267
#, fuzzy, c-format
msgid "Setting stride size to %d\n"
msgstr "Se pone el gid de los bloques reservados %lu\n"
-#: misc/tune2fs.c:1750
+#: misc/tune2fs.c:2272
#, fuzzy, c-format
msgid "Setting stripe width to %d\n"
msgstr "Se pone el gid de los bloques reservados %lu\n"
-#: misc/util.c:72
+#: misc/tune2fs.c:2279
+#, fuzzy, c-format
+msgid "Setting extended default mount options to '%s'\n"
+msgstr "Se pone la cuenta de montajes actual a %d\n"
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "¿Continuar de todas formas? (s,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "¿Continuar de todas formas? (s,n) "
-#: misc/util.c:93
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "cuenta de montajes incorrectos - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "cuenta de montajes incorrectos - %s"
+
+#: misc/util.c:135
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "No se puede poner %s --- %s\n"
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
-#: misc/util.c:96
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "fichero regular"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "e2label: no se puede abrir %s\n"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -4884,37 +5947,56 @@ msgstr ""
"\n"
"En apariencia, el dispositivo no existe; ¿Se especificó correctamente?\n"
-#: misc/util.c:107
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s no es un dispositivo especial de bloques.\n"
-#: misc/util.c:136
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " contiene un sistema de ficheros con errores"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " contiene un sistema de ficheros con errores"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "¡%s es todo el dispositivo, no sólo una partición!\n"
-#: misc/util.c:158
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"Se fuerza de todas formas mke2fs. Esperemos que /etc/mtab sea incorrecto.\n"
-#: misc/util.c:163
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "¡No se hará un %s aquí!\n"
-#: misc/util.c:170
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "Se fuerza de todas formas mke2fs.\n"
-#: misc/util.c:186
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr ""
"¡No se puede reservar memoria para la revisión sintáctica de las opciones "
"del fichero de transacciones!\n"
-#: misc/util.c:228
+#: misc/util.c:368
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Could not find journal device matching %s\n"
+msgstr ""
+"No se pueden encontrar los números mágicos del superbloque del fichero de "
+"transacciones"
+
+#: misc/util.c:395
#, fuzzy
msgid ""
"\n"
@@ -4926,6 +6008,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -4944,7 +6027,7 @@ msgstr ""
"bloques del sistema de ficheros.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -4953,7 +6036,7 @@ msgstr ""
"El sistema de ficheros es demasiado pequeño para un fichero de "
"transacciones\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -4964,7 +6047,7 @@ msgstr ""
"El tamaño del fichero de transacciones solicitado es de %d bloques;\n"
"debería estar entre 1024 y 10240000 bloques. Se finaliza.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -4973,7 +6056,7 @@ msgstr ""
"El tamaño del fichero de transacciones es muy grande para el sistema de "
"ficheros.\n"
-#: misc/util.c:283
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -4982,26 +6065,152 @@ msgstr ""
"Este sistema de ficheros se revisará automáticamente cada %d montajes o\n"
"%g días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.\n"
-#: misc/uuidgen.c:31
+#: misc/uuidd.c:48
+#, c-format
+msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
+msgstr ""
+
+#: misc/uuidd.c:50
+#, c-format
+msgid " %s [-r|t] [-n num] [-s socketpath]\n"
+msgstr ""
+
+#: misc/uuidd.c:52
+#, c-format
+msgid " %s -k\n"
+msgstr ""
+
+#: misc/uuidd.c:154
+#, fuzzy
+msgid "bad arguments"
+msgstr "%s: demasiados argumentos\n"
+
+#: misc/uuidd.c:172
+msgid "connect"
+msgstr ""
+
+#: misc/uuidd.c:191
+msgid "write"
+msgstr ""
+
+#: misc/uuidd.c:199
+msgid "read count"
+msgstr ""
+
+#: misc/uuidd.c:205
+#, fuzzy
+msgid "bad response length"
+msgstr "Parámetro de zancada no válido: %s\n"
+
+#: misc/uuidd.c:270
+#, c-format
+msgid "uuidd daemon already running at pid %s\n"
+msgstr ""
+
+#: misc/uuidd.c:278
+#, fuzzy, c-format
+msgid "Couldn't create unix stream socket: %s"
+msgstr ""
+"No se puede analizar sintácticamente el especificador de fecha/hora: %s"
+
+#: misc/uuidd.c:307
+#, fuzzy, c-format
+msgid "Couldn't bind unix socket %s: %s\n"
+msgstr "No se puede encontrar el superbloque del ext2,"
+
+#: misc/uuidd.c:315
+#, fuzzy, c-format
+msgid "Couldn't listen on unix socket %s: %s\n"
+msgstr "No se puede reconectar %i: %m\n"
+
+#: misc/uuidd.c:353
+#, fuzzy, c-format
+msgid "Error reading from client, len = %d\n"
+msgstr "Error al leer el @i %i: %m\n"
+
+#: misc/uuidd.c:361
+#, c-format
+msgid "operation %d, incoming num = %d\n"
+msgstr ""
+
+#: misc/uuidd.c:380
+#, c-format
+msgid "Generated time UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:390
+#, c-format
+msgid "Generated random UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:399
+#, c-format
+msgid "Generated time UUID %s and subsequent UUID\n"
+msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:420
+#, c-format
+msgid "Generated %d UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:432
+#, fuzzy, c-format
+msgid "Invalid operation %d\n"
+msgstr "Versión de EA no válida.\n"
+
+#: misc/uuidd.c:476 misc/uuidd.c:498
+#, c-format
+msgid "Bad number: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:533 misc/uuidd.c:562
+#, fuzzy, c-format
+msgid "Error calling uuidd daemon (%s): %s\n"
+msgstr "Error al crear el @d /@l (%s): %m\n"
+
+#: misc/uuidd.c:543
+#, c-format
+msgid "%s and subsequent UUID\n"
+msgid_plural "%s and subsequent %d UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:547
+msgid "List of UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:568
+#, c-format
+msgid "Unexpected reply length from server %d\n"
+msgstr ""
+
+#: misc/uuidd.c:585
+#, c-format
+msgid "Couldn't kill uuidd running at pid %d: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:591
+#, c-format
+msgid "Killed uuidd running at pid %d\n"
+msgstr ""
+
+#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
msgstr "Modo de empleo: %s [-r] [-t]\n"
-#: resize/extent.c:196
+#: resize/extent.c:202
msgid "# Extent dump:\n"
msgstr "# Vaciado extenso:\n"
-#: resize/extent.c:197
-#, c-format
-msgid "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n"
+#: resize/extent.c:203
+#, fuzzy, c-format
+msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tNúm=%d, Tamaño=%d, Cursor=%d, Ordenado=%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:42
+#: resize/main.c:44
#, fuzzy, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -5011,230 +6220,1063 @@ msgstr ""
"\t[-p] dispositivo [nuevo-tamaño]\n"
"\n"
-#: resize/main.c:64
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Extendiendo la tabla de nodos-i"
-#: resize/main.c:67
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Reubicando bloques"
-#: resize/main.c:70
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Revisando la tabla de nodos-i"
-#: resize/main.c:73
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Actualizando las referencias a los nodos-i"
-#: resize/main.c:76
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Moviendo la tabla de nodos-i"
-#: resize/main.c:79
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "¿¡¿Paso desconocido?!?"
-#: resize/main.c:82
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Se comienza el paso %d (máx = %lu)\n"
-#: resize/main.c:264
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "mientras se abría %s"
-#: resize/main.c:276
+#: resize/main.c:280
#, fuzzy, c-format
msgid "while getting stat information for %s"
msgstr "mientras se estaba poniendo la versión en %s"
-#: resize/main.c:337
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
+"Please run 'e2fsck -f %s' first.\n"
+"\n"
msgstr ""
+"Por favor ejecute antes 'e2fsck -f %s'.\n"
+"\n"
-#: resize/main.c:345
-#, fuzzy, c-format
-msgid "Estimated minimum size of the filesystem: %u\n"
+#: resize/main.c:342
+#, c-format
+msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr ""
-"%s está montado; ¡No se puede cambiar el tamaño de un sistema de ficheros "
-"montado!\n"
-"\n"
-#: resize/main.c:381
+#: resize/main.c:378
#, fuzzy, c-format
msgid "Invalid new size: %s\n"
msgstr "tamaño de los nodos-i inválido - %s"
#: resize/main.c:394
+msgid "New size too large to be expressed in 32 bits\n"
+msgstr ""
+
+#: resize/main.c:402
+#, fuzzy, c-format
+msgid "New size smaller than minimum (%llu)\n"
+msgstr ""
+"El tamaño del bloque del dispositivo del fichero de transacciones (%d) es\n"
+"menor que el tamaño del bloque mínimo %d\n"
+
+#: resize/main.c:408
#, fuzzy
msgid "Invalid stride length"
msgstr "Parámetro de zancada no válido: %s\n"
-#: resize/main.c:418
-#, c-format
+#: resize/main.c:432
+#, fuzzy, c-format
msgid ""
-"The containing partition (or device) is only %u (%dk) blocks.\n"
-"You requested a new size of %u blocks.\n"
+"The containing partition (or device) is only %llu (%dk) blocks.\n"
+"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
"La partición contenida (o el dispositivo) sólo tiene %u (%dk) bloques.\n"
"Y se ha solicitado un nuevo tamaño de %u bloques.\n"
"\n"
-#: resize/main.c:425
-#, c-format
+#: resize/main.c:439
+#, fuzzy, c-format
msgid ""
-"The filesystem is already %u blocks long. Nothing to do!\n"
+"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
"El sistema de ficheros ya tiene %u bloques. ¡No hay nada que hacer!\n"
"\n"
-#: resize/main.c:436
-#, c-format
-msgid ""
-"Please run 'e2fsck -f %s' first.\n"
-"\n"
+#: resize/main.c:456
+#, fuzzy, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
-"Por favor ejecute antes 'e2fsck -f %s'.\n"
+"El sistema de ficheros en %s tiene ahora %u bloques.\n"
"\n"
-#: resize/main.c:447
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "mientras se intentaba modificar el tamaño %s"
-#: resize/main.c:452
+#: resize/main.c:468
#, c-format
msgid ""
-"The filesystem on %s is now %u blocks long.\n"
+"Please run 'e2fsck -fy %s' to fix the filesystem\n"
+"after the aborted resize operation.\n"
+msgstr ""
+
+#: resize/main.c:474
+#, fuzzy, c-format
+msgid ""
+"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
"El sistema de ficheros en %s tiene ahora %u bloques.\n"
"\n"
-#: resize/online.c:37
+#: resize/main.c:489
+#, fuzzy, c-format
+msgid "while trying to truncate %s"
+msgstr "mientras se intentaba ver el estado del fichero %s"
+
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "El @j externo no tiene implementado este @f\n"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
-#: resize/online.c:41
-#, fuzzy, c-format
-msgid "On-line shrinking from %u to %u not supported.\n"
+#: resize/online.c:91
+#, fuzzy
+msgid "On-line shrinking not supported"
msgstr ""
-"No se soporta desactivar la característica '%s' del sistema de ficheros.\n"
+"El cambio de tamaño en línea no está soportado con sistemas de archivos de "
+"revisión 0\n"
-#: resize/online.c:61
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr ""
-#: resize/online.c:68
+#: resize/online.c:125
+#, fuzzy
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "mientras se reservaban los bloques para el cambio de tamaño en línea"
+
+#: resize/online.c:132
+#, fuzzy
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+"\n"
+"El tamaño del fichero de transacciones es muy grande para el sistema de "
+"ficheros.\n"
+
+#: resize/online.c:140
#, fuzzy, c-format
msgid "while trying to open mountpoint %s"
msgstr ""
"\n"
"\tmientras se intentaba abrir el fichero de transacciones en %s\n"
-#: resize/online.c:76
-msgid "Permission denied to resize filesystem"
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
msgstr ""
-#: resize/online.c:79
-#, fuzzy
-msgid "Kernel does not support online resizing"
-msgstr "El @j externo no tiene implementado este @f\n"
+#: resize/online.c:164 resize/online.c:181
+msgid "Permission denied to resize filesystem"
+msgstr ""
-#: resize/online.c:82
+#: resize/online.c:167 resize/online.c:187
#, fuzzy
msgid "While checking for on-line resizing support"
msgstr "mientras se reservaban los bloques para el cambio de tamaño en línea"
-#: resize/online.c:111
+#: resize/online.c:184
+#, fuzzy
+msgid "Kernel does not support online resizing"
+msgstr "El @j externo no tiene implementado este @f\n"
+
+#: resize/online.c:223
#, c-format
-msgid "Performing an on-line resize of %s to %u (%dk) blocks.\n"
+msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/online.c:121
+#: resize/online.c:233
#, fuzzy
msgid "While trying to extend the last group"
msgstr "mientras se intentaba abrir el fichero de transacciones externo"
-#: resize/online.c:180
+#: resize/online.c:287
#, fuzzy, c-format
msgid "While trying to add group #%d"
msgstr "mientras se intentaba abrir %s"
-#: resize/online.c:191
+#: resize/online.c:298
#, c-format
msgid ""
"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
"this system.\n"
msgstr ""
-#: resize/resize2fs.c:322
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "los nodos-i (%llu) deben ser menos de %u"
-#: resize/resize2fs.c:755
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "bloques reservados"
-#: resize/resize2fs.c:765
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "bloques de metadatos"
-#: resize/resize2fs.c:1703
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "bloques de metadatos"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr ""
"Esto nunca debería suceder: ¡Se cambia el tamaño del nodo-i corrupto!\n"
-#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
-#~ msgstr "El @S no tiene la bandera has_journal, pero tiene un @j ext3 %s.\n"
+#: lib/ext2fs/ext2_err.c:11
+msgid "EXT2FS Library version 1.42.10"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:12
+msgid "Wrong magic number for ext2_filsys structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:13
+msgid "Wrong magic number for badblocks_list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:14
+msgid "Wrong magic number for badblocks_iterate structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:15
+msgid "Wrong magic number for inode_scan structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:16
+msgid "Wrong magic number for io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:17
+msgid "Wrong magic number for unix io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:18
+msgid "Wrong magic number for io_manager structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:19
+msgid "Wrong magic number for block_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:20
+msgid "Wrong magic number for inode_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:21
+msgid "Wrong magic number for generic_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:22
+msgid "Wrong magic number for test io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:23
+msgid "Wrong magic number for directory block list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:24
+msgid "Wrong magic number for icount structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:25
+msgid "Wrong magic number for Powerquest io_channel structure"
+msgstr ""
+#: lib/ext2fs/ext2_err.c:26
+msgid "Wrong magic number for ext2 file structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:27
+msgid "Wrong magic number for Ext2 Image Header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:28
+msgid "Wrong magic number for inode io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:29
+msgid "Wrong magic number for ext4 extent handle"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:30
#, fuzzy
-#~ msgid "Error while deleting extent: %m\n"
-#~ msgstr "Error mientras se intentaba encontrar /@l: %m\n"
+msgid "Bad magic number in super-block"
+msgstr "leyendo el superbloque del fichero de transacciones\n"
-#~ msgid "Recreate journal to make the filesystem ext3 again?\n"
-#~ msgstr "¿Recrear el @j para hacer el sistema de ficheros ext3 de nuevo?\n"
+#: lib/ext2fs/ext2_err.c:31
+msgid "Filesystem revision too high"
+msgstr ""
-#~ msgid "while retrying to write block bitmaps for %s"
-#~ msgstr ""
-#~ "mientras se reintentaba escribir los mapas de bits del bloque para %s"
+#: lib/ext2fs/ext2_err.c:32
+msgid "Attempt to write to filesystem opened read-only"
+msgstr ""
-#~ msgid "writing inode bitmaps"
-#~ msgstr "escribiendo los mapas de bits de los nodos-i"
+#: lib/ext2fs/ext2_err.c:33
+#, fuzzy
+msgid "Can't read group descriptors"
+msgstr ", descriptores de grupo en "
-#~ msgid "%s failed for %s: %s\n"
-#~ msgstr "%s falló para %s: %s\n"
+#: lib/ext2fs/ext2_err.c:34
+#, fuzzy
+msgid "Can't write group descriptors"
+msgstr ", descriptores de grupo en "
-# Bueno, en estos casos, y ante la imposibilidad de traducir las palabras
-# considero al menos que se debe traducir a la gramática española:
-# -> ioctl de HDIO_GETGEO
-#~ msgid "HDIO_GETGEO ioctl"
-#~ msgstr "HDIO_GETGEO ioctl"
+#: lib/ext2fs/ext2_err.c:35
+msgid "Corrupt group descriptor: bad block for block bitmap"
+msgstr ""
-#~ msgid "BLKGETSIZE ioctl"
-#~ msgstr "BLKGETSIZE ioctl"
+#: lib/ext2fs/ext2_err.c:36
+msgid "Corrupt group descriptor: bad block for inode bitmap"
+msgstr ""
-#~ msgid "Filesystem %s has unsupported features enabled.\n"
-#~ msgstr ""
-#~ "El sistema de ficheros %s tiene activadas características no soportadas.\n"
+#: lib/ext2fs/ext2_err.c:37
+msgid "Corrupt group descriptor: bad block for inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:38
+#, fuzzy
+msgid "Can't write an inode bitmap"
+msgstr "escribiendo los mapas de bits de los nodos-i"
+
+#: lib/ext2fs/ext2_err.c:39
+#, fuzzy
+msgid "Can't read an inode bitmap"
+msgstr "escribiendo los mapas de bits de los nodos-i"
+
+#: lib/ext2fs/ext2_err.c:40
+#, fuzzy
+msgid "Can't write a block bitmap"
+msgstr "escribiendo los mapas de bits del bloque"
+
+#: lib/ext2fs/ext2_err.c:41
+#, fuzzy
+msgid "Can't read a block bitmap"
+msgstr "leyendo los mapas de bits del nodo-i y del bloque"
+
+#: lib/ext2fs/ext2_err.c:42
+#, fuzzy
+msgid "Can't write an inode table"
+msgstr "mientras se escribía la tabla de nodos-i"
+
+#: lib/ext2fs/ext2_err.c:43
+#, fuzzy
+msgid "Can't read an inode table"
+msgstr "Revisando la tabla de nodos-i"
+
+#: lib/ext2fs/ext2_err.c:44
+msgid "Can't read next inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:45
+#, fuzzy
+msgid "Filesystem has unexpected block size"
+msgstr ""
+"El sistema de ficheros es más grande que el tamaño aparente del dispositivo."
+
+#: lib/ext2fs/ext2_err.c:46
+msgid "EXT2 directory corrupted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:47
+msgid "Attempt to read block from filesystem resulted in short read"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:48
+msgid "Attempt to write block to filesystem resulted in short write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:49
+msgid "No free space in the directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:50
+#, fuzzy
+msgid "Inode bitmap not loaded"
+msgstr ", mapa de bits de nodo-i en "
+
+#: lib/ext2fs/ext2_err.c:51
+#, fuzzy
+msgid "Block bitmap not loaded"
+msgstr " Mapa de bits de bloque en "
+
+#: lib/ext2fs/ext2_err.c:52
+#, fuzzy
+msgid "Illegal inode number"
+msgstr "¡Número inválido de bloques!\n"
+
+#: lib/ext2fs/ext2_err.c:53
+#, fuzzy
+msgid "Illegal block number"
+msgstr "¡Número inválido de bloques!\n"
+
+#: lib/ext2fs/ext2_err.c:54
+msgid "Internal error in ext2fs_expand_dir"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:55
+msgid "Not enough space to build proposed filesystem"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:56
+msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:57
+msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:58
+msgid "Illegal block number passed to ext2fs_test_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:59
+msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:60
+msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:61
+msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:62
+msgid "Attempt to fudge end of block bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:63
+msgid "Attempt to fudge end of inode bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:64
+#, fuzzy
+msgid "Illegal indirect block found"
+msgstr "leyendo bloques indirectos del nodo-i %u"
+
+#: lib/ext2fs/ext2_err.c:65
+#, fuzzy
+msgid "Illegal doubly indirect block found"
+msgstr "leyendo bloques indirectos del nodo-i %u"
+
+#: lib/ext2fs/ext2_err.c:66
+#, fuzzy
+msgid "Illegal triply indirect block found"
+msgstr "leyendo bloques indirectos del nodo-i %u"
+
+#: lib/ext2fs/ext2_err.c:67
+#, fuzzy
+msgid "Block bitmaps are not the same"
+msgstr " Mapa de bits de bloque en "
+
+#: lib/ext2fs/ext2_err.c:68
+#, fuzzy
+msgid "Inode bitmaps are not the same"
+msgstr ", mapa de bits de nodo-i en "
+
+#: lib/ext2fs/ext2_err.c:69
+msgid "Illegal or malformed device name"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:70
+msgid "A block group is missing an inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:71
+msgid "The ext2 superblock is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:72
+msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:73
+msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:74
+msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:75
+msgid "Too many symbolic links encountered."
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:76
+msgid "The callback function will not handle this case"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:77
+msgid "The inode is from a bad block in the inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:78
+#, fuzzy
+msgid "Filesystem has unsupported feature(s)"
+msgstr "%s tiene características no soportadas:"
+
+#: lib/ext2fs/ext2_err.c:79
+#, fuzzy
+msgid "Filesystem has unsupported read-only feature(s)"
+msgstr ""
+"El sistema de ficheros %s tiene activadas características no soportadas.\n"
+
+#: lib/ext2fs/ext2_err.c:80
+msgid "IO Channel failed to seek on read or write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:81
+#, fuzzy
+msgid "Memory allocation failed"
+msgstr "Aerror en la reserva"
+
+#: lib/ext2fs/ext2_err.c:82
+msgid "Invalid argument passed to ext2 library"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:83
+#, fuzzy
+msgid "Could not allocate block in ext2 filesystem"
+msgstr "No se puede reservar memoria para los tipos de sistema de ficheros\n"
+
+#: lib/ext2fs/ext2_err.c:84
+#, fuzzy
+msgid "Could not allocate inode in ext2 filesystem"
+msgstr "No se puede reservar memoria para los tipos de sistema de ficheros\n"
+
+#: lib/ext2fs/ext2_err.c:85
+msgid "Ext2 inode is not a directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:86
+msgid "Too many references in table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:87
+msgid "File not found by ext2_lookup"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:88
+msgid "File open read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:89
+#, fuzzy
+msgid "Ext2 directory block not found"
+msgstr "El bloque del directorio %u (#%d) está vacío en el nodo-i %u\n"
+
+#: lib/ext2fs/ext2_err.c:90
+msgid "Ext2 directory already exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:91
+msgid "Unimplemented ext2 library function"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:92
+msgid "User cancel requested"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:93
+msgid "Ext2 file too big"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:94
+msgid "Supplied journal device not a block device"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:95
+#, fuzzy
+msgid "Journal superblock not found"
+msgstr "¡No se encontró el superbloque del fichero de transacciones!\n"
+
+#: lib/ext2fs/ext2_err.c:96
+msgid "Journal must be at least 1024 blocks"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:97
+msgid "Unsupported journal version"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:98
+#, fuzzy
+msgid "Error loading external journal"
+msgstr "mientras se intentaba abrir el fichero de transacciones externo"
+
+#: lib/ext2fs/ext2_err.c:99
+#, fuzzy
+msgid "Journal not found"
+msgstr "¡No se encontró el superbloque del fichero de transacciones!\n"
+
+#: lib/ext2fs/ext2_err.c:100
+msgid "Directory hash unsupported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:101
+#, fuzzy
+msgid "Illegal extended attribute block number"
+msgstr "aatributo extendido"
+
+#: lib/ext2fs/ext2_err.c:102
+msgid "Cannot create filesystem with requested number of inodes"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:103
+msgid "E2image snapshot not in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:104
+#, fuzzy
+msgid "Too many reserved group descriptor blocks"
+msgstr "<El nodo-i descriptor del grupo>"
+
+#: lib/ext2fs/ext2_err.c:105
+msgid "Resize inode is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:106
+msgid "Tried to set block bmap with missing indirect block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:107
+msgid "TDB: Success"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:108
+msgid "TDB: Corrupt database"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:109
+msgid "TDB: IO Error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:110
+msgid "TDB: Locking error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:111
+msgid "TDB: Out of memory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:112
+msgid "TDB: Record exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:113
+msgid "TDB: Lock exists on other keys"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:114
+#, fuzzy
+msgid "TDB: Invalid parameter"
+msgstr "Tamaño de zancada no válido: %s\n"
+
+#: lib/ext2fs/ext2_err.c:115
+msgid "TDB: Record does not exist"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:116
+msgid "TDB: Write not permitted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:117
+msgid "Ext2fs directory block list is empty"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:118
+msgid "Attempt to modify a block mapping via a read-only block iterator"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:119
+msgid "Wrong magic number for ext4 extent saved path"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:120
+msgid "Wrong magic number for 64-bit generic bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:121
+msgid "Wrong magic number for 64-bit block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:122
+msgid "Wrong magic number for 64-bit inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:123
+msgid "Wrong magic number --- RESERVED_13"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:124
+msgid "Wrong magic number --- RESERVED_14"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:125
+msgid "Wrong magic number --- RESERVED_15"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:126
+msgid "Wrong magic number --- RESERVED_16"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:127
+msgid "Wrong magic number --- RESERVED_17"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:128
+msgid "Wrong magic number --- RESERVED_18"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:129
+msgid "Wrong magic number --- RESERVED_19"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:130
+msgid "Corrupt extent header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:131
+msgid "Corrupt extent index"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:132
+msgid "Corrupt extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:133
+msgid "No free space in extent map"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:134
+msgid "Inode does not use extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:135
+msgid "No 'next' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:136
+msgid "No 'previous' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:137
+msgid "No 'up' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:138
+msgid "No 'down' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:139
+msgid "No current node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:140
+msgid "Ext2fs operation not supported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:141
+msgid "No room to insert extent in node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:142
+msgid "Splitting would result in empty node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:143
+#, fuzzy
+msgid "Extent not found"
+msgstr "No se encontró /@l. "
+
+#: lib/ext2fs/ext2_err.c:144
+msgid "Operation not supported for inodes containing extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:145
+msgid "Extent length is invalid"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:146
+msgid "I/O Channel does not support 64-bit block numbers"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:147
+msgid "Can't check if filesystem is mounted due to missing mtab file"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:148
+msgid "Filesystem too large to use legacy bitmaps"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:149
+msgid "MMP: invalid magic number"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:150
+msgid "MMP: device currently active"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:151
+msgid "MMP: fsck being run"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:152
+msgid "MMP: block number beyond filesystem range"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:153
+msgid "MMP: undergoing an unknown operation"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:154
+#, fuzzy
+msgid "MMP: filesystem still in use"
+msgstr "tamaño inválido del sistema de ficheros - %s"
+
+#: lib/ext2fs/ext2_err.c:155
+msgid "MMP: open with O_DIRECT failed"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:156
+#, fuzzy
+msgid "Block group descriptor size incorrect"
+msgstr "<El nodo-i descriptor del grupo>"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+#, fuzzy
+msgid "Superblock checksum does not match superblock"
+msgstr "Respaldo del superbloque guardado en los bloques: "
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:11
+msgid "Profile version 0.0"
+msgstr ""
+
+#: e2fsck/prof_err.c:12
+msgid "Bad magic value in profile_node"
+msgstr ""
+
+#: e2fsck/prof_err.c:13
+#, fuzzy
+msgid "Profile section not found"
+msgstr "mientras se creaba /lost+found"
+
+#: e2fsck/prof_err.c:14
+#, fuzzy
+msgid "Profile relation not found"
+msgstr "mientras se creaba /lost+found"
+
+#: e2fsck/prof_err.c:15
+msgid "Attempt to add a relation to node which is not a section"
+msgstr ""
+
+#: e2fsck/prof_err.c:16
+msgid "A profile section header has a non-zero value"
+msgstr ""
+
+#: e2fsck/prof_err.c:17
+msgid "Bad linked list in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:18
+msgid "Bad group level in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:19
+msgid "Bad parent pointer in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:20
+msgid "Bad magic value in profile iterator"
+msgstr ""
+
+#: e2fsck/prof_err.c:21
+msgid "Can't set value on section node"
+msgstr ""
+
+#: e2fsck/prof_err.c:22
+msgid "Invalid argument passed to profile library"
+msgstr ""
+
+#: e2fsck/prof_err.c:23
+msgid "Attempt to modify read-only profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:24
+msgid "Profile section header not at top level"
+msgstr ""
+
+#: e2fsck/prof_err.c:25
+msgid "Syntax error in profile section header"
+msgstr ""
+
+#: e2fsck/prof_err.c:26
+msgid "Syntax error in profile relation"
+msgstr ""
+
+#: e2fsck/prof_err.c:27
+msgid "Extra closing brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:28
+msgid "Missing open brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:29
+msgid "Bad magic value in profile_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:30
+msgid "Bad magic value in profile_section_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:31
+msgid "Iteration through all top level section not supported"
+msgstr ""
+
+#: e2fsck/prof_err.c:32
+#, fuzzy
+msgid "Invalid profile_section object"
+msgstr "Se puso una opción no válida para el sistema de ficheros: %s\n"
+
+#: e2fsck/prof_err.c:33
+msgid "No more sections"
+msgstr ""
+
+#: e2fsck/prof_err.c:34
+msgid "Bad nameset passed to query routine"
+msgstr ""
+
+#: e2fsck/prof_err.c:35
+msgid "No profile file open"
+msgstr ""
+
+#: e2fsck/prof_err.c:36
+msgid "Bad magic value in profile_file_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:37
+#, fuzzy
+msgid "Couldn't open profile file"
+msgstr "No se puede clonar el fichero: %m\n"
+
+#: e2fsck/prof_err.c:38
+msgid "Section already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:39
+msgid "Invalid boolean value"
+msgstr ""
+
+#: e2fsck/prof_err.c:40
+#, fuzzy
+msgid "Invalid integer value"
+msgstr "Parámetro de zancada no válido: %s\n"
+
+#: e2fsck/prof_err.c:41
+msgid "Bad magic value in profile_file_data_t"
+msgstr ""
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "No se puede poner %s --- %s\n"
+
+#~ msgid "<The ACL index inode>"
+#~ msgstr "<El índice ACL del nodo-i>"
+
+#~ msgid "<The ACL data inode>"
+#~ msgstr "<La información ACL del nodo-i>"
+
+#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
+#~ msgstr "El @S no tiene la bandera has_journal, pero tiene un @j ext3 %s.\n"
#~ msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
#~ msgstr ""
#~ "El @a en el @i %i tiene un arreglo asociativo (%N) que es @n (debe ser "
#~ "0)\n"
-#~ msgid "while calling ext2fs_block_iterate"
-#~ msgstr "mientras se llamaba a ext2fs_block_iterate"
+#~ msgid "Recreate journal to make the filesystem ext3 again?\n"
+#~ msgstr "¿Recrear el @j para hacer el sistema de ficheros ext3 de nuevo?\n"
#~ msgid "while calling iterator function"
#~ msgstr "mientras se llamaba a la función iteradora"
@@ -5262,6 +7304,9 @@ msgstr ""
#~ msgid "Byte swap"
#~ msgstr "Trasposición de bytes"
+#~ msgid "%s is mounted. "
+#~ msgstr "%s está montado. "
+
#~ msgid "Byte-swapping filesystems not compiled in this version of e2fsck\n"
#~ msgstr ""
#~ "Los sistemas con trasposición de bytes no están compilados en esta "
@@ -5276,8 +7321,15 @@ msgstr ""
#~ msgstr ""
#~ "%s: el orden de los bytes del sistema de ficheros ya se normalizó.\n"
-#~ msgid "invalid test_pattern: %s\n"
-#~ msgstr "patrón_de_prueba no válido: %s\n"
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "No se puede determinar el tamaño del fichero de transacciones"
+
+#~ msgid "while retrying to write block bitmaps for %s"
+#~ msgstr ""
+#~ "mientras se reintentaba escribir los mapas de bits del bloque para %s"
+
+#~ msgid "bad block size - %s"
+#~ msgstr "tamaño de los bloques dañados - %s"
#~ msgid "invalid starting block - %s"
#~ msgstr "bloque inicial no válido - %s"
@@ -5285,6 +7337,18 @@ msgstr ""
#~ msgid "Note: This is a byte-swapped filesystem\n"
#~ msgstr "Nota: este es un sistema de ficheros con trasposición de bytes\n"
+#~ msgid "short write (only %d bytes) for writing image header"
+#~ msgstr ""
+#~ "se escribió muy poco (sólo %d bytes) para el encabezado de la imagen"
+
+#~ msgid "invalid fragment size - %s"
+#~ msgstr "Tamaño del fragmento inválido - %s"
+
+#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
+#~ msgstr ""
+#~ "Atención: no están implementados los fragmentos. Se descarta la opción -"
+#~ "f\n"
+
#~ msgid ""
#~ "Filesystem too large. No more than 2**31-1 blocks\n"
#~ "\t (8TB using a blocksize of 4k) are currently supported."
@@ -5308,11 +7372,11 @@ msgstr ""
#~ "Atención: los nodos-i de %d bytes no se pueden utilizar en muchos "
#~ "sistemas\n"
-#~ msgid "bad filesystem size - %s"
-#~ msgstr "tamaño inválido del sistema de ficheros - %s"
+#~ msgid "Journal NOT removed\n"
+#~ msgstr "NO se ha eliminado el fichero de transacciones\n"
-#~ msgid "Couldn't find ext2 superblock,"
-#~ msgstr "No se puede encontrar el superbloque del ext2,"
+#~ msgid "#\t\t %u -> %u (%d)\n"
+#~ msgstr "#\t\t %u -> %u (%d)\n"
#~ msgid "done \n"
#~ msgstr "hecho \n"
@@ -5335,6 +7399,14 @@ msgstr ""
#~ "\n"
#~ "La bandera de superbloques dispersos ha sido borrada. %s"
+#~ msgid ""
+#~ "%s is mounted; can't resize a mounted filesystem!\n"
+#~ "\n"
+#~ msgstr ""
+#~ "%s está montado; ¡No se puede cambiar el tamaño de un sistema de ficheros "
+#~ "montado!\n"
+#~ "\n"
+
#~ msgid "Clone duplicate/bad blocks"
#~ msgstr "Clonar los bloques duplicados/dañados"
@@ -5357,64 +7429,6 @@ msgstr ""
#~ "Se intenta borrar a la fuerza la bandera HTREE en el @i %d (%q). (Código "
#~ "de prueba en etapa beta)\n"
-#~ msgid ""
-#~ "\n"
-#~ "%8d inode used (%d%%)\n"
-#~ msgid_plural ""
-#~ "\n"
-#~ "%8d inodes used (%d%%)\n"
-#~ msgstr[0] ""
-#~ "\n"
-#~ "%8d nodo-i utilizado (%d%%)\n"
-#~ msgstr[1] ""
-#~ "\n"
-#~ "%8d nodos i utilizados (%d%%)\n"
-
-#~ msgid "%8d non-contiguous inode (%0d.%d%%)\n"
-#~ msgid_plural "%8d non-contiguous inodes (%0d.%d%%)\n"
-#~ msgstr[0] "%8d nodo-i no contiguo (%0d.%d%%)\n"
-#~ msgstr[1] "%8d nodos i no contiguos (%0d.%d%%)\n"
-
-#~ msgid "%8d block used (%d%%)\n"
-#~ msgid_plural "%8d blocks used (%d%%)\n"
-#~ msgstr[0] "%8d bloque usado (%d%%)\n"
-#~ msgstr[1] "%d bloques usados (%d%%)\n"
-
-#~ msgid "%8d bad block\n"
-#~ msgid_plural "%8d bad blocks\n"
-#~ msgstr[0] "%8d bloque dañado\n"
-#~ msgstr[1] "%8d bloques dañados\n"
-
-#~ msgid "%8d large file\n"
-#~ msgid_plural "%8d large files\n"
-#~ msgstr[0] "%8d fichero grande\n"
-#~ msgstr[1] "%8d ficheros grandes\n"
-
-#~ msgid "%8d directory\n"
-#~ msgid_plural "%8d directories\n"
-#~ msgstr[0] "%8d directorio\n"
-#~ msgstr[1] "%8d directorios\n"
-
-#~ msgid "%8d fifo\n"
-#~ msgid_plural "%8d fifos\n"
-#~ msgstr[0] "%8d fifo\n"
-#~ msgstr[1] "%8d fifos\n"
-
-#~ msgid "%8d link\n"
-#~ msgid_plural "%8d links\n"
-#~ msgstr[0] "%8d vínculo\n"
-#~ msgstr[1] "%8d vínculos\n"
-
-#~ msgid " (%d fast symbolic link)\n"
-#~ msgid_plural " (%d fast symbolic links)\n"
-#~ msgstr[0] "(%d vínculo simbólico rápido)\n"
-#~ msgstr[1] "(%d vínculos simbólicos rápidos)\n"
-
-#~ msgid "%8d file\n"
-#~ msgid_plural "%8d files\n"
-#~ msgstr[0] "%8d fichero\n"
-#~ msgstr[1] "%8d ficheros\n"
-
#~ msgid "Usage: findsuper device [skipbytes [startkb]]\n"
#~ msgstr ""
#~ "Modo de empleo: findsuper dispositivo [bytesporsaltar [principio (en "
@@ -5448,6 +7462,18 @@ msgstr ""
#~ msgid "(unknown os)"
#~ msgstr "(so desconocido)"
+#~ msgid "%s failed for %s: %s\n"
+#~ msgstr "%s falló para %s: %s\n"
+
+# Bueno, en estos casos, y ante la imposibilidad de traducir las palabras
+# considero al menos que se debe traducir a la gramática española:
+# -> ioctl de HDIO_GETGEO
+#~ msgid "HDIO_GETGEO ioctl"
+#~ msgstr "HDIO_GETGEO ioctl"
+
+#~ msgid "BLKGETSIZE ioctl"
+#~ msgstr "BLKGETSIZE ioctl"
+
#~ msgid "resize2fs %s (%s)\n"
#~ msgstr "resize2fs %s (%s)\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index 7afc44ae..c0f484d8 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index fcfea512..0bbaaf1f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -3,7 +3,7 @@
# This file is distributed under the same license as the e2fsprogs package.
# Copyright © 1996 Free Software Foundation, Inc.
# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
-# Samuel Thibault <samuel.thibault@ens-lyon.org>, 2006-2011.
+# Samuel Thibault <samuel.thibault@ens-lyon.org>, 2006-2014.
#
#. 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,
@@ -65,10 +65,10 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: GNU e2fsprogs 1.42\n"
+"Project-Id-Version: GNU e2fsprogs 1.42.9\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-11-29 16:03-0500\n"
-"PO-Revision-Date: 2012-01-07 18:32+0100\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2014-01-03 12:19+0100\n"
"Last-Translator: Samuel Thibault <samuel.thibault@ens-lyon.org>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
@@ -77,7 +77,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Bloc défectueux %u hors limite ; ignoré.\n"
@@ -90,11 +90,11 @@ msgstr "lors du contrôle de l'intégrité de l'i-noeud des blocs défecteux"
msgid "while reading the bad blocks inode"
msgstr "lors de la lecture de l'i-noeud des blocs défectueux"
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1239 e2fsck/unix.c:1324 misc/badblocks.c:1215
-#: misc/badblocks.c:1223 misc/badblocks.c:1237 misc/badblocks.c:1249
-#: misc/dumpe2fs.c:572 misc/e2image.c:1170 misc/e2image.c:1288
-#: misc/e2image.c:1301 misc/mke2fs.c:193 misc/tune2fs.c:1907 resize/main.c:308
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "lors de la tentative d'ouverture de %s"
@@ -104,15 +104,16 @@ msgstr "lors de la tentative d'ouverture de %s"
msgid "while trying popen '%s'"
msgstr "lors de la tentative d'ouverture via popen() « %s »"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
-msgstr "lors de la lecture de la liste des blocs défectueux à partir du fichier"
+msgstr ""
+"lors de la lecture de la liste des blocs défectueux à partir du fichier"
#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
msgstr "lors de la mise à jour de l'i-noeud des blocs défectueux"
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr ""
@@ -178,68 +179,75 @@ msgstr "Ne peut allouer le tampon de bloc (taille=%d)\n"
#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
-msgstr "Usage : %s disque\n"
+msgstr "Utilisation : %s disque\n"
#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
-msgstr "L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n"
+msgstr ""
+"L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n"
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
-msgstr "Usage : %s [-F] [-I nombre_blocs_du_tampon_d_i_noeud] périphérique\n"
+msgstr ""
+"Utilisation : %s [-F] [-I nombre_blocs_du_tampon_d_i_noeud] périphérique\n"
-#: e2fsck/iscan.c:84 e2fsck/unix.c:902
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "lors de l'ouverture de %s pour la vidange"
-#: e2fsck/iscan.c:89 e2fsck/unix.c:908 resize/main.c:284
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "lors de la tentative de vidange de %s"
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1065
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr "lors de la tentative d'ouverture de '%s'"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "lors de l'ouverture de l'examen d'i-noeuds"
-#: e2fsck/iscan.c:130 misc/e2image.c:1083
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "lors de l'obtention de l'i-noeud suivant"
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u i-noeuds examinés.\n"
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "lecture en cours du superbloc du journal\n"
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s : aucun superbloc de journal valide n'a été trouvé\n"
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s : journal trop court\n"
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s : récupération du journal\n"
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr ""
"%s : aucune récupération du journal n'est possible tant qu'il est en\n"
"lecture seule\n"
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "lors de la tentative de ré-ouverture de %s"
@@ -408,63 +416,56 @@ msgstr "<L'i-noeud réservé 9>"
msgid "<Reserved inode 10>"
msgstr "<L'i-noeud réservé 10>"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "fichier normal"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "répertoire"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "fichier de périphérique en mode caractère"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "fichier de périphérique en mode bloc"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "tube nommé"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "lien symbolique"
-#: e2fsck/message.c:344 misc/uuidd.c:161
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "socket"
-#: e2fsck/message.c:346
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "type de fichier inconnu avec un mode 0%o"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr "bloc indirect"
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr "bloc doublement indirect"
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr "bloc triplement indirect"
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
msgstr "bloc de traduction"
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "bloc n°"
@@ -472,104 +473,106 @@ msgstr "bloc n°"
msgid "multiply claimed inode map"
msgstr "carte des i-noeuds réclamés plusieurs fois"
-#: e2fsck/pass1b.c:608 e2fsck/pass1b.c:727
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
msgstr "erreur interne : ne peut trouver dup_blk pour %llu\n"
-#: e2fsck/pass1b.c:818
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "retourné de clone_file_block"
-#: e2fsck/pass1b.c:840
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
-msgstr "erreur interne : impossible de trouver l'enregistrement de bloc EA pour %llu"
+msgstr ""
+"erreur interne : impossible de trouver l'enregistrement de bloc EA pour %llu"
-#: e2fsck/pass1b.c:852
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
-msgstr "erreur interne : impossible de trouver l'enregistrement d'i-noeud EA pour %u"
+msgstr ""
+"erreur interne : impossible de trouver l'enregistrement d'i-noeud EA pour %u"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:777
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "lecture des blocs de répertoire"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "carte des i-noeuds utilisés"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "carte des i-noeuds de répertoires"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "carte des i-noeuds de fichiers normaux"
-#: e2fsck/pass1.c:622
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "carte des blocs utilisés"
-#: e2fsck/pass1.c:684
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "l'ouverture de l'examen des i-noeuds"
-#: e2fsck/pass1.c:718
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "l'obtention de l'i-noeud suivant depuis l'examen"
-#: e2fsck/pass1.c:1228
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Passe 1"
-#: e2fsck/pass1.c:1285
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "lecture des blocs indirects de l'i-noeud %u"
-#: e2fsck/pass1.c:1335
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "carte des i-noeuds défectueux"
-#: e2fsck/pass1.c:1357
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "i-noeud dans la carte des blocs défectueux"
-#: e2fsck/pass1.c:1377
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "carte d'i-noeuds magiques"
-#: e2fsck/pass1.c:1404
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr "carte des blocs réclamés plusieurs fois"
-#: e2fsck/pass1.c:1504
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "carte des blocs d'attributs étendus"
-#: e2fsck/pass1.c:2252
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr "%6lu(%c) : %6lu attendu, obtenu phys %6lu (blkcnt %lld)\n"
-#: e2fsck/pass1.c:2613
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "bitmap de blocs"
-#: e2fsck/pass1.c:2619
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "bitmap d'i-noeuds"
-#: e2fsck/pass1.c:2625
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "table d'i-noeuds"
-#: e2fsck/pass2.c:278
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Passe 2"
-#: e2fsck/pass2.c:800
+#: e2fsck/pass2.c:805
msgid "Can not continue."
msgstr "Ne peut continuer."
@@ -577,19 +580,19 @@ msgstr "Ne peut continuer."
msgid "inode done bitmap"
msgstr "bitmap d'i-noeuds complétés"
-#: e2fsck/pass3.c:85
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Pointe mémoire"
-#: e2fsck/pass3.c:135
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Passe 3"
-#: e2fsck/pass3.c:321
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "bitmap de détection des boucles d'i-noeuds"
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Passe 4"
@@ -778,21 +781,25 @@ msgstr ""
"ATTENTION : PERTE SÉVÈRE DE DONNÉES POSSIBLE.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
#: e2fsck/problem.c:122
-#, c-format
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -807,7 +814,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -820,7 +827,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:138
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -831,18 +838,18 @@ msgstr ""
"de la taille des @b.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "@S @bs_per_group = %b, aurait dû être %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "@S first_data_@b = %b, aurait dû être %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -850,7 +857,7 @@ msgstr ""
"Le @f n'a pas d'UUID; on en génère un.\n"
"\n"
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -870,48 +877,48 @@ msgstr ""
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:169
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "Corruption repérée dans le @S. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:174
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "Erreur lors de la détermination de la taille du @v physique : %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "le compteur d'@i dans le @S est %i, @s %j.\n"
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "Le Hurd ne supporte pas la fonctionnalité filetype.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "le @S a un @j @n (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "Le @j externe a plusieurs utilisateurs de @f (non supporté).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Ne peut trouver le @j externe\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "Le @j externe a un @S corrompu\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "Le @j externe ne supporte pas ce @f\n"
@@ -919,10 +926,11 @@ msgstr "Le @j externe ne supporte pas ce @f\n"
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#. @-expanded: format.\n
#. @-expanded: It is also possible the journal superblock is corrupt.\n
-#: e2fsck/problem.c:213
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"Le @S du @j est de type inconnu %N (non supporté).\n"
@@ -931,81 +939,88 @@ msgstr ""
"Il est aussi possible que le @S du @j soit corrompu.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
msgstr "Le @S du @j est corrompu.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr "Le drapeau has_@j du @S n'est pas activé, mais un @j %s est présent.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr "Le @S a le drapeau needs_recovery activé, mais n'a pas de de @j.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr "le drapeau needs_recovery n'est pas activé, mais le @j contient des données.\n"
+msgstr ""
+"le drapeau needs_recovery n'est pas activé, mais le @j contient des "
+"données.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Effacer le @j"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:246 e2fsck/problem.c:690
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr "le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. "
+msgstr ""
+"le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s l'@i @o %i (uid=%Iu, gid=%Ig, mode=%Im, taille=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "%B (%b) @I repéré dans l'@i @o %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "Déjà effaçé le %B (%b) repéré dans l'@i @o %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@i @o %i @I dans le @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "@i %i @I dans la liste des @is @os.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "Le @S du @j a un drapeau de fonctionnalités inconnu sélectionné en lecture seule.\n"
+msgstr ""
+"Le @S du @j a un drapeau de fonctionnalités inconnu sélectionné en lecture "
+"seule.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "Le @S du @j contient un drapeau non reconnu de fonctionnalités incompatibles.\n"
+msgstr ""
+"Le @S du @j contient un drapeau non reconnu de fonctionnalités "
+"incompatibles.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:286
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "cette version de @j n'est pas supportée par cet e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1016,7 +1031,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1028,7 +1043,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:301
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1039,18 +1054,20 @@ msgstr ""
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
msgstr "Exécuter quand même le @j"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
-msgstr "Le drapeau de récupération n'est pas activé dans le @S de secours, le @j sera donc quand même exécuté.\n"
+msgstr ""
+"Le drapeau de récupération n'est pas activé dans le @S de secours, le @j "
+"sera donc quand même exécuté.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1060,7 +1077,7 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:322
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1069,18 +1086,20 @@ msgstr ""
"est %N ; @s zéro. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr "Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas nul. "
+msgstr ""
+"Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas "
+"nul. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr "L'@i de changement de taille n'est pas valide. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1090,7 +1109,7 @@ msgstr ""
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1099,14 +1118,14 @@ msgstr ""
"\tmaintenant = %T) est dans le futur.\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr "L'indication du @S pour le @S externe @s %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
@@ -1114,224 +1133,235 @@ msgstr ""
"Ajout de l'indication « dirhash » au @f.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:357
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
-msgstr "Le checksum du descripteur de @g %g est invalide. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
+msgstr "Le checksum du descripteur de @g %g est %04x, devrait être %04y. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr ""
"Le descripteur de @g %g est marqué comme non initialisé alors que la\n"
"fonctionnalité n'est pas activée.\n"
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:367
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr ""
-"Le @B de @b du @g %g n'est pas initialisé\n"
-"alors que le @B d'@i est en cours d'utilisation.\n"
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr "Le descripteur de @g %g a un nombre invalide d'i-noeuds non utilisés %b. "
+msgstr ""
+"Le descripteur de @g %g a un nombre invalide d'i-noeuds non utilisés %b. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr "Le @B de @b du dernier @g n'est pas initialisé. "
-#: e2fsck/problem.c:382
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
-msgstr "La transaction %i du journal était corrompue, le rejeu a été abandonné.\n"
+msgstr ""
+"La transaction %i du journal était corrompue, le rejeu a été abandonné.\n"
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr "Le drapeau test_fs est positionné (et ext4 est disponible). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:391
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
"La date de dernier montage du @S est dans le futur.\n"
-"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal configurée) "
+"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal "
+"configurée) "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:397
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
"La date de dernière écriture du @S est dans le futur.\n"
-"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal configurée) "
+"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal "
+"configurée) "
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr "Le checksum d'un ou de plusieurs descripteurs de @g de @b est invalide. "
+msgstr ""
+"Le checksum d'un ou de plusieurs descripteurs de @g de @b est invalide. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:405
msgid "Setting free @is count to %j (was %i)\n"
msgstr "Définition du compteur d'@is libres à %j (était %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:410
msgid "Setting free @bs count to %c (was %b)\n"
msgstr "Définition du compteur des @bs libres à %c (était %b)\n"
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-#: e2fsck/problem.c:418
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
-msgstr ""
-"Dissimulation des @is de @q.\n"
-"\n"
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr "Dissimulation de l'@i de @q %i (%Q).\n"
#. @-expanded: superblock has invalid MMP block.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:420
msgid "@S has invalid MMP block. "
msgstr "Le @S a un @b MMP invalide. "
#. @-expanded: superblock has invalid MMP magic.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:425
msgid "@S has invalid MMP magic. "
msgstr "@S a un numéro magique MMP invalide. "
-#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr "ext2fs_open2: %m\n"
+
#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr "exet2fs_check_desc: %m\n"
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+"Le superbloc d'un système de fichier 64bit a besoin des extents pour accéder "
+"à l'ensemble du disque. "
+
+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Passe 1 : vérification des @is, des @bs et des tailles\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:439
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "l'@r n'est pas un @d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old 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:449
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "l'@i réservé %i (%Q) a un mode @n. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "l'@i @D %i a un dtime nul. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "l'@i %i est utilisé, mais a un dtime. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "l'@i %i est un @d @z. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
msgstr "le @B de @bs du @g %g à %b @C.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
msgstr "le @B d'@is du @g %g à %b @C.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr "la table d'@is du @g %g à %b @C.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr "le @B (%b) de @bs du @g %g's est corrompu. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr "le @B (%b) d'@is du @g %g's est corrompu. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "@i %i, i_size est %Is, @s %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "@i %i, i_@bs est %Ib, @s %N. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
msgstr "%B (%b) @I dans l'@i %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr "le %B (%b) chevauche les métadonnées de @f dans l'@i %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "l'@i %i a un(des) @b(s) illégal(aux). "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Trop de @bs illégaux dans l'@i %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
msgstr "%B (%b) @I dans l'@i des @b défectueux. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "L'@i des @bs défectueux a un(des) @b(s) illégal(aux). "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "@b dupliqué ou défectueux actuellement utilisé !\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr "%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. "
+msgstr ""
+"%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. "
#. @-expanded: \n
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
#. @-expanded: should stop now and run e2fsck -c to scan for bad blocks\n
#. @-expanded: in the filesystem.\n
-#: e2fsck/problem.c:544
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1345,7 +1375,7 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:551
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1356,7 +1386,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:556
+#: e2fsck/problem.c:568
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"
@@ -1367,121 +1397,131 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "Le @S primaire (%b) est sur la liste des @bs défectueux.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs défectueux\n"
+msgstr ""
+"Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs "
+"défectueux\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:573
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Avertissement : le @S (%b) du @g %g est corrompu.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr "Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) défectueux.\n"
+msgstr ""
+"Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) "
+"défectueux.\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr "Erreur de programmation ? @b n°%b reclamé sans aucune raison dans process_bad_block.\n"
+msgstr ""
+"Erreur de programmation ? @b n°%b reclamé sans aucune raison dans "
+"process_bad_block.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:590
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr "@A de %N @b(s) contigus dans le @g de @b %g pour %s : %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "@A d'un tampon de @b pour la relocalisation de %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Relocalisation du %s du @g %g de %b vers %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Relocalisation pour le @g %g du %s vers %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Avertissement : impossible de lire le @b %b de %s : %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Avertissement : impossible d'écrire le @b %b pour %s : %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:620 e2fsck/problem.c:1455
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "@A du @B d'@is (%N) : %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:625
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "@A du @B de @bs (%N) : %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr "@A de l'information du compteur de liens : %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "@A du tableau des @bs de @ds : %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Erreur lors de l'examen des @is (%i) : %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr "Erreur lors de la boucle d'itération sur les @bs dans l'@i %i : %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr "Erreur lors du stockage du compteur d'information d'@i (@i=%i, compteur=%N) : %m\n"
+msgstr ""
+"Erreur lors du stockage du compteur d'information d'@i (@i=%i, compteur="
+"%N) : %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr "Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, num=%N) : %m\n"
+msgstr ""
+"Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, num="
+"%N) : %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:661
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Erreur lors de la lecture de l'@i %i : %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "l'@i %i a un drapeau imagic activé. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1491,204 +1531,211 @@ msgstr ""
"immutable ou append-only activé. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:680
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr "l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de @cion. "
+msgstr ""
+"l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de "
+"@cion. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr "L'@i spécial (@v/socket/fifo) %i a une taille non nulle. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "l'@i de @j n'est pas utilisé mais contient des données. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "le @j n'est pas un fichier normal. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "l'@i %i fait partie de la liste des @is @os. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:711
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "des @is qui faisaient partie d'une liste chaînée d'orphelins corrompue ont été repérés. "
+msgstr ""
+"des @is qui faisaient partie d'une liste chaînée d'orphelins corrompue ont "
+"été repérés. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "@A d'une structure de comptage de références (%N) : %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr "Erreur lors de la lecture du @b %b d'@a pour l'@i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "l'@i %i a un mauvais @b %b d'@a. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "Erreur de lecture du @b %b d'@a (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
msgstr "le @b %b d'@a a un compteur de référence %r, @s %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "Erreur d'écriture du @b %b d'@a (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr "le @b %b d'@a a h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "@A du @b %b d'@a. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "le @b %b d'@a est corrompu (collision d'allocation). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "le @b %b d'@a est corrompu (nom @n). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "le @b %b d'@a est corrompu (valeur @n). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "l'@i %i est trop grand. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:775
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
msgstr "le %B (%b) rend le @d trop grand. "
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
msgstr "le %B (%b) rend le fichier trop grand. "
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
msgstr "le %B (%b) rend le lien symbolique trop grand. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr "l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n"
+msgstr ""
+"l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "l'@i %i a le drapeau INDEX_FL activé mais n'est pas un @d.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "l'@h %i a un noeud root @n.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr "l'@h %i dispose d'une version de hachage non supportée (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr "l'@h %i utilise un drapeau de noeud root incompatible.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "l'@h %i a une hauteur d'arbre (%N) qui est trop grande\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:832
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:826
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "La (re-)création de l'@i de changement de taille a échoué : %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "l'@i %i a une taille extra (%IS) qui est @n\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "l'@a dans l'@i %i a une longueur de nom (%N) qui est @n\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr "l'@a dans l'@i %i a une valeur de décalage (%N) qui est @n\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr "l'@a dans l'@i %i a un @b de valeur (%N) qui est @n (doit être 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
msgstr "l'@a dans l'@i %i a une valeur de taille (%N) qui est @n\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "l'@a dans l'@i %i a un hachage (%N) qui est @n\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr "l'@i %i est un %It mais il semble qu'il soit en fait un répertoire.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr "Erreur lors de l'itération sur l'arbre d'@xs dans l'@i %i : %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1698,7 +1745,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:877
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1708,7 +1755,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
@@ -1717,31 +1764,33 @@ msgstr ""
"\t(@b logique %c, @b physique %b, longueur @n %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr "l'@i %i a le drapeau EXTENTS_FL activé sur le @f sans support des extents.\n"
+msgstr ""
+"l'@i %i a le drapeau EXTENTS_FL activé sur le @f sans support des extents.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr "L'@i %i a un format d'extent, mais le @S n'a pas la fonctionnalité EXTENTS\n"
+msgstr ""
+"L'@i %i a un format d'extent, mais le @S n'a pas la fonctionnalité EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr "L'@i %i n'a pas le drapeau EXTENT_FL, mais a un format d'extent\n"
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr "Le fast symlink %i a le drapeau EXTENT_FL activé. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
@@ -1750,95 +1799,122 @@ msgstr ""
"\t(@b logique @n %c, @b physique %b, longueur %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:911
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr "L'@i %i a un noeud d'extent invalide (blk %b, lblk %c)\n"
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:915
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr "L'@i %i ne devrait pas avoir EOFBLOCKS_FL défini (taille %Is, lblk %r)\n"
-
#. @-expanded: Error converting subcluster block bitmap: %m\n
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
msgstr "Erreur lors de la conversion du @B de @b de sous-cluster : %m\n"
#. @-expanded: quota inode is not regular file.
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
msgid "@q @i is not regular file. "
msgstr "L'@i de @q n'est pas un fichier normal. "
#. @-expanded: quota inode is not in use, but contains data.
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
msgid "@q @i is not in use, but contains data. "
msgstr "L'@i de @q n'est pas utilisé mais contient des données. "
#. @-expanded: quota inode is visible to the user.
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
msgid "@q @i is visible to the user. "
msgstr "L'@i de @q est visible par l'utilisateur. "
#. @-expanded: The bad block inode looks invalid.
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
msgid "The bad @b @i looks @n. "
msgstr "L'@i des @bs défectueux a l'air @n. "
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"L'@i %i a un extent de taille nulle\n"
+"\t(@b logique @n %c, @b physique %b)\n"
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+"Extent intérieur de niveau de noeud %N de l'i-noeud %i:\n"
+"Le début logique %b ne correspond pas au début logique %c du niveau "
+"suivant. "
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"Dans l'@i %i, la fin de l'extent dépasse la valeur autorisée\n"
+"\t(@b logique %c, @b physique %b, longueur %N)\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:948
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
"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:
-#: e2fsck/problem.c:954
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "@b(s) @m dans l'@i %i :"
-#: e2fsck/problem.c:969
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Erreur lors de l'examen des i-noeuds (%i) : %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "@A du @B d'@is (i_node_dup_map) : %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr "Erreur lors des itérations sur les @bs dans l'@i %i (%s) : %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:984 e2fsck/problem.c:1299
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr "Erreur d'ajustement de refcount pour le @b %b d'@a (@i %i) : %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:989
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr "Passe 1C : examen des répertoires pour les @is avec des @bs @m\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Passe 1D : ajustement des @bs @m\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
@@ -1847,18 +1923,18 @@ msgstr ""
" a %r @b(s) @m, partagés avec %N fichier(s) :\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:1006
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (@i n°%i, date de modification %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<métadonnée du @f>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1868,7 +1944,7 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
@@ -1876,315 +1952,317 @@ msgstr ""
"@bs @m déjà été réassignés ou clonés.\n"
"\n"
-#: e2fsck/problem.c:1034
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "N'a pu cloner le fichier : %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Passe 2 : vérification de la structure des @ds\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr "Numéro d'@i @n pour « . » dans l'@i de @d %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "l'@E a un n° d'@i @n : %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr "l'@E a un @i @D/non utilisé %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "l'@E @L vers « . » "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "l'@E pointe vers l'@i (%Di) localisé dans un @b défectueux.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "l'@E @L vers le @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "l'@E @L vers l'@r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "l'@E a un caractère illégal dans son nom.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "« . » manquant dans l'@i de @d %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "« .. » manquant dans l'@i de @d %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr "La première @e « %Dn » (@i=%Di) dans l'@i de @d %i (%p) @s « . »\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "La seconde @e « %Dn » (@i=%Di) dans l'@i de @d %i @s « .. »\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr "i_faddr @F %IF, @s zéro.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "i_file_acl @F %If, @s zéro.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "i_dir_acl @F %Id, @s zéro.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr "i_frag @F %N, @s zéro.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "i_fsize @F %N, @s zéro.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "l'@i %i (%Q) a un mode @n (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "@i de @d %i, %B, déplacement %N : @d corrompu\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "@i de @d %i, %B, déplacement %N : nom de fichier trop long\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "l'@i de @d %i a un %B non alloué. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "l'@e de @d « . » dans l'@i de @d %i n'est pas terminée pas un NULL\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "l'@e de @d « .. » dans l'@i de @d %i n'est pas terminée pas un NULL\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "l'@i %i (%Q) est un @v de caractère @I.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "l'@i %i (%Q) est un @v de @b @I.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "l'@E est un doublon de l'@e « . ».\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "l'@E est un doublon de l'@e « .. ».\n"
-#: e2fsck/problem.c:1180 e2fsck/problem.c:1480
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "Erreur interne : impossible de trouver dir_info pour %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "l'@E a un rec_len de %Dr, @s %N.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "@A d'une structure icount : %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Erreur d'itération sur les @bs de @d : %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Erreur de lecture du @b %b de @d (@i %i) : %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Erreur d'écriture du @b %b de @d (@i %i) : %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "@A d'un nouveau @b de @d pour l'@i %i (%s) : %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Erreur lors de la désallocation de l'@i %i : %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "l'@e de @d pour « . » dans %p (%i) est grande.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "l'@i %i (%Q) est un FIFO @I.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "l'@i %i (%Q) est une socket @I.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %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:1240
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "l'@E a un type de fichier incorrect (était %Dt, @s %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "l'@E a un type de fichier initialisé.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "l'@E a un nom @z.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "Le lien symbolique %Q (@i n°%i) est @n.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
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:1265
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr "le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé dans le @S.\n"
+msgstr ""
+"le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé "
+"dans le @S.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
msgstr "@p l'@h %d : %B n'est pas référencé\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
msgstr "@p l'@h %d : %B est référencé deux fois\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
msgstr "@p l'@h %d : %B a un hachage mininal erroné\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
msgstr "@p l'@h %d : %B a un hachage maximal erroné\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "@h %d @n (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "@p l'@h %d (%q) : numéro de @b %b erroné.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1304
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "@p l'@h %d : le noeud root est @n\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr "@p l'@h %d : %B a une limite @n (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr "@p l'@h %d : %B a un compteur @n (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr "@p l'@h %d : %B a une table de hachage non ordonnée\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "@p l'@h %d : %B a une profondeur @n (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "@E doublon repérée. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2196,7 +2274,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2207,116 +2285,121 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "i_blocks_hi @F %N, @s zéro.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "@b dans l'@h %d (%q) inattendu.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr "@E référence l'@i %Di dans le @g %g où _INODE_UNINIT est positionné.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "@E référence l'@i %Di trouvé dans la zone d'i-noeuds non utilisés du @g %g.\n"
+msgstr ""
+"@E référence l'@i %Di trouvé dans la zone d'i-noeuds non utilisés du @g %g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr "i_file_acl_hi @F %N, @s zéro.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Passe 3 : vérification de la connectivité des @ds\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "l'@r n'est pas alloué. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "Pas d'espace dans le @d @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "@i %i (%p) de @d non connecté\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/@l n'a pas été trouvé. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "« .. » dans %Q (%i) est %P (%j), @s %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "/@l erroné ou inexistent. Ne peut reconnecter.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "Ne peut étendre /@l : %m\n"
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "Ne peut reconnecter %i : %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "Erreur lors de la tentative de repérage de /@l : %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_@b : %m lors de la tentative de création du @d /@l\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_@i : %m lors de la tentative de création du @d /@l\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr "ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de @d\n"
+msgstr ""
+"ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de "
+"@d\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr "ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /@l\n"
+msgstr ""
+"ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /"
+"@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Erreur lors de l'ajustement du compteur d'@i sur l'@i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2327,7 +2410,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2337,75 +2420,75 @@ msgstr ""
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1460
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Erreur de création du @d racine (%s) : %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Erreur de création du @d /@l (%s) : %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "l'@r n'est pas un @d ; arrêt immédiat.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "Ne peut procéder sans un @r.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1485
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/@l n'est pas un @d (ino=%i)\n"
-#: e2fsck/problem.c:1492
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Passe 3A : optimisation des répertoires\n"
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Échec de création de l'itérateur dirs_to_hash : %m\n"
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Échec d'optimisation du répertoire %q (%d) : %m\n"
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Optimisation des répertoires : "
-#: e2fsck/problem.c:1524
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Passe 4 : vérification des compteurs de référence\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "@i %i @z @u. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "@i %i @u\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "le compteur de référence de l'@i %i est %Il, @s %N. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
-#: e2fsck/problem.c:1543
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2417,140 +2500,156 @@ msgstr ""
"\ti-node.i_links_count est %Il. Ils devraient être les mêmes !\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1553
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Passe 5 : vérification de l'information du sommaire de @g\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "Le remplissage à la fin du @B d'@i n'est pas initialisé. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "Le remplissage à la fin du @B de @bs n'est pas initialisé. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "différences de @B de @bs : "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1588
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "différences de @B d'@is : "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1608
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n"
+msgstr ""
+"Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n"
+msgstr ""
+"Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "Le décompte des @is libres est erroné (%i, décompté=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
-msgstr "Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n"
+msgstr ""
+"Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "Le décompte des @bs libres est erroné (%b, décompté=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1633
-msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
-msgstr "ERREUR DE PROGRAMMATION : les points de terminaison (%b, %c) de @Bs du @f (n°%N) ne concordent pas avec les points de terminaison de @Bs calculés (%i, %j)\n"
+#: e2fsck/problem.c:1659
+msgid ""
+"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
+"endpoints (%i, %j)\n"
+msgstr ""
+"ERREUR DE PROGRAMMATION : les points de terminaison (%b, %c) de @Bs du @f (n°"
+"%N) ne concordent pas avec les points de terminaison de @Bs calculés (%i, "
+"%j)\n"
-#: e2fsck/problem.c:1639
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr "Erreur interne : ajustement approximatif de la fin du bitmap (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Erreur lors de la copie du @B d'@is de remplacement : %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr "Erreur lors de la copie du @B des @bs de remplacement : %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1674
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr "Un ou des @b(s) du @g %g en cours d'utilisation alors que le @g est marqué BLOCK_UNINIT\n"
+msgstr ""
+"Un ou des @b(s) du @g %g en cours d'utilisation alors que le @g est marqué "
+"BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr "Un ou des @i(s) du @g %g en cours d'utilisation alors que le @g est marqué INODE_UNINIT\n"
+msgstr ""
+"Un ou des @i(s) du @g %g en cours d'utilisation alors que le @g est marqué "
+"INODE_UNINIT\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1686
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
msgstr "Recréer le @j"
-#: e2fsck/problem.c:1805
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr "Mise à jour de l'information de quota pour le type de quota %N"
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Code d'erreur non traité (0x%x) !\n"
-#: e2fsck/problem.c:1905
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "IGNORÉ"
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Mémoire utilisée : %d, temps requis : %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "taille de l'i-noeud=%d\n"
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "lors du démarrage de l'examen des i-noeuds"
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "lors de l'examen des i-noeuds"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "lors de l'appel de ext2fs_block_iterate pour l'i-noeud %d"
-#: e2fsck/super.c:210
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "lors de l'appel à ext2fs_adjust_ea_refcount2 pour l'i-noeud %d"
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Lors de la troncature de"
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Lors de l'effacement de"
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2558,20 +2657,20 @@ msgid ""
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extended-options] device\n"
msgstr ""
-"Usage : %s [-panyrcdfvtDFV] [-b super-bloc] [-B taille-de-bloc]\n"
+"Utilisation : %s [-panyrcdfvtDFV] [-b super-bloc] [-B taille-de-bloc]\n"
"\t\t[-I nombre-blocs-du-tampon-i-noeuds] [-P taille-i-noeud-processus]\n"
"\t\t[-l|-L fichiers-des-blocs-défectueux] [-C fd] [-j journal-externe]\n"
"\t\t[-E options-étendues] périphérique\n"
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
@@ -2584,8 +2683,7 @@ msgstr ""
" -f Forcer la vérification même si le système de fichiers\n"
" est marqué propre\n"
-#: e2fsck/unix.c:89
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2604,166 +2702,166 @@ msgstr ""
" -L fichier-des-blocs-erronés\n"
" Définir la liste des blocs défectueux\n"
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s : %u/%u fichiers (%0d.%d%% non contigüs), %llu/%llu blocs\n"
-#: e2fsck/unix.c:139
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u i-noeud utilisé (%2.2f%%)\n"
+"%12u i-noeud utilisé (%2.2f%%, sur %u)\n"
msgstr[1] ""
"\n"
-"%8u i-noeuds utilisés (%2.2f%%)\n"
+"%12u i-noeuds utilisés (%2.2f%%, sur %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u i-noeud non contigu (%0d.%d%%)\n"
-msgstr[1] "%8u i-noeuds non contigus (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u fichier non contigu (%0d.%d%%)\n"
+msgstr[1] "%12u fichiers non contigus (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u i-noeud non contigu (%0d.%d%%)\n"
-msgstr[1] "%8u i-noeuds non contigus (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u répertoire non contigu (%0d.%d%%)\n"
+msgstr[1] "%12u répertoires non contigus (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " nombre d'i-noeuds avec des blocs ind/dind/tind : %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr ""
+" nombre d'i-noeuds avec des blocs ind/dind/tind : %u/%u/%u\n"
-#: e2fsck/unix.c:158
-#, c-format
-msgid " Extent depth histogram: "
-msgstr " Histogramme des profondeurs d'extents : "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogramme des profondeurs d'extents : "
-#: e2fsck/unix.c:167
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu bloc utilisé (%2.2f%%)\n"
-msgstr[1] "%8llu blocs utilisés (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu bloc utilisé (%2.2f%%, sur %llu)\n"
+msgstr[1] "%12llu blocs utilisés (%2.2f%%, sur %llu)\n"
-#: e2fsck/unix.c:170
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u bloc défectueux\n"
-msgstr[1] "%8u blocs défectueux\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u bloc défectueux\n"
+msgstr[1] "%12u blocs défectueux\n"
-#: e2fsck/unix.c:172
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u fichier de grande taille\n"
-msgstr[1] "%8u fichiers de grande taille\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u fichier de grande taille\n"
+msgstr[1] "%12u fichiers de grande taille\n"
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u fichier normal\n"
+"%12u fichier normal\n"
msgstr[1] ""
"\n"
-"%8u fichiers normaux\n"
+"%12u fichiers normaux\n"
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u répertoire\n"
-msgstr[1] "%8u répertoires\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u répertoire\n"
+msgstr[1] "%12u répertoires\n"
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u fichier de périphérique en mode caractère\n"
-msgstr[1] "%8u fichiers de périphérique en mode caractère\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u fichier de périphérique en mode caractère\n"
+msgstr[1] "%12u fichiers de périphérique en mode caractère\n"
-#: e2fsck/unix.c:181
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u fichier de périphérique en mode bloc\n"
-msgstr[1] "%8u fichiers de périphérique en mode bloc\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u fichier de périphérique en mode bloc\n"
+msgstr[1] "%12u fichiers de périphérique en mode bloc\n"
-#: e2fsck/unix.c:183
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
-msgstr[1] "%8u fifos\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
+msgstr[1] "%12u fifos\n"
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u lien\n"
-msgstr[1] "%8u liens\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u lien\n"
+msgstr[1] "%12u liens\n"
-#: e2fsck/unix.c:188
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u lien symbolique"
-msgstr[1] "%8u liens symboliques"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u lien symbolique"
+msgstr[1] "%12u liens symboliques"
-#: e2fsck/unix.c:190
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] " (%u lien symbolique rapide)\n"
msgstr[1] " (%u liens symboliques rapides)\n"
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u socket\n"
-msgstr[1] "%8u sockets\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
+msgstr[1] "%12u sockets\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u fichier\n"
-msgstr[1] "%8u fichiers\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u fichier\n"
+msgstr[1] "%12u fichiers\n"
-#: e2fsck/unix.c:209 misc/badblocks.c:984 misc/tune2fs.c:1978 misc/util.c:147
-#: resize/main.c:251
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "lors de la détermination à savoir si %s est monté."
-#: e2fsck/unix.c:227
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
-msgstr "Avertissement ! %s est monté.\n"
+msgid "Warning! %s is %s.\n"
+msgstr "Attention ! %s est %s.\n"
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s est monté. "
+msgid "%s is %s.\n"
+msgstr "%s est %s.\n"
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2771,8 +2869,7 @@ msgstr ""
"Ne peut continuer, arrêt immédiat.\n"
"\n"
-#: e2fsck/unix.c:235
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2786,79 +2883,80 @@ msgstr ""
"vous ***CAUSEREZ*** des dommages ***SÉVÈRES*** au système de fichiers.\n"
"\n"
-#: e2fsck/unix.c:239
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Souhaitez-vous réellement continuer"
-#: e2fsck/unix.c:241
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "vérification stoppée.\n"
-#: e2fsck/unix.c:323
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " contient un système de fichiers comportant des erreurs"
-#: e2fsck/unix.c:325
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " n'a pas été démonté proprement"
-#: e2fsck/unix.c:327
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
-msgstr " les fonctionnalités du superbloc primaire diffèrent de celles de la sauvegarde"
+msgstr ""
+" les fonctionnalités du superbloc primaire diffèrent de celles de la "
+"sauvegarde"
-#: e2fsck/unix.c:331
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " a été monté %u fois sans avoir été vérifié"
-#: e2fsck/unix.c:338
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
-msgstr " a une date de dernière vérification du système de fichiers dans le futur"
+msgstr ""
+" a une date de dernière vérification du système de fichiers dans le futur"
-#: e2fsck/unix.c:344
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " a passé %u jours sans avoir été vérifié"
-#: e2fsck/unix.c:353
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", vérification forcée.\n"
-#: e2fsck/unix.c:386
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s : propre, %u/%u fichiers, %llu/%llu blocs"
-#: e2fsck/unix.c:404
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (vérification remise à plus tard : sur batterie)"
-#: e2fsck/unix.c:407
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (vérification lors du prochain montage)"
-#: e2fsck/unix.c:409
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (vérification dans %ld montages)"
-#: e2fsck/unix.c:559
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "ERREUR : ne peut ouvrir /dev/null (%s)\n"
-#: e2fsck/unix.c:628
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Version EA invalide.\n"
-#: e2fsck/unix.c:649
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Option étendue inconnue : %s\n"
-#: e2fsck/unix.c:674
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2868,48 +2966,47 @@ msgstr ""
"\tligne n°%d)\n"
"\t%s\n"
-#: e2fsck/unix.c:743
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "ERREUR lors de la validation du descripteur de fichier %d : %s\n"
-#: e2fsck/unix.c:747
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr "Descripteur de fichier d'information de complétion invalide"
-#: e2fsck/unix.c:762
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Seule une des options -p/-a, -n ou -y peut être spécifiée."
-#: e2fsck/unix.c:783
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "L'option -t n'est pas supportée sur cette version d'e2fsck.\n"
-#: e2fsck/unix.c:814 e2fsck/unix.c:886 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Impossible de résoudre « %s »"
-#: e2fsck/unix.c:865
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
msgstr "Les options -n et -D sont incompatibles."
-#: e2fsck/unix.c:870
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
msgstr "Les options -n et -c sont incompatibles."
-#: e2fsck/unix.c:875
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
msgstr "Les options -n et -l/-L sont incompatibles."
-#: e2fsck/unix.c:915
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "Les options -c et -l/-L ne peuvent pas être utilisées simultanément.\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
@@ -2918,7 +3015,7 @@ msgstr ""
"E2FSCK_JBD_DEBUG \"%s\" n'est pas un entier\n"
"\n"
-#: e2fsck/unix.c:972
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2929,56 +3026,69 @@ msgstr ""
"Argument non numérique invalide pour -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1074 e2fsck/unix.c:1079
+#: e2fsck/unix.c:1129
+#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+"L'intervale de protection contre montage multiple (MMP) est de %u secondes "
+"et temps total d'attente est de %u seconds. Veuillez patienter...\n"
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
msgstr "lors de la vérification du block MMP"
-#: e2fsck/unix.c:1081 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Si vous êtes sûr(e) que le système de fichiers n'est en cours d'utilisation sur aucun noeud, lancer:\n"
+"Si vous êtes sûr(e) que le système de fichiers n'est en cours d'utilisation "
+"sur aucun noeud, lancer:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
-#: e2fsck/unix.c:1130
-#, c-format
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Erreur : la version de la bibliothèque ext2fs est périmée !\n"
-#: e2fsck/unix.c:1138
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "lors de la tentative d'initialisation du programme"
-#: e2fsck/unix.c:1149
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tUtilisation de %s, %s\n"
-#: e2fsck/unix.c:1161
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "a besoin d'un terminal pour des réparations en mode interactif"
-#: e2fsck/unix.c:1200
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s : %s tentons d'utiliser les blocs de sauvetage...\n"
-#: e2fsck/unix.c:1202
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Superbloc invalide,"
-#: e2fsck/unix.c:1203
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Les descripteurs de groupe semblent en mauvais état..."
-#: e2fsck/unix.c:1215
+#: e2fsck/unix.c:1312
+#, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s : %s lors de l'utilisation des blocs de sauvetage"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s : retour au superblock originel\n"
-#: e2fsck/unix.c:1242
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2989,35 +3099,30 @@ msgstr ""
"corrompu)\n"
"\n"
-#: e2fsck/unix.c:1248
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "Peut-être cette partition est-elle de taille zéro ?\n"
-#: e2fsck/unix.c:1250
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Vous devez avoir un accès %s au système de fichiers ou être root\n"
-#: e2fsck/unix.c:1255
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "Périphérique peut-être inexistent ou pour le swap ?\n"
-#: e2fsck/unix.c:1257
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"Système de fichier monté ou ouvert en mode exclusif par un autre\n"
"programme ?\n"
-#: e2fsck/unix.c:1260
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr "Périphérique peut-être inexistant ?\n"
-#: e2fsck/unix.c:1263
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -3025,109 +3130,97 @@ msgstr ""
"Disque protégé en écriture ; utilisez l'option -n pour effectuer une\n"
"vérification du périphérique en lecture seule.\n"
-#: e2fsck/unix.c:1327
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Veuillez obtenir une version plus récente d'e2fsck !"
-#: e2fsck/unix.c:1373
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "lors de la vérification du journal ext3 pour %s"
-#: e2fsck/unix.c:1384
-#, c-format
-msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+#: e2fsck/unix.c:1489
+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"
-#: e2fsck/unix.c:1397
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "impossible d'initialiser les drapeaux du superbloc sur %s\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "lors de la récupération du journal ext3 de %s"
-#: e2fsck/unix.c:1428
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s a une(des) fonctionnalité(s) non supportée(s) :"
-#: e2fsck/unix.c:1444
-msgid "Warning: compression support is experimental.\n"
-msgstr "Avertissement : le support de la compression est expérimental.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s : avertissement : le support de la compression est expérimental.\n"
-#: e2fsck/unix.c:1449
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"E2fsck n'est pas compilé avec le support pour HTREE,\n"
+"%s : e2fsck n'est pas compilé avec le support pour HTREE,\n"
"\tmais le système de fichiers %s a des répertoires HTREE.\n"
-#: e2fsck/unix.c:1502
-msgid "while reading bad blocks inode"
-msgstr "lors de la lecture de l'i-noeud des blocs défectueux"
-
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1605
#, c-format
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s : %s lors de la lecture de l'i-noeud des blocs défectueux\n"
+
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Cela ne semble pas être bien, mais on va quand même essayer...\n"
-#: e2fsck/unix.c:1543
-msgid "Couldn't determine journal size"
-msgstr "N'a pu déterminer la taille du journal"
-
-#: e2fsck/unix.c:1546
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Création du journal (%d blocs) : "
-#: e2fsck/unix.c:1553 misc/mke2fs.c:2535
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tlors de la tentative de création du journal"
-
-#: e2fsck/unix.c:1556
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr "Complété.\n"
-#: e2fsck/unix.c:1557
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
"\n"
-"*** le journal a été re-créé - le système de fichiers est de nouveau ext3 ***\n"
+"*** le journal a été re-créé - le système de fichiers est de nouveau ext3 "
+"***\n"
-#: e2fsck/unix.c:1569
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Re-démarrons e2fsck depuis le début...\n"
-#: e2fsck/unix.c:1573
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "lors de la réinitialisation du contexte"
-#: e2fsck/unix.c:1580
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s : e2fsck a été annulé.\n"
-#: e2fsck/unix.c:1585
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "arrêté"
-#: e2fsck/unix.c:1597 e2fsck/util.c:66
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -3136,12 +3229,12 @@ msgstr ""
"\n"
"%s: ***** LE SYSTÈME DE FICHIERS A ÉTÉ MODIFIÉ *****\n"
-#: e2fsck/unix.c:1600
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s : ***** RÉ-AMORCER LINUX *****\n"
-#: e2fsck/unix.c:1608 e2fsck/util.c:72
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -3152,43 +3245,44 @@ msgstr ""
"%s : **ATTENTION : le système de fichiers contient encore des erreurs**\n"
"\n"
-#: e2fsck/unix.c:1648
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
-msgstr "lors de l'initialisation de l'information de checksum du groupe de blocs"
+msgstr ""
+"lors de l'initialisation de l'information de checksum du groupe de blocs"
-#: e2fsck/util.c:160 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "oO"
-#: e2fsck/util.c:161
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:175
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<o>"
-#: e2fsck/util.c:177
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:179
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (o/n)"
-#: e2fsck/util.c:194
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "annulé !\n"
-#: e2fsck/util.c:209
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "oui\n"
-#: e2fsck/util.c:211
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "non\n"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3197,7 +3291,7 @@ msgstr ""
"%s ? non\n"
"\n"
-#: e2fsck/util.c:225
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3206,38 +3300,40 @@ msgstr ""
"%s ? oui\n"
"\n"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "yes"
msgstr "oui"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "no"
msgstr "non"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps : bloc(s) de bitmap illégal(aux) pour %s"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "la lecture des bitmaps d'i-noeuds et de blocs"
-#: e2fsck/util.c:253
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "lors de la tentative de re-lecture des bitmaps pour %s"
-#: e2fsck/util.c:265
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "l'écriture des bitmaps de blocs et d'i-noeuds"
-#: e2fsck/util.c:270
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
-msgstr "lors d'une nouvelle tentative d'écriture de bitmaps de blocs et d'i-noeuds pour %s"
+msgstr ""
+"lors d'une nouvelle tentative d'écriture de bitmaps de blocs et d'i-noeuds "
+"pour %s"
-#: e2fsck/util.c:282
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3250,63 +3346,69 @@ msgstr ""
"%s: INCONSISTENCE INATTENDUE ; EXÉCUTEZ fsck MANUELLEMENT.\n"
"\t(i.e., sans options -a ou -p)\n"
-#: e2fsck/util.c:363
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Mémoire utilisée : %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:367
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr "Mémoire utilisée : %lu, "
-#: e2fsck/util.c:374
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "temps : %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:379
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "temps écoulé : %6.3f\n"
-#: e2fsck/util.c:413 e2fsck/util.c:427
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr "lors de la lecture de l'i-noeud %lu dans %s"
-#: e2fsck/util.c:441 e2fsck/util.c:454
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr "lors de l'écriture de l'i-noeud %lu dans %s"
-#: e2fsck/util.c:603
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "lors de l'allocation d'un tampon de mise à zéro"
-#: e2fsck/util.c:755
-msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
-msgstr "INCOHÉRENCE INATTENDUE : le système de fichiers a été modifié pendant le déroulement de fsck.\n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+"INCOHÉRENCE INATTENDUE : le système de fichiers a été modifié pendant le "
+"déroulement de fsck.\n"
#: misc/badblocks.c:69
msgid "done \n"
msgstr "complété \n"
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-"Usage : %s [-b taille_de_bloc] [-i fichier_d_entrée] [-o fichier_de_sortie]\n"
+"Utilisation : %s [-b taille_de_bloc] [-i fichier_d_entrée] [-o "
+"fichier_de_sortie]\n"
" [-svwnf] [-c blocs_à_la_fois] [-d facteur_délai_entre_lectures]\n"
" [-e max_blocks_défectueux] [-p nombre_de_passes]\n"
" [-t motif_de_test [-t motif_de_test [...]]]\n"
" périphérique [dernier_bloc [premier_bloc]]\n"
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
@@ -3315,82 +3417,83 @@ msgstr ""
"%s: Les options -n et -w sont mutuellement exclusive.\n"
"\n"
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr "%6.2f%% effectué, %s écoulé. (%d/%d/%d erreurs)"
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Test en cours avec un motif aléatoire : "
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Test en cours avec le motif 0x"
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "lors de la recherche"
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Valeur bizarre (%ld) dans do_read\n"
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "lors de l'exécution d'ext2fs_sync_device"
-#: misc/badblocks.c:489 misc/badblocks.c:750
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "lors du début de l'itération de la liste des blocs défectueux"
-#: misc/badblocks.c:503 misc/badblocks.c:603 misc/badblocks.c:760
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "lors de l'allocation des tampons"
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Vérification des blocs %lu à %lu\n"
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Vérification des blocs défectueux en mode lecture seule\n"
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Vérification des blocs défectueux (test en mode lecture seule) : "
-#: misc/badblocks.c:529 misc/badblocks.c:635 misc/badblocks.c:677
-#: misc/badblocks.c:823
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr "Trop de blocs défectueux, test abandonné\n"
-#: misc/badblocks.c:610
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Vérification des blocs défectueux en mode lecture-écriture\n"
-#: misc/badblocks.c:612 misc/badblocks.c:773
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Du bloc %lu au bloc %lu\n"
-#: misc/badblocks.c:667
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Lecture et comparaison : "
-#: misc/badblocks.c:772
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr ""
"Vérification des blocs défectueux dans un mode non destructif de lecture-\n"
"écriture\n"
-#: misc/badblocks.c:778
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr "Vérification des blocs défectueux (test non destructif de lecture-écriture)\n"
+msgstr ""
+"Vérification des blocs défectueux (test non destructif de lecture-écriture)\n"
-#: misc/badblocks.c:785
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3398,54 +3501,54 @@ msgstr ""
"\n"
"Interruption, nettoyage en cours\n"
-#: misc/badblocks.c:868
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "lors du test d'écriture de données, bloc %lu"
-#: misc/badblocks.c:989 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s est monté ; "
-#: misc/badblocks.c:991
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"l'exécution de badblocks est tout de même forcée.\n"
"Espérons que /etc/mtab est incorrect.\n"
-#: misc/badblocks.c:996
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "il n'est pas prudent d'exécuter badblocks !\n"
-#: misc/badblocks.c:1001 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s est apparemment utilisé par le système ; "
-#: misc/badblocks.c:1004
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "blocs erronés forcés de toutes manières.\n"
-#: misc/badblocks.c:1024
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "%s invalide - %s"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "ne peut allouer de la mémoire pour motif_de_test - %s"
-#: misc/badblocks.c:1164
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr "Au plus un seul motif_de_test peut être spécifé en mode lecture seule"
-#: misc/badblocks.c:1170
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "Un motif_de_test aléatoire n'est pas permis en mode lecture seule"
-#: misc/badblocks.c:1184
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
@@ -3453,42 +3556,51 @@ msgstr ""
"Ne peut déterminer la taille du périphérique ; vous devez spécifier\n"
"la taille manuellement\n"
-#: misc/badblocks.c:1190
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "lors de la tentative de détermination de la taille du périphérique"
-#: misc/badblocks.c:1195
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "dernier bloc"
-#: misc/badblocks.c:1201
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "premier bloc"
-#: misc/badblocks.c:1204
+#: misc/badblocks.c:1209
+#, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "bloc de départ invalide (%llu) : doit être moins de %llu"
+
+#: misc/badblocks.c:1216
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
-msgstr "bloc de départ invalide (%lu) : doit être moins de %lu"
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "bloc de départ invalide (%llu) : doit être une valeur sur 32 bit"
-#: misc/badblocks.c:1260
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "lors de la création en mémoire d'une liste des blocs défectueux"
-#: misc/badblocks.c:1275
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr "fichier d'entrée - mauvais format"
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "lors de l'ajout en mémoire à la liste des blocs défectueux"
-#: misc/badblocks.c:1299
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Passe complétée, %u blocs défectueux repérés. (%d/%d/%d erreurs)\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Usage : %s [-RVf] [-+=AacDdeijsSu] [-v version] fichiers...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Utilisation : %s [-RVf] [-+=AaCcDdeijsSu] [-v version] fichiers...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "version erronée - %s\n"
@@ -3503,87 +3615,91 @@ msgstr "lors de l'évaluation par stat() de %s"
msgid "while reading flags on %s"
msgstr "lors de la lecture des drapeaux sur %s"
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr "La suppression du drapeau extent n'est pas supportée sur %s"
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "Drapeaux de %s initialisés comme "
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "lors de l'initialisation des drapeaux sur %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Version de %s initialisée à %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "lors de l'initialisation de la version sur %s"
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Ne peut allouer une variable de chemin dans chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= est incompatible avec - et +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Vous devez utiliser « -v », = - ou +\n"
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr "Usage : %s [-bfhixV] [-o superblock=<nombre>] [-o blocksize=<nombre>] périphérique\n"
+msgstr ""
+"Utilisation : %s [-bfhixV] [-o superblock=<nombre>] [-o blocksize=<nombre>] "
+"périphérique\n"
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
msgstr "blocs"
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
msgstr "clusters"
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Groupe %lu : (Blocs "
-#: misc/dumpe2fs.c:194
+#: misc/dumpe2fs.c:205
#, c-format
-msgid " Checksum 0x%04x, unused inodes %u\n"
-msgstr " Checksum 0x%04x, %u i-noeuds non utilisés\n"
+msgid " Checksum 0x%04x"
+msgstr " Checksum 0x%04x"
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr " (ATTENDU 0x%04x)"
+
+#: misc/dumpe2fs.c:208
+#, c-format
+msgid ", unused inodes %u\n"
+msgstr ", i-noeuds non utilisés %u\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " superbloc %s à "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Primaire"
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Secours"
-#: misc/dumpe2fs.c:204
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Descripteurs de groupes à "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3591,20 +3707,19 @@ msgstr ""
"\n"
" Blocs réservés GDT à "
-#: misc/dumpe2fs.c:215
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Descripteur de groupe à "
-#: misc/dumpe2fs.c:221
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Bitmap de blocs à "
-#: misc/dumpe2fs.c:225
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", Bitmap d'i-noeuds à "
-#: misc/dumpe2fs.c:229
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3612,7 +3727,7 @@ msgstr ""
"\n"
" Table d'i-noeuds à "
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
@@ -3621,50 +3736,53 @@ msgstr ""
"\n"
" %u %s libres, %u i-noeuds libres, %u répertoires%s"
-#: misc/dumpe2fs.c:242
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u i-noeuds non utilisés\n"
-#: misc/dumpe2fs.c:245
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Blocs libres : "
-#: misc/dumpe2fs.c:256
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " I-noeuds libres : "
-#: misc/dumpe2fs.c:287
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "lors de l'affichage de la liste des blocs défectueux"
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Blocs défectueux : %u"
-#: misc/dumpe2fs.c:320 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "lors de la lecture de l'i-noeud du journal"
-#: misc/dumpe2fs.c:326
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr "lors de l'ouverture de l'i-noeud du journal"
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr "lors de la lecture du journal du superbloc"
-#: misc/dumpe2fs.c:342
-#, c-format
+#: misc/dumpe2fs.c:364
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Le numéro magique du superbloc de journal est invalide !\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr "Fonctionalités du journal : "
-#: misc/dumpe2fs.c:355
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Taille du journal : "
-#: misc/dumpe2fs.c:366
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
@@ -3675,15 +3793,20 @@ msgstr ""
"Séquence du journal : 0x%08x\n"
"Début du journal : %u\n"
-#: misc/dumpe2fs.c:385 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr "Numéro erreur du journal: %d\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "lors de la lecture du journal du superbloc"
-#: misc/dumpe2fs.c:393
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Ne peut trouver les numéros magiques du superbloc du journal"
-#: misc/dumpe2fs.c:397
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3702,27 +3825,26 @@ msgstr ""
"Début du journal : %u\n"
"Nombre d'utilisateurs du journal : %u\n"
-#: misc/dumpe2fs.c:410
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Usagers du journal : %s\n"
-#: misc/dumpe2fs.c:426 misc/mke2fs.c:663 misc/tune2fs.c:1137
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Impossible d'allouer de la mémoire pour analyser les options !\n"
-#: misc/dumpe2fs.c:452
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Paramètre de superbloc invalide : %s\n"
-#: misc/dumpe2fs.c:467
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Paramètre de taille de bloc invalide : %s\n"
-#: misc/dumpe2fs.c:478
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3746,18 +3868,17 @@ msgstr ""
"\tblocksize=<taille de bloc>\n"
"\n"
-#: misc/dumpe2fs.c:538 misc/mke2fs.c:1521
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tUtilisation de %s\n"
-#: misc/dumpe2fs.c:574 misc/e2image.c:1290 misc/tune2fs.c:1923
-#: resize/main.c:310
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Impossible de trouver un superbloc de système de fichiers valide.\n"
-#: misc/dumpe2fs.c:599
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3766,40 +3887,263 @@ msgstr ""
"\n"
"%s : %s : erreur lors de la lecture des bitmaps : %s\n"
-#: misc/e2image.c:87
+#: misc/e2image.c:101
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Usage : %s [-rsIQ] périphérique fichier_image\n"
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
+msgstr "Utilisation : %s [ -r|Q ] [ -fr ] périphérique fichier_image\n"
-#: misc/e2image.c:135
+#: misc/e2image.c:103
#, c-format
+msgid " %s -I device image-file\n"
+msgstr " %s -I périphérique fichier_image\n"
+
+#: misc/e2image.c:104
+#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+" %s -ra [ -cfnp ] [ -o décalage-src ] [ -O décalage-dst ] "
+"src_fs [ dest_fs ]\n"
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+msgid "while allocating buffer"
+msgstr "lors de l'allocation d'un tampon"
+
+#: misc/e2image.c:174
+#, c-format
+msgid "Writing block %llu\n"
+msgstr "Écriture du bloc %llu\n"
+
+#: misc/e2image.c:188
+#, c-format
+msgid "error writing block %llu"
+msgstr "Erreur lors de d'écriture du bloc %llu"
+
+#: misc/e2image.c:191
+#, fuzzy
+msgid "error in generic_write()"
+msgstr "erreur dans write()"
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
msgstr "Erreur : la taille d'en-tête est plus grande que wrt_size\n"
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
msgstr "Ne peut allouer un tampon d'en-tête\n"
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "lors de l'écriture du superbloc"
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "lors de l'écriture de la table d'i-noeuds"
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "lors de l'écriture du bitmap de blocs"
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "lors de l'écriture du bitmap d'i-noeuds"
-#: misc/e2image.c:1322
+#: misc/e2image.c:502
+#, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Bloc des répertoires %llu corrompu: mauvais rec_len (%d)\n"
+
+#: misc/e2image.c:514
+#, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Bloc des répertoires %llu corrompu: mauvais name_len (%d)\n"
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%llu / %llu blocs (%d%%)"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr "Copie "
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+"Arrêter maintenant va détruire le système de fichier, interrompez de nouveau "
+"si vous êtes sûr\n"
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr " reste %s à %.2f Mo/s"
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, c-format
+msgid "error reading block %llu"
+msgstr "erreur de lecture du bloc %llu"
+
+#: misc/e2image.c:715
+#, fuzzy, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr "%llu / %llu blocs (%d%%)"
+
+#: misc/e2image.c:719
+#, fuzzy, c-format
+msgid "at %.2f MB/s"
+msgstr " reste %s à %.2f Mo/s"
+
+#: misc/e2image.c:755
+msgid "while allocating l1 table"
+msgstr "lors de l'allocation d'une table l1"
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr "lors de l'allocation d'un cache l2"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+"Attention : Il reste des tables dans le cache lors de la libération du "
+"cache, les données seront perdue, et donc l'image pourrait ne pas être "
+"valide.\n"
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr "lors de l'allocation de ext2fs_qcow2_image"
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr "lors de l'initialization de ext2fs_qcow2_image"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+"Erreur de programmation : plusieurs blocs séquentiels refcount ont été "
+"créés !\n"
+
+#: misc/e2image.c:1269
+msgid "while allocating block bitmap"
+msgstr "lors de l'allocation d'un bitmap de blocs"
+
+#: misc/e2image.c:1278
+msgid "while allocating scramble block bitmap"
+msgstr "lors de l'allocation d'un bitmap de bloc scamble"
+
+#: misc/e2image.c:1285
+msgid "Scanning inodes...\n"
+msgstr "Examen des i-noeuds...\n"
+
+#: misc/e2image.c:1297
+msgid "Can't allocate block buffer"
+msgstr "Ne peut allouer le tampon de bloc"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, c-format
+msgid "while iterating over inode %u"
+msgstr "lors de l'iteration sur l'i-noeud %u"
+
+#: misc/e2image.c:1381
+#, fuzzy
+msgid "Raw and qcow2 images cannot be installed"
+msgstr "Les images brutes et qcow2 ne peuvent pas être installée"
+
+#: misc/e2image.c:1403
+msgid "error reading bitmaps"
+msgstr "erreur lors de la lecture des bitmaps"
+
+#: misc/e2image.c:1415
+msgid "while opening device file"
+msgstr "lors de l'ouverture du fichier de périphérique"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "lors de l'écriture de la table d'i-noeuds"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr "L'option -a ne peut être utilisée qu'avec les images brutes ou QCOW2."
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr "Les décalages ne sont autorisés qu'avec les images brutes."
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr "Le mode de déplacement n'est autorisé qu'avec les images brutes."
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr "Le mode de déplacement nécessite tous les mode de données."
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr "vérification de montage existant"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+"\n"
+"Lancer e2image sur un système de fichier monté en écriture peut\n"
+"produire une image incohérente qui ne sera pas utile pour des fins\n"
+"de débuggage. Utilisez l'option -f si vous voulez réellement faire\n"
+"cela.\n"
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr "Une image QCOW2 ne peut pas être écrite sur stdout !\n"
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr "L'image (%s) est compressée\n"
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr "L'image (%s) est chiffrée\n"
+
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr "lors de l'essai de conversion de l'image qcow2 (%s) en image brute (%s)"
+msgstr ""
+"lors de l'essai de conversion de l'image qcow2 (%s) en image brute (%s)"
+
+#: misc/e2image.c:1639
+msgid "The -c option only supported in raw mode\n"
+msgstr "L'option -c n'est supportée qu'en mode brut\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "L'option -c n'est pas supportée avec écriture sur stdout\n"
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr "lors de l'allocation de check_buf"
+
+#: misc/e2image.c:1657
+msgid "The -p option only supported in raw mode\n"
+msgstr "L'option -p n'est supportée qu'en mode brut\n"
+
+#: misc/e2image.c:1667
+#, fuzzy, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr "%d blocs contenaient déjà les données devant être copiées.\n"
#: misc/e2label.c:58
#, c-format
@@ -3821,7 +4165,7 @@ msgstr "e2label : erreur de lecture du superbloc\n"
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label : n'est pas un système de fichiers ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2073
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Avertissement : étiquette trop longue, sera tronquée.\n"
@@ -3836,15 +4180,15 @@ msgstr "e2label : ne peut atteindre le superbloc à nouveau\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label : erreur lors de l'écriture du superbloc\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
-msgstr "Usage : e2label périphérique [nouvelle_étiquette]\n"
+msgstr "Utilisation : e2label périphérique [nouvelle_étiquette]\n"
#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
-msgstr "Usage : %s <fichier transaction> <système de fichiers>\n"
+msgstr "Utilisation : %s <fichier transaction> <système de fichiers>\n"
#: misc/e2undo.c:52
msgid "Failed to read the file system data \n"
@@ -3876,7 +4220,8 @@ msgstr "Erreur lors la détermination à savoir si %s est monté.\n"
#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
-msgstr "e2undo ne devrait être lancé que sur un système de fichiers non monté\n"
+msgstr ""
+"e2undo ne devrait être lancé que sur un système de fichiers non monté\n"
#: misc/e2undo.c:184
#, c-format
@@ -3893,17 +4238,17 @@ msgstr "Rejeu de la transaction de taille %zd à la position %llu\n"
msgid "Failed write %s\n"
msgstr "Échec écriture %s\n"
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "ATTENTION : impossible d'ouvrir %s : %s\n"
-#: misc/fsck.c:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "ATTENTION : format erroné sur la ligne %d de %s\n"
-#: misc/fsck.c:371
+#: misc/fsck.c:370
msgid ""
"WARNING: Your /etc/fstab does not contain the fsck passno\n"
"\tfield. I will kludge around things for you, but you\n"
@@ -3916,37 +4261,39 @@ msgstr ""
"\tpossible.\n"
"\n"
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck : %s : non trouvé\n"
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s : wait : plus de processus fils ?!?\n"
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
-msgstr "Avertissement... %s pour le périphérique %s s'est terminé avec le signal %d.\n"
+msgstr ""
+"Avertissement... %s pour le périphérique %s s'est terminé avec le signal "
+"%d.\n"
-#: misc/fsck.c:623
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s : l'état est %x, ne devrait jamais se produire.\n"
-#: misc/fsck.c:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "Terminé avec %s (état de fin d'exécution %d)\n"
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s : Erreur %d lors de l'exécution de fsck.%s pour %s\n"
-#: misc/fsck.c:743
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3954,39 +4301,47 @@ msgstr ""
"Soit tous ou aucun des types de systèmes de fichiers passés à -t doivent\n"
"être préfixés par « no » ou « ! ».\n"
-#: misc/fsck.c:762
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
-msgstr "Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n"
+msgstr ""
+"Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n"
-#: misc/fsck.c:885
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
-msgstr "%s : saut de la mauvaise ligne de /etc/fstab : montage « bind » avec un numéro de passe fsck non nul\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
+msgstr ""
+"%s : saut de la mauvaise ligne de /etc/fstab : montage « bind » avec un "
+"numéro de passe fsck non nul\n"
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck : ne peut pas vérifier %s : fsck.%s non trouvé\n"
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Vérification de tous les systèmes de fichiers.\n"
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--en attente-- (passe %d)\n"
-#: misc/fsck.c:1079
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr "Usage : fsck [-AMNPRTV] [ -C [ fd ] ] [-t type_sys_fichiers] [options_sys_fichiers] [sys_fichiers...]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr ""
+"Utilisation : fsck [-AMNPRTV] [ -C [ fd ] ] [-t type_sys_fichiers] "
+"[options_sys_fichiers] [sys_fichiers...]\n"
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s : trop de périphériques\n"
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s : trop d'arguments\n"
@@ -3994,7 +4349,7 @@ msgstr "%s : trop d'arguments\n"
#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
-msgstr "Usage : %s [-RVadlv] [fichiers...]\n"
+msgstr "Utilisation : %s [-RVadlv] [fichiers...]\n"
#: misc/lsattr.c:84
#, c-format
@@ -4006,56 +4361,64 @@ msgstr "Lors de la lecture des drapeaux sur %s"
msgid "While reading version on %s"
msgstr "Lors de la lecture de la version sur %s"
-#: misc/mke2fs.c:116
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
-"Usage : %s [-c|-l nom-de-fichier] [-b taille-de-bloc] [-C taille-de-cluster]\n"
+"Utilisation : %s [-c|-l nom-de-fichier] [-b taille-de-bloc] [-C taille-de-"
+"cluster]\n"
"\t[-i octets-par-i-noeud] [-I taille-des-i-noeuds]\n"
-"\t[-J options-de-journal] [-G taille-méta-groupe] [-N nombre-d-i-noeuds]\n"
+"\t[-J options-de-journal] [-G taille-groupe-flex] [-N nombre-d-i-noeuds]\n"
"\t[-m pourcentage-de-blocs-réservés]\n"
"\t[-o système-d-exploitation-de-création] [-g blocs-par-groupe]\n"
"\t[-L étiquette-du-volume] [-M dernier-répertoire-monté]\n"
"\t[-O fonctionnalité[,...]] [-r révision-du-système-de-fichiers]\n"
-"\t[-E option-étendue[,...]] [-T type-système-de-fichiers] [-U UUID]\n"
-"\t[-jnqvFKSV] périphérique [nombre-de-blocs]\n"
+"\t[-E option-étendue[,...]] [-t type-système-de-fichiers] [-T type-"
+"d'utilisation]\n"
+"\t[-U UUID] [-jnqvFKSV] périphérique [nombre-de-blocs]\n"
-#: misc/mke2fs.c:218
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Exécution de la commande : %s\n"
-#: misc/mke2fs.c:222
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "durant la tentative d'exécution de « %s »"
-#: misc/mke2fs.c:229
+#: misc/mke2fs.c:261
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:256
+#: misc/mke2fs.c:288
#, 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:258
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
-msgstr "Les blocs de %u à %u doivent être en bon état pour générer le système de fichiers.\n"
+msgstr ""
+"Les blocs de %u à %u doivent être en bon état pour générer le système de "
+"fichiers.\n"
-#: misc/mke2fs.c:261
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Arrêt immédiat...\n"
-#: misc/mke2fs.c:281
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -4066,15 +4429,15 @@ msgstr ""
"\tbloc %u contiennent des blocs défectueux.\n"
"\n"
-#: misc/mke2fs.c:300
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "lors du marquage des blocs défectueux en tant qu'utilisés"
-#: misc/mke2fs.c:317
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Écriture des tables d'i-noeuds : "
-#: misc/mke2fs.c:338
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
@@ -4083,72 +4446,79 @@ msgstr ""
"\n"
"Impossible d'écrire %d blocs dans la table d'i-noeuds débutant à %llu : %s\n"
-#: misc/mke2fs.c:352 misc/mke2fs.c:2170 misc/mke2fs.c:2422
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
msgstr "complété \n"
-#: misc/mke2fs.c:363
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "lors de la création du répertoire racine"
-#: misc/mke2fs.c:370
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "lors de la lecture de l'i-noeud racine"
-#: misc/mke2fs.c:384
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "lors de l'initialisation de la propriété de l'i-noeud racine"
-#: misc/mke2fs.c:402
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "lors de la création de /lost+found"
-#: misc/mke2fs.c:409
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "lors de la recherche de /lost+found"
-#: misc/mke2fs.c:422
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "lors de l'extension de /lost+found"
-#: misc/mke2fs.c:437
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "lors de l'initialisation de l'i-noeud des blocs défectueux"
-#: misc/mke2fs.c:464
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Mémoire épuisée lors de l'effacement des secteurs %d-%d\n"
-#: misc/mke2fs.c:474
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Avertissement : impossible de lire le bloc 0 : %s\n"
-#: misc/mke2fs.c:490
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Avertissement : impossible d'effacer le secteur %d : %s\n"
-#: misc/mke2fs.c:506
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "lors de l'initialisation du journal du superbloc"
-#: misc/mke2fs.c:514
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Mise à zéro du périphérique de journal : "
-#: misc/mke2fs.c:526
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
-msgstr "lors de la mise à zéro du périphérique de journal (bloc %llu, compte %d)"
+msgstr ""
+"lors de la mise à zéro du périphérique de journal (bloc %llu, compte %d)"
-#: misc/mke2fs.c:544
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "lors de l'écriture du superbloc de journal"
-#: misc/mke2fs.c:559
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"En train de redimensionner le système de fichiers sur %s à %llu (%dk) "
+"blocs.\n"
+
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
@@ -4157,127 +4527,164 @@ msgstr ""
"Avertissement : %llu blocs inutilisés.\n"
"\n"
-#: misc/mke2fs.c:564
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Étiquette de système de fichiers=%s\n"
-#: misc/mke2fs.c:567
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr "Type de système d'exploitation : %s\n"
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Taille de bloc=%u (log=%u)\n"
-#: misc/mke2fs.c:573
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Taille de cluster=%u (log=%u)\n"
-#: misc/mke2fs.c:577
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Taille de fragment=%u (log=%u)\n"
-#: misc/mke2fs.c:579
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "« Stride » = %u blocs, « Stripe width » = %u blocs\n"
-#: misc/mke2fs.c:581
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u i-noeuds, %llu blocs\n"
-#: misc/mke2fs.c:583
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu blocs (%2.2f%%) réservés pour le super utilisateur\n"
-#: misc/mke2fs.c:586
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Premier bloc de données=%u\n"
-#: misc/mke2fs.c:588
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr "Propriétaire du répertoire racine=%u:%u\n"
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Nombre maximum de blocs du système de fichiers=%lu\n"
-#: misc/mke2fs.c:592
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u groupes de blocs\n"
-#: misc/mke2fs.c:594
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u groupe de bloc\n"
-#: misc/mke2fs.c:597
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u blocs par groupe, %u clusters par groupe\n"
-#: misc/mke2fs.c:600
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u blocs par groupe, %u fragments par groupe\n"
-#: misc/mke2fs.c:602
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u i-noeuds par groupe\n"
-#: misc/mke2fs.c:609
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Étiquette de système de fichiers=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Superblocs de secours stockés sur les blocs : "
-#: misc/mke2fs.c:688 misc/tune2fs.c:1165
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr "%s nécessite '-O 64bit'\n"
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr "'%s' doit être avant 'resize=%u'\n"
+
+#: misc/mke2fs.c:783
+#, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "desc_size invalide: '%s'\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "taille d'i-noeud invalide - %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "mmp_update_interval invalide : %s\n"
-#: misc/mke2fs.c:702
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Paramètre de superbloc invalide : %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Paramètre « stride » invalide : %s\n"
-#: misc/mke2fs.c:717
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Paramètre « stripe-width » invalide : %s\n"
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Paramètre de changement de taille invalide : %s\n"
-#: misc/mke2fs.c:747
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
"La taille maximale de l'agrandissement doit être plus grande que la taille\n"
"du système de fichiers.\n"
-#: misc/mke2fs.c:771
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"Le changement de taille en ligne n'est pas supportée avec les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:809
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "root_owner invalide : « %s »\n"
+
+#: misc/mke2fs.c:976
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Paramètre de type de quota invalide : %s\n"
-#: misc/mke2fs.c:820
-#, c-format
+#: misc/mke2fs.c:987
+#, fuzzy, c-format
msgid ""
"\n"
"Bad option(s) specified: %s\n"
@@ -4286,11 +4693,17 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -4309,13 +4722,15 @@ msgstr ""
"\tresize=<taille maximale de changement de taille en blocs>\n"
"\tlazy_itable_init=<0 pour désactiver, 1 pour activer>\n"
"\tlazy_journal_init=<0 pour désactiver, 1 pour activer>\n"
+"\troot_uid=<uid du répertoire racine>\n"
+"\troot_gid=<gid du répertoire racine>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
"\tquotatype=<usr OU grp>\n"
"\n"
-#: misc/mke2fs.c:840
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4323,10 +4738,11 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Attention : le « stripe-width » RAID %u n'est pas multiple impair du « stride » %u.\n"
+"Attention : le « stripe-width » RAID %u n'est pas multiple impair du "
+"« stride » %u.\n"
"\n"
-#: misc/mke2fs.c:879
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4336,17 +4752,17 @@ msgstr ""
"\t(%s, ligne n°%d)\n"
"\t%s\n"
-#: misc/mke2fs.c:892 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Jeu d'options de système de fichiers invalide : %s\n"
-#: misc/mke2fs.c:904 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Jeu d'options pour le montage invalide : %s\n"
-#: misc/mke2fs.c:1042
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
@@ -4356,8 +4772,7 @@ msgstr ""
"Votre mke2fs.conf ne précise pas le type de système de fichiers de\n"
"%s.\n"
-#: misc/mke2fs.c:1046
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
@@ -4365,12 +4780,11 @@ msgstr ""
"Il vous faut sans doute installer un fichier mke2fs.conf mis à jour.\n"
"\n"
-#: misc/mke2fs.c:1050
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr "Arrêt immédiat...\n"
-#: misc/mke2fs.c:1090
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4381,122 +4795,129 @@ msgstr ""
"Avertissement : le fs_type %s n'est pas défini dans mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1248
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Impossible d'allouer de la mémoire pour un nouveau chemin.\n"
-#: misc/mke2fs.c:1289
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "N'a pu initialiser le profilage correctement (erreur : %ld).\n"
-#: misc/mke2fs.c:1329
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "taille invalide des blocs - %s"
-#: misc/mke2fs.c:1333
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
"Avertissement : la taille de bloc %d n'est pas utilisable\n"
"sur la plupart des systèmes.\n"
-#: misc/mke2fs.c:1349
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
msgstr "taille de cluster invalide - %s"
-#: misc/mke2fs.c:1358
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr "« -R » est déprécié, utiliser plutôt « -E »"
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Nombre de blocs par groupe illégal"
-#: misc/mke2fs.c:1363
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "le nombre de blocs par groupe doit être un multiple de 8"
-#: misc/mke2fs.c:1371
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Nombre illégal pour la taille flex_bg"
-#: misc/mke2fs.c:1377
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "La taille flex_bg doit être une puissance de 2"
-#: misc/mke2fs.c:1387
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "taux d'i-noeuds invalides %s (min %d/max %d)"
-#: misc/mke2fs.c:1397
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
-msgstr "Avertissement : l'option -K est dépréciée et ne devrait plus être utilisée. Utiliser plutôt l'option étendue « -E nodiscard » !\n"
+msgid "invalid inode size - %s"
+msgstr "taille d'i-noeud invalide - %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+"Avertissement : l'option -K est dépréciée et ne devrait plus être utilisée. "
+"Utiliser plutôt l'option étendue « -E nodiscard » !\n"
-#: misc/mke2fs.c:1411
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "dans malloc pour bad_blocks_filename"
-#: misc/mke2fs.c:1421
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "pourcentage de blocs réservés invalide - %s"
-#: misc/mke2fs.c:1439
-#, c-format
-msgid "bad revision level - %s"
-msgstr "mauvais numéro de version - %s"
-
-#: misc/mke2fs.c:1451
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "taille d'i-noeud invalide - %s"
-
-#: misc/mke2fs.c:1471
+#: misc/mke2fs.c:1642
#, c-format
msgid "bad num inodes - %s"
msgstr "mauvais nombre d'i-noeuds - %s"
-#: misc/mke2fs.c:1488
+#: misc/mke2fs.c:1659
+#, c-format
+msgid "bad revision level - %s"
+msgstr "mauvais numéro de version - %s"
+
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
msgstr "L'option -t ne peut être spécifiée qu'une fois"
-#: misc/mke2fs.c:1496
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
msgstr "L'option -T ne peut être spécifiée qu'une fois"
-#: misc/mke2fs.c:1546 misc/mke2fs.c:2490
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "lors de la tentative d'ouverture du périphérique de journal %s\n"
-#: misc/mke2fs.c:1552
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
"la taille de bloc du périphérique de journal (%d) est plus petit que la\n"
"taille de blocs minimum %d\n"
-#: misc/mke2fs.c:1558
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Utilisation de la taille de bloc du périphérique de journal : %d\n"
-#: misc/mke2fs.c:1569
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "blocs '%s' invalides sur le périphérique %s"
-#: misc/mke2fs.c:1579
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "système de fichiers"
-#: misc/mke2fs.c:1592 resize/main.c:379
+#: misc/mke2fs.c:1790 resize/main.c:368
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:1598
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4504,7 +4925,7 @@ msgstr ""
"Ne peut déterminer la taille du périphérique ; vous devez spécifier\n"
"la taille du système de fichiers\n"
-#: misc/mke2fs.c:1605
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4517,16 +4938,38 @@ msgstr ""
"\toccupée et utilisée. Vous devez ré-amorcer pour forcer une\n"
"\trelecture de la table de partitions.\n"
-#: misc/mke2fs.c:1622
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr "Système de fichiers plus grand que la taille apparente du périphérique"
-#: misc/mke2fs.c:1642
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "Échec du parcours de la liste de types de systèmes de fichiers\n"
-#: misc/mke2fs.c:1696
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr ""
+"lors de la tentative de détermination de la taille matérielle de secteur"
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr "lors de la tentative de détermination de la taille de secteur matériel"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr ""
+"lors de la définition de la taille de bloc ; trop petite pour le "
+"périphérique\n"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+"Avertissement : la taille de bloc %d spécifiée est plus petite que la taille "
+"de secteur physique %d\n"
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
@@ -4535,119 +4978,142 @@ msgstr ""
"%s: La taille (0x%llx blocs) du périphérique %s est trop grande pour\n"
"\tpouvoir être exprimée sur 32 bits en utilisant une taille de bloc de %d.\n"
-#: misc/mke2fs.c:1712
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
msgstr "résolution de fs_types pour mke2fs.conf : "
-#: misc/mke2fs.c:1719
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
"Fonctionnalités du système de fichiers non supportées par les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:1726
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"Les superblocs creux ne sont pas supportés par les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:1738
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
"Les journaux ne sont pas supportés par les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:1752
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "pourcentage de blocs réservés invalide - %lf"
-#: misc/mke2fs.c:1768
-#, c-format
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-"Les fonctionnalités resize_inode et meta_bg ne sont pas compatibles.\n"
-"Elles ne peuvent pas être activées simultanément.\n"
-
-#: misc/mke2fs.c:1785
-msgid "while trying to determine hardware sector size"
-msgstr "lors de la tentative de détermination de la taille matérielle de secteur"
+"Les extents DOIVENT être activées pour un système de fichiers 64 bit. "
+"Passez -O extents pour corriger.\n"
-#: misc/mke2fs.c:1791
-msgid "while trying to determine physical sector size"
-msgstr "lors de la tentative de détermination de la taille de secteur matériel"
-
-#: misc/mke2fs.c:1824
-msgid "while setting blocksize; too small for device\n"
-msgstr "lors de la définition de la taille de bloc ; trop petite pour le périphérique\n"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr ""
+"La taille d'un cluster ne peut pas être plus petite que la taille d'un "
+"bloc.\n"
-#: misc/mke2fs.c:1829
-#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr "Avertissement : la taille de bloc %d spécifiée est plus petite que la taille de secteur physique %d\n"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr "Spécifier une taille de cluster nécessite la fonctionalité bigalloc"
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "attention : Impossible d'obtenir la géométrie du périphérique %s\n"
-#: misc/mke2fs.c:1863
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "L'alignement de %s est décalé de %lu octets.\n"
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2072
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr "Cela peut induire de très mauvaises performances, il est suggéré de (re)-partitionner.\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+"Cela peut induire de très mauvaises performances, il est suggéré de (re)-"
+"partitionner.\n"
-#: misc/mke2fs.c:1876
+#: misc/mke2fs.c:2093
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "blocs de %d octets trop gros pour le système (max %d)"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:2097
#, c-format
-msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
msgstr ""
"Avertissement : blocs de %d octets trop gros pour le système (max %d),\n"
"poursuite forcée\n"
-#: misc/mke2fs.c:1915
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+"La fonctionalité bigalloc ne peut pas être supportée sans la fonctionalité "
+"extent"
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"Les fonctionnalités resize_inode et meta_bg ne sont pas compatibles.\n"
+"Elles ne peuvent pas être activées simultanément.\n"
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+"\n"
+"Avertissement : la fonctionalité bigalloc est encore en cours de "
+"développement\n"
+"Voir https://ext4.wiki.kernel.org/index.php/Bigalloc pour plus "
+"d'informations\n"
+"\n"
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"la réservation de blocs de changement de taille en ligne n'est pas\n"
"supportée sur un système de fichiers non creux"
-#: misc/mke2fs.c:1924
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "compteur de blocs par groupe hors limite"
-#: misc/mke2fs.c:1939
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr "La fonctionnalité flex_bg n'est pas activée, la taille flex_bg ne peut donc pas être spécifiée"
+msgstr ""
+"La fonctionnalité flex_bg n'est pas activée, la taille flex_bg ne peut donc "
+"pas être spécifiée"
-#: misc/mke2fs.c:1951
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "taille d'i-noeud invalide %d (min %d/max %d)"
-#: misc/mke2fs.c:1969
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "trop d'i-noeuds (%llu), augmenter le ratio d'i-noeuds ?"
-#: misc/mke2fs.c:1976
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "trop d'i-noeuds (%llu), indiquer < 2^32 i-noeuds"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
@@ -4658,53 +5124,54 @@ msgstr ""
"\tsystème de fichiers avec %llu blocs, indiquer un ratio_i_noeud (-i)\n"
"\tplus grand ou un nombre d'i-noeud plus petit (-N).\n"
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Écrasement du système de fichiers existant ; cela peut être défait en utilisant la commande :\n"
+"Écrasement du système de fichiers existant ; cela peut être défait en "
+"utilisant la commande :\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2123
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
msgstr "lors de la tentative de mise en place du fichier d'annulation\n"
-#: misc/mke2fs.c:2149
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
msgstr "Rejet des blocs de périphérique : "
-#: misc/mke2fs.c:2165
+#: misc/mke2fs.c:2439
msgid "failed - "
msgstr "échoué - "
-#: misc/mke2fs.c:2270
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "lors de l'initialisation du superbloc"
-#: misc/mke2fs.c:2279
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr "L'effacement a réussi et retournera des 0s - saut de l'effacement de la table des i-noeuds\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+"La libération a réussi et retournera des 0s - inutile d'effacer la table des "
+"i-noeuds\n"
-#: misc/mke2fs.c:2362
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "système d'exploitation inconnu - %s"
-#: misc/mke2fs.c:2414
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr "Allocation des tables de groupe : "
-#: misc/mke2fs.c:2418
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "lors de la tentative d'allocation des tables de systèmes de fichiers"
-#: misc/mke2fs.c:2427
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
@@ -4712,25 +5179,25 @@ msgstr ""
"\n"
"\tlors de la conversion du bitmap de sous-cluster"
-#: misc/mke2fs.c:2459
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "lors de la mise à zéro du bloc %llu à la fin du système de fichiers"
-#: misc/mke2fs.c:2472
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "lors de la réservation de blocs pour un changement de taille en ligne"
-#: misc/mke2fs.c:2483 misc/tune2fs.c:640
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "journal"
-#: misc/mke2fs.c:2495
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Ajout du journal au périphérique %s : "
-#: misc/mke2fs.c:2502
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4739,44 +5206,50 @@ msgstr ""
"\n"
"\tlors de la tentative d'ajout d'un journal au périphérique %s"
-#: misc/mke2fs.c:2507 misc/mke2fs.c:2539 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "complété\n"
-#: misc/mke2fs.c:2516
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr "Pas de création de journal en mode super-seul\n"
-#: misc/mke2fs.c:2527
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Création du journal (%u blocs) : "
-#: misc/mke2fs.c:2546 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tlors de la tentative de création du journal"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
"\n"
-"Erreur lors de l'activation de la fonctionnalité de protection contre le montage multiple."
+"Erreur lors de l'activation de la fonctionnalité de protection contre le "
+"montage multiple."
-#: misc/mke2fs.c:2551
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr "La protection contre le montage multiple est activée avec un intervale de mise à jour de %d secondes.\n"
+msgstr ""
+"La protection contre le montage multiple est activée avec un intervale de "
+"mise à jour de %d secondes.\n"
-#: misc/mke2fs.c:2564
-#, c-format
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
"Écriture des superblocs et de l'information de comptabilité du système de\n"
"fichiers : "
-#: misc/mke2fs.c:2571
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4784,8 +5257,7 @@ msgstr ""
"\n"
"Attention, des problèmes sont survenus lors de l'écriture des superblocs."
-#: misc/mke2fs.c:2573
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4794,9 +5266,8 @@ msgstr ""
"\n"
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
-msgstr "Usage : mklost+found\n"
+msgstr "Utilisation : mklost+found\n"
#: misc/partinfo.c:41
#, c-format
@@ -4807,7 +5278,7 @@ msgid ""
"For example: %s /dev/hda\n"
"\n"
msgstr ""
-"Usage : %s périphérique...\n"
+"Utilisation : %s périphérique...\n"
"\n"
"Imprime l'information de partition pour chaque périphérique indiqué.\n"
"Par exemple : %s /dev/hda\n"
@@ -4832,51 +5303,54 @@ msgstr "Impossible d'obtenir la taille de %s : %s"
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s : h=%3d s=%3d c=%4d début=%8d taille=%8lu fin=%8d\n"
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "SVP exécutez e2fsck sur le système de fichiers.\n"
-#: misc/tune2fs.c:116
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-"Usage : %s [-c limite-maximale-de-montage]\n"
+"Utilisation : %s [-c limite-maximale-de-montage]\n"
"\t[-e comportement-en-cas-d-erreur] [-g groupe]\n"
"\t[-i intervalle[d|m|w]] [-j] [-J options-journal] [-l]\n"
"\t[-m pourcentage-de-blocs-réservés] [-o [^]options-de-montage[,...]]\n"
"\t[-p intervale-mise-à-jour-mmp] [-r nombre-de-blocs-réservés]\n"
"\t[-u utilisateur] [-C nombre-de-montage] [-L étiquette-du-volume]\n"
"\t[-M dernier-répertoire-monté] [-O [^]fonctionnalité[,...]]\n"
+"\t[-Q options-de-quota]\n"
"\t[-E option-étendue[,...]] [-T date-de-dernière-vérification]\n"
"\t[-U UUID] [-I nouvelle-taille-i-noeuds] périphérique\n"
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "lors de la tentative d'ouverture du journal externe"
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s n'est pas un périphérique de journal.\n"
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Le superbloc de journal n'a pas été trouvé !\n"
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr ""
"L'UUID du système de fichiers n'a pas été trouvé sur le périphérique de\n"
"journal.\n"
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
@@ -4884,42 +5358,41 @@ msgstr ""
"Ne peut repérer le périphérique de journal. Il n'a PAS été supprimé\n"
"Utiliser l'option -f pour supprimer le périphérique de journal manquant.\n"
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Journal enlevé\n"
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "lors de la lecture des bitmaps"
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "lors de l'effacement de l'i-noeud du journal"
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "lors de l'écriture de l'i-noeud du journal"
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
msgstr "(et rebootez après !)\n"
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr ""
"La suppression de la fonctionnalité de système de fichiers '%s' n'est pas\n"
"supportée.\n"
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr ""
"L'ajout de la fonctionnalité de système de fichiers '%s' n'est pas\n"
"supporté.\n"
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4927,7 +5400,7 @@ msgstr ""
"La fonctionnalitié has_journal peut être désactivée uniquement lorsque le\n"
"système de fichiers est démonté ou monté en lecture seule.\n"
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4935,7 +5408,16 @@ msgstr ""
"Le drapeau needs_recovery est activé. SVP exécutez e2fsck avant\n"
"de désactiver le drapeau has_journal.\n"
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Changer la taille des i-noeuds n'est pas supporté pour les systèmes de\n"
+"fichiers avec la fonctionalité flex_bg activée.\n"
+
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
@@ -4945,12 +5427,14 @@ msgstr ""
"montages multiples ne peut être activée lorsque\n"
"le système de fichier est monté ou en lecture seule.\n"
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr "La protection contre le montage multiple a été activée avec un intervale de mise à jour de %ds.\n"
+msgstr ""
+"La protection contre le montage multiple a été activée avec un intervale de "
+"mise à jour de %ds.\n"
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
@@ -4958,26 +5442,29 @@ msgstr ""
"La fonctionnalité de protection contre le montage multiple ne peut\n"
"être désactivée si le système de fichiers est en lecture seule.\n"
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
msgstr "Erreur lors de la lecture des bitmaps\n"
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr "Le numéro magique dans le bloc MMP ne correspond pas. attendu : %x, actuel : %x\n"
+msgstr ""
+"Le numéro magique dans le bloc MMP ne correspond pas. attendu : %x, actuel : "
+"%x\n"
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
msgstr "lors de la lecture du bloc MMP."
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
-msgstr "Effacer le drapeau flex_bg rendrait le système de fichiers incohérent.\n"
+msgstr ""
+"Effacer le drapeau flex_bg rendrait le système de fichiers incohérent.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4985,7 +5472,7 @@ msgstr ""
"La fonctionnalité huge_file peut être désactivée uniquement lorsque le\n"
"système de fichiers est démonté ou monté en lecture seule.\n"
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
@@ -4993,11 +5480,11 @@ msgstr ""
"\n"
"Avertissement : l'option « ^quota » supplante les arguments « -Q ».\n"
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Le système de fichiers a déjà un journal.\n"
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -5006,21 +5493,21 @@ msgstr ""
"\n"
"\tlors de la tentative d'ouverture du journal sur %s\n"
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Création du journal sur le périphérique %s : "
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "lors de l'ajout du système de fichiers au journal sur %s"
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Création de l'i-noeud du journal : "
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -5028,16 +5515,18 @@ msgstr ""
"\n"
"\tlors de la tentative de création du fichier journal"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
-msgstr "Impossible d'allouer de la mémoire pour analyser les options de quota !\n"
+msgstr ""
+"Impossible d'allouer de la mémoire pour analyser les options de quota !\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
@@ -5046,104 +5535,109 @@ msgstr ""
"\n"
"Une ou des options de quota spécifiées sont erronées.\n"
"\n"
-"Les options de quota suivantes sont disponibles (les fournir séparées par des virgules):\n"
+"Les options de quota suivantes sont disponibles (les fournir séparées par "
+"des virgules):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Ne peut analyser la spécification de date/heure : %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "compteur de montages erroné - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "mauvais comportement en cas d'erreur - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "nom gid/groupe erroné - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "intervalle erroné - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "taux de blocs réservés erroné - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o ne peut être spécifié qu'une fois"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O ne peut être spécifié qu'une fois"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "compteur de blocs réservés erroné - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "nom utilisateur/uid erroné - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "taille d'i-noeud invalide - %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "La taille des i-noeuds doit être une puissance de deux - %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "mmp_update_interval trop grand : %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] "Définition de l'intervale de mise à jour de la protection contre les montages multiples à %lu seconde\n"
-msgstr[1] "Définition de l'intervale de mise à jour de la protection contre les montages multiples à %lu secondes\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] ""
+"Définition de l'intervale de mise à jour de la protection contre les "
+"montages multiples à %lu seconde\n"
+msgstr[1] ""
+"Définition de l'intervale de mise à jour de la protection contre les "
+"montages multiples à %lu secondes\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Paramètre « stride RAID » invalide : %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Paramètre « stripe-width RAID » invalide : %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Algorithme de hachage invalide : %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Définition de l'algorithme de hachage par défaut à %s (%d)\n"
-#: misc/tune2fs.c:1257
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -5175,31 +5669,33 @@ msgstr ""
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
msgstr "Échec de lecture du bitmap d'i-noeuds\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
msgstr "Échec de lecture du bitmap de bloc\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "blocs à déplacer"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr "N'a pu allouer de bitmap de blocs lors d'une augmentation de taille d'i-noeud \n"
+msgstr ""
+"N'a pu allouer de bitmap de blocs lors d'une augmentation de taille d'i-"
+"noeud \n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr "Pas assez d'espace pour augmenter la taille d'i-noeud \n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
msgstr "N'a pu reloger des blocs lors d'un changement de taille d'i-noeud \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
@@ -5207,16 +5703,16 @@ msgstr ""
"Erreur lors du changement de la taille des i-noeuds.\n"
"Exécutez e2undo pour défaire les changements du système de fichiers. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Impossible d'allouer de la mémoire pour le nom du fichier tdb\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
msgstr "lors de la tentative d'effacement de %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -5227,71 +5723,76 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-"Le numéro magique du bloc MMP est incorrect. Essayer de le corriger en lançant:\n"
+"Le numéro magique du bloc MMP est incorrect. Essayer de le corriger en "
+"lançant:\n"
"'e2fsck -f %s'\n"
-#: misc/tune2fs.c:1936
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr "La taille des i-noeuds est déjà %lu\n"
-#: misc/tune2fs.c:1942
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
+msgstr "La réduction de la taille d'un i-noeud n'est pas supportée\n"
+
+#: misc/tune2fs.c:1987
#, c-format
-msgid "Shrinking the inode size is not supported\n"
-msgstr "La réduction de la taille des i-noeuds n'est pas supportée\n"
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "Taille d'i-noeud invalide %lu (max %d)\n"
-#: misc/tune2fs.c:1989
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Définition du nombre maximal de montages à %d\n"
-#: misc/tune2fs.c:1995
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Définition du nombre courant de montages à %d\n"
-#: misc/tune2fs.c:2000
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Définition du comportement en cas d'erreur à %d\n"
-#: misc/tune2fs.c:2005
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Définition du gid des blocs réservés à %lu\n"
-#: misc/tune2fs.c:2010
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "l'intervalle entre les vérifications est trop grand (%lu)"
-#: misc/tune2fs.c:2017
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Définition de l'intervalle de vérification à %lu secondes\n"
-#: misc/tune2fs.c:2024
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Définition du pourcentage de blocs réservés à %g%% (%llu blocs)\n"
-#: misc/tune2fs.c:2030
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "le nombre de blocs réservés est trop grand (%llu)"
-#: misc/tune2fs.c:2037
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Définition du nombre de blocs réservés à %llu\n"
-#: misc/tune2fs.c:2043
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -5299,7 +5800,17 @@ msgstr ""
"\n"
"Le système de fichiers a déjà des superblocs creux.\n"
-#: misc/tune2fs.c:2050
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Changer la taille des i-noeuds n'est pas supporté pour les systèmes de\n"
+"fichiers avec la fonctionalité flex_bg activée.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -5308,45 +5819,56 @@ msgstr ""
"\n"
"Drapeau de superbloc creux activé. %s"
-#: misc/tune2fs.c:2055
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
"La suppression du superflag creux n'est pas supportée.\n"
-#: misc/tune2fs.c:2063
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr ""
"Définition de la date de la dernière vérification du système de\n"
"fichiers à %s\n"
-#: misc/tune2fs.c:2069
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Définition de l'uid de blocs réservés à %lu\n"
-#: misc/tune2fs.c:2101
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
-msgstr "Erreur lors de l'utilisation de clear_mmp. Elle doit être utilisée avec -f\n"
+msgstr ""
+"Erreur lors de l'utilisation de clear_mmp. Elle doit être utilisée avec -f\n"
-#: misc/tune2fs.c:2119
-msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr "La fonctionalité de quota ne peut être changée que lorsque le système de fichiers est démonté.\n"
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"La fonctionalité de quota ne peut être changée que lorsque le système de "
+"fichiers est démonté.\n"
+
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"L'UUID ne peut être changé que lorsque le système\n"
+"de fichiers et démonté.\n"
-#: misc/tune2fs.c:2152
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Format UUID invalide\n"
-#: misc/tune2fs.c:2165
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"La taille des i-noeuds ne peut être changée que lorsque le système\n"
"de fichiers et démonté.\n"
-#: misc/tune2fs.c:2173
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
@@ -5354,41 +5876,80 @@ msgstr ""
"Changer la taille des i-noeuds n'est pas supporté pour les systèmes de\n"
"fichiers avec la fonctionalité flex_bg activée.\n"
-#: misc/tune2fs.c:2186
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Définition de la taille des i-noeuds à %lu\n"
-#: misc/tune2fs.c:2189
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
msgstr "N'a pu changer la taille d'i-noeud \n"
-#: misc/tune2fs.c:2200
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Définition de la taille de « stride » à %d\n"
-#: misc/tune2fs.c:2205
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Définition de la taille du « stripe width » à %d\n"
-#: misc/tune2fs.c:2212
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "Définition des options de montage étendues par défaut à « %s »\n"
-#: misc/util.c:74
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Procéder malgré tout ? (o,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Procéder malgré tout ? (o,n) "
-#: misc/util.c:89
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "compteur de montages erroné - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "compteur de montages erroné - %s"
+
+#: misc/util.c:135
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Ne peut évaluer par stat() %s --- %s\n"
+msgid "\tcreated on %s"
+msgstr ""
-#: misc/util.c:92
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "fichier normal"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "Impossible d'ouvrir %s : %s"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -5397,36 +5958,46 @@ msgstr ""
"Le périphérique n'existe apparemment pas ; l'avez-vous spécifié\n"
"correctement ?\n"
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s n'est pas un périphérique spécial en mode bloc.\n"
-#: misc/util.c:132
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " contient un système de fichiers comportant des erreurs"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " contient un système de fichiers comportant des erreurs"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s est le périphérique en intégralité, pas seulement une partition !\n"
-#: misc/util.c:154
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"l'exécution de mke2fs est tout de même forcée.\n"
"Espérons que /etc/mtab est incorrect.\n"
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "ne fera pas un %s ici !\n"
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "l'exécution de mke2fs est tout de même forcée.\n"
-#: misc/util.c:182
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr "N'a pu allouer de la mémoire pour analyser les options du journal !\n"
-#: misc/util.c:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
@@ -5435,7 +6006,8 @@ msgstr ""
"\n"
"N'a pu trouver le périphérique de journal correspondant à %s\n"
-#: misc/util.c:228
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5446,6 +6018,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -5464,7 +6037,7 @@ msgstr ""
"système de fichiers.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -5472,7 +6045,7 @@ msgstr ""
"\n"
"Le système de fichiers est trop petit pour un journal\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5483,7 +6056,7 @@ msgstr ""
"La taille demandée du journal est de %d blocs ; elle doit être\n"
"entre 1024 et 10240000 blocs. Arrêt immédiat.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -5491,7 +6064,7 @@ msgstr ""
"\n"
"La taille du journal est trop grande pour le système de fichiers.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -5504,7 +6077,7 @@ msgstr ""
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr "Usage : %s [-d] [-p fichier-pid] [-s chemin-socket] [-T délai]\n"
+msgstr "Utilisation : %s [-d] [-p fichier-pid] [-s chemin-socket] [-T délai]\n"
#: misc/uuidd.c:50
#, c-format
@@ -5611,7 +6184,6 @@ msgstr[0] "%s et UUID suivant\n"
msgstr[1] "%s et %d UUIDs suivants\n"
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
msgstr "Liste des UUIDs :\n"
@@ -5633,7 +6205,7 @@ msgstr "A tué l'uuid en cours d'exécution sous le pid %d\n"
#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
-msgstr "Usage : %s [-r] [-t]\n"
+msgstr "Utilisation : %s [-r] [-t]\n"
#: resize/extent.c:202
msgid "# Extent dump:\n"
@@ -5644,65 +6216,70 @@ msgstr "# Vidange des extents :\n"
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tNb=%llu, Taille=%llu, Curseur=%llu, Triés=%llu\n"
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Usage : %s [-d drapeaux_de_debug] [-f] [-F] [-M] [ -P] [-p] périphérique\n"
+"Utilisation : %s [-d drapeaux_de_debug] [-f] [-F] [-M] [ -P] [-p] "
+"périphérique\n"
" [nouvelle_taille]\n"
"\n"
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Extension de la table d'i-noeuds"
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Relocalisation de blocs"
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Examen de la table d'i-noeuds"
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Mise à jour des références d'i-noeuds"
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Déplacement de la table d'i-noeuds"
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Passe inconnue ?!?!"
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Début de la passe %d (max = %lu)\n"
-#: resize/main.c:263
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+"\n"
+"Retailler un système de fichier bigalloc n'a pas été complètement testé.\n"
+"Procédez selon votre propre risque ! Utilisez l'option force si vous\n"
+"voulez continuer malgré tout.\n"
+"\n"
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "lors de l'ouverture de %s"
-#: resize/main.c:275
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "lors de la récupérartion de l'état de %s"
-#: resize/main.c:336
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s : La combinaison des fonctionnalités\n"
-"\tflex_bg et !resize_inode n'est pas supportée par resize2fs.\n"
-
-#: resize/main.c:349 resize/main.c:457
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
@@ -5711,30 +6288,30 @@ msgstr ""
"SVP exécutez « e2fsck -f %s » d'abord.\n"
"\n"
-#: resize/main.c:353
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Taille minimale estimée du système de fichiers : %llu\n"
-#: resize/main.c:389
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "taille d'i-noeud invalide - %s\n"
-#: resize/main.c:397
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
msgstr "La nouvelle taille est trop grande pour être exprimée sur 32 bits\n"
-#: resize/main.c:409
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "La nouvelle taille est plus petite que le minimum (%llu)\n"
-#: resize/main.c:415
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr "Longueur « stride » invalide"
-#: resize/main.c:439
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
@@ -5745,7 +6322,7 @@ msgstr ""
"Vous avez demandé une nouvelle taille de %llu blocs.\n"
"\n"
-#: resize/main.c:446
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
@@ -5754,17 +6331,19 @@ msgstr ""
"Le système de fichiers a déjà %llu blocs. Rien à modifier !\n"
"\n"
-#: resize/main.c:461
+#: resize/main.c:456
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
-msgstr "En train de redimensionner le système de fichiers sur %s à %llu (%dk) blocs.\n"
+msgstr ""
+"En train de redimensionner le système de fichiers sur %s à %llu (%dk) "
+"blocs.\n"
-#: resize/main.c:470
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "lors de la tentative de changement de taille de %s"
-#: resize/main.c:473
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
@@ -5773,7 +6352,7 @@ msgstr ""
"Veuillez lancer « e2fsck -fy %s » pour corriger le système de fichiers\n"
"après l'opération de changement de taille avortée.\n"
-#: resize/main.c:479
+#: resize/main.c:474
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
@@ -5782,85 +6361,123 @@ msgstr ""
"Le système de fichiers %s a maintenant une taille de %llu blocs.\n"
"\n"
-#: resize/main.c:494
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
msgstr "lors de la troncature de %s"
-#: resize/online.c:40
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Le noyau ne supporte pas le changement de taille en ligne"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr "Le système de fichiers de %s est monté sur %s ; le changement de taille doit être effectué en ligne\n"
+msgstr ""
+"Le système de fichiers de %s est monté sur %s ; le changement de taille doit "
+"être effectué en ligne\n"
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
msgstr "La réduction en ligne n'est pas supportée"
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
-msgstr "Le système de fichiers ne supporte pas le changement de taille en ligne"
+msgstr ""
+"Le système de fichiers ne supporte pas le changement de taille en ligne"
+
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Pas assez de blocs gdt réservés pour un changement de taille"
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+"Le noyau ne sait pas retailler un système de fichiers d'une telle taille"
-#: resize/online.c:70
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "lors de la tentative d'ouverture du point de montage %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr "Utilisation de l'ancienne interface de changement de taille.\n"
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "Permission de redimensionner le système de fichiers refusée"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "Lors de la vérification du support de changement de taille en ligne"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "Le noyau ne sait pas retailler un système de fichiers d'une telle taille"
-
-#: resize/online.c:119
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
msgstr "Le noyau ne supporte pas le changement de taille en ligne"
-#: resize/online.c:152
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr "En train d'effectuer un changement de taille en ligne de %s vers %llu (%dk) blocs.\n"
+msgstr ""
+"En train d'effectuer un changement de taille en ligne de %s vers %llu (%dk) "
+"blocs.\n"
-#: resize/online.c:162
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr "Lors de la tentative d'étendre le dernier groupe"
-#: resize/online.c:216
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr "Lors de la tentative d'ajout du groupe numéro %d"
-#: resize/online.c:227
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
-msgstr "Le système de fichiers de %s est monté sur %s, et le changement de taille en ligne n'est pas supporté sur ce système.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
+msgstr ""
+"Le système de fichiers de %s est monté sur %s, et le changement de taille en "
+"ligne n'est pas supporté sur ce système.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "le nombre d'i-noeuds (%llu) doit être plus petit que %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "blocs réservés"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "blocs de métadonnées"
-#: resize/resize2fs.c:1735
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "blocs de métadonnées"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
-msgstr "Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n"
+msgstr ""
+"Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n"
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42-WIP"
-msgstr "Librairie EXT2FS version 1.42-WIP"
+#, fuzzy
+msgid "EXT2FS Library version 1.42.10"
+msgstr "Librairie EXT2FS version 1.42.9"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
@@ -5908,7 +6525,8 @@ msgstr "Numéro magique invalide pour la structure io_channel de test"
#: lib/ext2fs/ext2_err.c:23
msgid "Wrong magic number for directory block list structure"
-msgstr "Numéro magique invalide pour la structure de liste de bloc de répertoire"
+msgstr ""
+"Numéro magique invalide pour la structure de liste de bloc de répertoire"
#: lib/ext2fs/ext2_err.c:24
msgid "Wrong magic number for icount structure"
@@ -5944,7 +6562,8 @@ msgstr "Révision de système de fichier trop grande"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Tentative d'écriture dans un système de fichiers ouvert en lecture seule"
+msgstr ""
+"Tentative d'écriture dans un système de fichiers ouvert en lecture seule"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
@@ -5960,11 +6579,13 @@ msgstr "Descripteur de groupe corrompu : bloc invalide pour le bitmap de blocs"
#: lib/ext2fs/ext2_err.c:36
msgid "Corrupt group descriptor: bad block for inode bitmap"
-msgstr "Descripteur de groupe corrompu : bloc invalide pour le bitmap d'i-noeuds"
+msgstr ""
+"Descripteur de groupe corrompu : bloc invalide pour le bitmap d'i-noeuds"
#: lib/ext2fs/ext2_err.c:37
msgid "Corrupt group descriptor: bad block for inode table"
-msgstr "Descripteur de groupe corrompu : bloc invalide pour la table d'i-noeuds"
+msgstr ""
+"Descripteur de groupe corrompu : bloc invalide pour la table d'i-noeuds"
#: lib/ext2fs/ext2_err.c:38
msgid "Can't write an inode bitmap"
@@ -5975,11 +6596,11 @@ msgid "Can't read an inode bitmap"
msgstr "Ne peut lire un bitmap d'i-noeuds"
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
+msgid "Can't write a block bitmap"
msgstr "Ne peut écrire un bitmap de blocs"
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
+msgid "Can't read a block bitmap"
msgstr "Ne peut lire un bitmap de blocs"
#: lib/ext2fs/ext2_err.c:42
@@ -6004,11 +6625,15 @@ msgstr "Répertoire EXT2 corrompu"
#: lib/ext2fs/ext2_err.c:47
msgid "Attempt to read block from filesystem resulted in short read"
-msgstr "La tentative de lecture d'un bloc depuis le système de fichiers a produit une lecture tronquée"
+msgstr ""
+"La tentative de lecture d'un bloc depuis le système de fichiers a produit "
+"une lecture tronquée"
#: lib/ext2fs/ext2_err.c:48
msgid "Attempt to write block to filesystem resulted in short write"
-msgstr "La tentative d'écriture d'un block vers le système de fichiers a produit une écriture tronquée"
+msgstr ""
+"La tentative d'écriture d'un block vers le système de fichiers a produit une "
+"écriture tronquée"
#: lib/ext2fs/ext2_err.c:49
msgid "No free space in the directory"
@@ -6064,11 +6689,13 @@ msgstr "Numéro de blocs illégal passé à ext2fs_test_inode_bitmap"
#: lib/ext2fs/ext2_err.c:62
msgid "Attempt to fudge end of block bitmap past the real end"
-msgstr "Tentative de truquage de la fin du bitmap de blocs au-delà de la fin réelle"
+msgstr ""
+"Tentative de truquage de la fin du bitmap de blocs au-delà de la fin réelle"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr "Tentative de truquage de la fin du bitmap d'i-noeuds au-delà de la fin réelle"
+msgstr ""
+"Tentative de truquage de la fin du bitmap d'i-noeuds au-delà de la fin réelle"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
@@ -6132,7 +6759,9 @@ msgstr "Le système de fichiers a une(des) fonctionnalité(s) non supportée(s)"
#: lib/ext2fs/ext2_err.c:79
msgid "Filesystem has unsupported read-only feature(s)"
-msgstr "Le système de fichiers a une(des) fonctionnalité(s) en lecture seule non supportées"
+msgstr ""
+"Le système de fichiers a une(des) fonctionnalité(s) en lecture seule non "
+"supportées"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
@@ -6288,7 +6917,9 @@ msgstr "La liste de blocs de répertoires ext2fs est vide"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr "Tentative de modification d'un plan de blocs via un itérateur de blocs en lecture seule"
+msgstr ""
+"Tentative de modification d'un plan de blocs via un itérateur de blocs en "
+"lecture seule"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
@@ -6404,11 +7035,14 @@ msgstr "Le canal d'E/S ne supporte pas les numéros de bloc 64-bit"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr "Ne peut pas vérifier si le système de fichiers est monté à cause du manque de fichier mtab"
+msgstr ""
+"Ne peut pas vérifier si le système de fichiers est monté à cause du manque "
+"de fichier mtab"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "Le système de fichier est trop grand pour utiliser l'ancien style de bitmap"
+msgstr ""
+"Le système de fichier est trop grand pour utiliser l'ancien style de bitmap"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
@@ -6438,6 +7072,54 @@ msgstr "MMP : système de fichiers en cours d'utilisation"
msgid "MMP: open with O_DIRECT failed"
msgstr "MMP : l'ouverture avec O_DIRECT a échoué"
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr "Taille du descripteur de groupe de blocs incorrecte."
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr "La somme de contrôle de l'i-noeud ne correspond pas à l'i-noeud"
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr "La somme de contrôle du bitmap d'i-noeud ne correspond pas au bitmap"
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+"La somme de contrôle du block d'extent ne correspond pas au bloc d'extent"
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr "Le bloc de répertoire n'a pas de place pour la somme de contrôle"
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+"La somme de contrôle du bloc de répertoire ne correspond pas au bloc de "
+"répertoire"
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+"La somme de contrôle du bloc d'attribut étendu ne correspond pas au bloc"
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr "La somme de contrôle du superbloc ne correspond pas au superbloc"
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr "Algorithme de somme de contrôle inconnu"
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr "La somme de contrôle du bloc MMP ne correspond pas au bloc MMP"
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr "Le fichier ext2 existe déjà"
+
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
msgstr "Profilage version 0.0"
@@ -6562,6 +7244,54 @@ msgstr "Valeur entière invalide"
msgid "Bad magic value in profile_file_data_t"
msgstr "Valeur magique invalide dans profile_file_data_t"
+#~ msgid ""
+#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/"
+#~ "s \n"
+#~ msgstr ""
+#~ "\b\b\b\b\b\b\b\bCopié %llu / %llu blocs (%llu%%) en %s à %.2f Mo/"
+#~ "s \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Warning: the quota feature is still under development\n"
+#~ "See https://ext4.wiki.kernel.org/index.php/Quota for more information\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Avertissement : la fonctionalité quota est encore en cours de "
+#~ "développement\n"
+#~ "Voir https://ext4.wiki.kernel.org/index.php/Quota pour plus "
+#~ "d'informations\n"
+#~ "\n"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Ne peut évaluer par stat() %s --- %s\n"
+
+#~ msgid "Clearing extent flag not supported on %s"
+#~ msgstr "La suppression du drapeau extent n'est pas supportée sur %s"
+
+#~ msgid ""
+#~ "%s: The combination of flex_bg and\n"
+#~ "\t!resize_inode features is not supported by resize2fs.\n"
+#~ msgstr ""
+#~ "%s : La combinaison des fonctionnalités\n"
+#~ "\tflex_bg et !resize_inode n'est pas supportée par resize2fs.\n"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "%s est monté. "
+
+#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
+#~ msgstr ""
+#~ "Le @B de @b du @g %g n'est pas initialisé\n"
+#~ "alors que le @B d'@i est en cours d'utilisation.\n"
+
+#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
+#~ msgstr ""
+#~ "L'@i %i ne devrait pas avoir EOFBLOCKS_FL défini (taille %Is, lblk %r)\n"
+
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "N'a pu déterminer la taille du journal"
+
#~ msgid "#\t\t %llu -> %llu (%llu)\n"
#~ msgstr "#\t\t %llu -> %llu (%llu)\n"
@@ -6575,7 +7305,8 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ msgstr "<L'i-noeud des données ACL>"
#~ msgid "short write (only %d bytes) for writing image header"
-#~ msgstr "écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image"
+#~ msgstr ""
+#~ "écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image"
#~ msgid "invalid fragment size - %s"
#~ msgstr "taille de fragment invalide - %s"
@@ -6593,19 +7324,23 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ msgstr "Le journal N'A PAS été enlevé\n"
#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
-#~ msgstr "Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j ext3.\n"
+#~ msgstr ""
+#~ "Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j "
+#~ "ext3.\n"
#~ msgid "Error while deleting extent: %m\n"
#~ msgstr "Erreur lors de la suppression de l'extent : %m\n"
#~ msgid "Recreate journal to make the filesystem ext3 again?\n"
-#~ msgstr "Recréer le journal pour rendre le système de fichiers ext3 de nouveau ?\n"
+#~ msgstr ""
+#~ "Recréer le journal pour rendre le système de fichiers ext3 de nouveau ?\n"
#~ msgid "bad block size - %s"
#~ msgstr "taille des blocs défectueux - %s"
#~ msgid "while retrying to write block bitmaps for %s"
-#~ msgstr "lors d'une nouvelle tentative d'écriture des bitmaps de blocs pour %s"
+#~ msgstr ""
+#~ "lors d'une nouvelle tentative d'écriture des bitmaps de blocs pour %s"
#~ msgid "%s failed for %s: %s\n"
#~ msgstr "%s a échoué pour %s : %s\n"
@@ -6622,9 +7357,6 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
#~ msgstr "l'@a dans l'@i %i a un hash (%N) qui est @n (doit être 0)\n"
-#~ msgid "while calling ext2fs_block_iterate"
-#~ msgstr "lors de l'appel de ext2fs_block_iterate"
-
#~ msgid "while calling iterator function"
#~ msgstr "lors de l'appel de la fonction itération"
@@ -6638,14 +7370,17 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ msgstr "lors de l'écriture de la table d'i-noeuds (groupe %d)"
#~ msgid "Pass 0: Doing byte-swap of filesystem\n"
-#~ msgstr "Passe 0 : traitement de l'échange octet par octet du système de fichiers\n"
+#~ msgstr ""
+#~ "Passe 0 : traitement de l'échange octet par octet du système de fichiers\n"
#~ msgid ""
#~ "%s: the filesystem must be freshly checked using fsck\n"
#~ "and not mounted before trying to byte-swap it.\n"
#~ msgstr ""
-#~ "%s : le système de fichiers doit avoir été récemment vérifié en utilisant\n"
-#~ "fsck et ne doit pas avoir été monté avant d'essayer un échange par octet de\n"
+#~ "%s : le système de fichiers doit avoir été récemment vérifié en "
+#~ "utilisant\n"
+#~ "fsck et ne doit pas avoir été monté avant d'essayer un échange par octet "
+#~ "de\n"
#~ "celui-ci.\n"
#~ msgid "Byte swap"
@@ -6657,10 +7392,13 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ "cette version d'e2fsck\n"
#~ msgid "Incompatible options not allowed when byte-swapping.\n"
-#~ msgstr "Les options incompatibles ne sont pas autorisées lors de l'échanges d'octets.\n"
+#~ msgstr ""
+#~ "Les options incompatibles ne sont pas autorisées lors de l'échanges "
+#~ "d'octets.\n"
#~ msgid "%s: Filesystem byte order already normalized.\n"
-#~ msgstr "%s : l'ordre des octets du système de fichiers a déjà été normalisé.\n"
+#~ msgstr ""
+#~ "%s : l'ordre des octets du système de fichiers a déjà été normalisé.\n"
#~ msgid "invalid starting block - %s"
#~ msgstr "bloc de départ invalide - %s"
@@ -6689,7 +7427,8 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ msgid "Warning: %d-byte inodes not usable on older systems\n"
#~ msgstr ""
-#~ "Avertissement : les i-noeuds de %d octets ne sont pas utilisables sur les\n"
+#~ "Avertissement : les i-noeuds de %d octets ne sont pas utilisables sur "
+#~ "les\n"
#~ "anciens systèmes\n"
#~ msgid "invalid blocks range: %lu-%lu"
@@ -6731,13 +7470,16 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ "\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"
#~ msgid "Usage: findsuper device [skipbytes [startkb]]\n"
-#~ msgstr "Usage : findsuper périphérique [octets_à_escamoter [début_en_Ko]]\n"
+#~ msgstr ""
+#~ "Usage : findsuper périphérique [octets_à_escamoter [début_en_Ko]]\n"
#~ msgid "skipbytes should be a number, not %s\n"
#~ msgstr "octets à escamoter doit être un nombre, non pas %s\n"
@@ -6775,14 +7517,17 @@ msgstr "Valeur magique invalide dans profile_file_data_t"
#~ 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"
#~ "\n"
#~ 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)"
diff --git a/po/id.gmo b/po/id.gmo
index cf0ef98f..42cad19d 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index e23d7919..2d156590 100644
--- a/po/id.po
+++ b/po/id.po
@@ -69,700 +69,705 @@ msgid ""
msgstr ""
"Project-Id-Version: e2fsprogs 1.41.12\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2010-12-13 08:35-0500\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
"PO-Revision-Date: 2010-05-24 12:30+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: e2fsck/badblocks.c:22 misc/mke2fs.c:169
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Bad block %u diluar jangkauan; diabaikan.\n"
-#: e2fsck/badblocks.c:45
+#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
msgstr "ketika melakukan pengecheckan di inode bad block"
-#: e2fsck/badblocks.c:57
+#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
msgstr "ketika membaca inode bad block"
-#: e2fsck/badblocks.c:71 e2fsck/iscan.c:112 e2fsck/scantest.c:109
-#: e2fsck/unix.c:1103 e2fsck/unix.c:1188 misc/badblocks.c:1158
-#: misc/badblocks.c:1166 misc/badblocks.c:1180 misc/badblocks.c:1192
-#: misc/dumpe2fs.c:566 misc/e2image.c:583 misc/e2image.c:679
-#: misc/e2image.c:695 misc/mke2fs.c:185 misc/tune2fs.c:1623 resize/main.c:310
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "ketika mencoba untuk membuka %s"
-#: e2fsck/badblocks.c:82
+#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
msgstr "ketika mencoba popen '%s'"
-#: e2fsck/badblocks.c:93 misc/mke2fs.c:192
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "ketika membaca dalam daftar bad block dari berkas"
-#: e2fsck/badblocks.c:104
+#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
msgstr "ketika memperbarui inode bad block"
-#: e2fsck/badblocks.c:130
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr ""
"Peringatan: illegal block %u ditemukan dalam inode bad block. Dihapus.\n"
-#: e2fsck/ehandler.c:54
+#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
msgstr "Error membaca block %lu (%s) ketika %s. "
-#: e2fsck/ehandler.c:57
+#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
msgstr "Error membaca block %lu (%s). "
-#: e2fsck/ehandler.c:60 e2fsck/ehandler.c:109
+#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
msgstr "Mengabaikan error"
-#: e2fsck/ehandler.c:61
+#: e2fsck/ehandler.c:62
msgid "Force rewrite"
msgstr "Memaksa menulis kembali"
-#: e2fsck/ehandler.c:103
+#: e2fsck/ehandler.c:104
#, c-format
msgid "Error writing block %lu (%s) while %s. "
msgstr "Error menulis block %lu (%s) ketika %s. "
-#: e2fsck/ehandler.c:106
+#: e2fsck/ehandler.c:107
#, c-format
msgid "Error writing block %lu (%s). "
msgstr "Error menulis block %lu (%s). "
-#: e2fsck/emptydir.c:56
+#: e2fsck/emptydir.c:57
msgid "empty dirblocks"
msgstr "dirblock kosong"
-#: e2fsck/emptydir.c:61
+#: e2fsck/emptydir.c:62
msgid "empty dir map"
msgstr "dir map kosong"
-#: e2fsck/emptydir.c:97
+#: e2fsck/emptydir.c:98
#, c-format
msgid "Empty directory block %u (#%d) in inode %u\n"
msgstr "Direktori block %u (#%d) kosong dalam inode %u\n"
-#: e2fsck/extend.c:21
+#: e2fsck/extend.c:22
#, c-format
msgid "%s: %s filename nblocks blocksize\n"
msgstr "%s: %s filename nblocks blocksize\n"
-#: e2fsck/extend.c:43
+#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
msgstr "Nomor dari block tidak legal!\n"
-#: e2fsck/extend.c:49
+#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
msgstr "Tidak dapat mengalokasikan block buffer (ukuran=%d)\n"
-#: e2fsck/flushb.c:34
+#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
msgstr "Penggunaan: %s disk\n"
-#: e2fsck/flushb.c:63
+#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr "BLKFLSBUF ioctl tidak disupport! Tidak dapat memflush buffer.\n"
-#: e2fsck/iscan.c:46
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Penggunaan: %s [-F] [-I inode_buffer_block] perangkat\n"
-#: e2fsck/iscan.c:83 e2fsck/unix.c:856
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "ketika membuka %s untuk flushing"
-#: e2fsck/iscan.c:88 e2fsck/unix.c:862 resize/main.c:286
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "ketika mencoba untuk memflush %s"
-#: e2fsck/iscan.c:121 e2fsck/scantest.c:116 misc/e2image.c:489
+#: e2fsck/iscan.c:110
+#, fuzzy, c-format
+msgid "while trying to open '%s'"
+msgstr "ketika mencoba untuk membuka %s"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "ketika mencoba membuka inode scan"
-#: e2fsck/iscan.c:129 misc/e2image.c:507
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "ketika memperoleh inode berikutnya"
-#: e2fsck/iscan.c:138
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u inodes discan.\n"
-#: e2fsck/journal.c:508
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "membaca journal superblock\n"
-#: e2fsck/journal.c:565
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: journal superblock tidak valid ditemukan\n"
-#: e2fsck/journal.c:574
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: journal terlalu pendek\n"
-#: e2fsck/journal.c:861
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: merecovery journal\n"
-#: e2fsck/journal.c:863
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr "%s: tidak akan melakukan journal recovery ketika read-only\n"
-#: e2fsck/journal.c:888
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "ketika mencoba untuk membuka %s"
-#: e2fsck/message.c:111
+#: e2fsck/message.c:113
msgid "aextended attribute"
msgstr "aextended attribute"
-#: e2fsck/message.c:112
+#: e2fsck/message.c:114
msgid "Aerror allocating"
msgstr "Aerror mengalokasikan"
-#: e2fsck/message.c:113
+#: e2fsck/message.c:115
msgid "bblock"
msgstr "bblock"
-#: e2fsck/message.c:114
+#: e2fsck/message.c:116
msgid "Bbitmap"
msgstr "Bbitmap"
-#: e2fsck/message.c:115
+#: e2fsck/message.c:117
msgid "ccompress"
msgstr "ccompress"
-#: e2fsck/message.c:116
+#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
msgstr "Ckonflik dengan beberapa sistem berkas lain @b"
-#: e2fsck/message.c:117
+#: e2fsck/message.c:119
msgid "iinode"
msgstr "iinode"
-#: e2fsck/message.c:118
+#: e2fsck/message.c:120
msgid "Iillegal"
msgstr "Iilegal"
-#: e2fsck/message.c:119
+#: e2fsck/message.c:121
msgid "jjournal"
msgstr "jjournal"
-#: e2fsck/message.c:120
+#: e2fsck/message.c:122
msgid "Ddeleted"
msgstr "Ddeleted"
-#: e2fsck/message.c:121
+#: e2fsck/message.c:123
msgid "ddirectory"
msgstr "ddirektori"
-#: e2fsck/message.c:122
+#: e2fsck/message.c:124
msgid "eentry"
msgstr "eentri"
-#: e2fsck/message.c:123
+#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
msgstr "E@e '%Dn' dalam %p (%i)"
-#: e2fsck/message.c:124
+#: e2fsck/message.c:126
msgid "ffilesystem"
msgstr "fsistem berkas"
-#: e2fsck/message.c:125
+#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
msgstr "Funtuk @i %i (%Q) adalah"
-#: e2fsck/message.c:126
+#: e2fsck/message.c:128
msgid "ggroup"
msgstr "ggrup"
-#: e2fsck/message.c:127
+#: e2fsck/message.c:129
msgid "hHTREE @d @i"
msgstr "hHTREE @d @i"
-#: e2fsck/message.c:128
+#: e2fsck/message.c:130
msgid "llost+found"
msgstr "llost+found"
-#: e2fsck/message.c:129
+#: e2fsck/message.c:131
msgid "Lis a link"
msgstr "Ladalah sebuah link"
-#: e2fsck/message.c:130
+#: e2fsck/message.c:132
msgid "mmultiply-claimed"
msgstr "mmultiply-claimed"
-#: e2fsck/message.c:131
+#: e2fsck/message.c:133
msgid "ninvalid"
msgstr "ninvalid"
-#: e2fsck/message.c:132
+#: e2fsck/message.c:134
msgid "oorphaned"
msgstr "oorphaned"
-#: e2fsck/message.c:133
+#: e2fsck/message.c:135
msgid "pproblem in"
msgstr "pproblem dalam"
-#: e2fsck/message.c:134
+#: e2fsck/message.c:136
+msgid "qquota"
+msgstr ""
+
+#: e2fsck/message.c:137
msgid "rroot @i"
msgstr "rroot @i"
-#: e2fsck/message.c:135
+#: e2fsck/message.c:138
msgid "sshould be"
msgstr "sseharusnya"
-#: e2fsck/message.c:136
+#: e2fsck/message.c:139
msgid "Ssuper@b"
msgstr "Ssuper@b"
-#: e2fsck/message.c:137
+#: e2fsck/message.c:140
msgid "uunattached"
msgstr "uunattached"
-#: e2fsck/message.c:138
+#: e2fsck/message.c:141
msgid "vdevice"
msgstr "vperangkat"
-#: e2fsck/message.c:139
+#: e2fsck/message.c:142
msgid "xextent"
msgstr "xextent"
-#: e2fsck/message.c:140
+#: e2fsck/message.c:143
msgid "zzero-length"
msgstr "zzero-length"
-#: e2fsck/message.c:151
+#: e2fsck/message.c:154
msgid "<The NULL inode>"
msgstr "<Inode Kosong>"
-#: e2fsck/message.c:152
+#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
msgstr "<Bad block inode>"
-#: e2fsck/message.c:154
-msgid "<The ACL index inode>"
-msgstr "<ACL index inode>"
+#: e2fsck/message.c:157
+#, fuzzy
+msgid "<The user quota inode>"
+msgstr "<Inode journal>"
-#: e2fsck/message.c:155
-msgid "<The ACL data inode>"
-msgstr "<ACL data inode>"
+#: e2fsck/message.c:158
+#, fuzzy
+msgid "<The group quota inode>"
+msgstr "<inode deskripsi grup>"
-#: e2fsck/message.c:156
+#: e2fsck/message.c:159
msgid "<The boot loader inode>"
msgstr "<boot loader inode>"
-#: e2fsck/message.c:157
+#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
msgstr "<undelete direktori inode>"
-#: e2fsck/message.c:158
+#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
msgstr "<inode deskripsi grup>"
-#: e2fsck/message.c:159
+#: e2fsck/message.c:162
msgid "<The journal inode>"
msgstr "<Inode journal>"
-#: e2fsck/message.c:160
+#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
msgstr "<Inode terpesan 9>"
-#: e2fsck/message.c:161
+#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
msgstr "<Inode Terpesan 10>"
-#: e2fsck/message.c:330
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "berkas biasa"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "direktori"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "karakter device"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "block device"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "named pipe"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "symbolic link"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "socket"
-#: e2fsck/message.c:344
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "tipe file tidak diketahui dengan mode 0%o"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr "block tidak langsung"
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr "blok tidak langsung berdua"
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr "blok tidak langsung bertiga"
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
msgstr "blok penerjemah"
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "blok #"
-#: e2fsck/pass1b.c:220
+#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
msgstr "kalikan peta inode yang dituntut"
-#: e2fsck/pass1b.c:581 e2fsck/pass1b.c:714
-#, c-format
-msgid "internal error: can't find dup_blk for %u\n"
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
+#, fuzzy, c-format
+msgid "internal error: can't find dup_blk for %llu\n"
msgstr "internal error: tidak dapat menemukan dup_blk untuk %u\n"
-#: e2fsck/pass1b.c:757
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "kembali dari clone_file_block"
-#: e2fsck/pass1b.c:776
-#, c-format
-msgid "internal error: couldn't lookup EA block record for %u"
+#: e2fsck/pass1b.c:843
+#, fuzzy, c-format
+msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "internal error: tidak dapat menemukan EA block record untuk %u"
-#: e2fsck/pass1b.c:788
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr "internal error: tidak dapat menemukan EA inode record untuk %u"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:776
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "membaca direktori block"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "in-use inode map"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "direktori inode map"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "regular file inode map"
-#: e2fsck/pass1.c:621
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "in-use block map"
-#: e2fsck/pass1.c:675
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "membuka inode scan"
-#: e2fsck/pass1.c:699
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "memperoleh inode selanjutnya dari scan"
-#: e2fsck/pass1.c:1173
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Tahap 1"
-#: e2fsck/pass1.c:1230
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "membaca indirect block dari inode %u"
-#: e2fsck/pass1.c:1274
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "inode map buruk"
-#: e2fsck/pass1.c:1296
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "inode dalam bad block map"
-#: e2fsck/pass1.c:1316
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "imagic inode map"
-#: e2fsck/pass1.c:1343
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr "multiply diklaim block map"
-#: e2fsck/pass1.c:1443
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "ext attr block map"
-#: e2fsck/pass1.c:2181
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr "%6lu(%c): diperkirakan %6lu diperoleh phys %6lu (blkcnt %lld)\n"
-#: e2fsck/pass1.c:2533
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "block bitmap"
-#: e2fsck/pass1.c:2537
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "inode bitmap"
-#: e2fsck/pass1.c:2541
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "inode table"
-#: e2fsck/pass2.c:277
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Tahap 2"
-#: e2fsck/pass2.c:799
+#: e2fsck/pass2.c:805
msgid "Can not continue."
msgstr "Tidak dapat melanjutkan."
-#: e2fsck/pass3.c:76
+#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr "inode selesai bitmap"
-#: e2fsck/pass3.c:84
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Puncak pemakaian memori"
-#: e2fsck/pass3.c:134
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Tahap 3"
-#: e2fsck/pass3.c:320
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "inode deteksi loop bitmap"
-#: e2fsck/pass4.c:193
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Tahap 4"
-#: e2fsck/pass5.c:64
+#: e2fsck/pass5.c:74
msgid "Pass 5"
msgstr "Tahap 5"
-#: e2fsck/problem.c:50
+#: e2fsck/problem.c:51
msgid "(no prompt)"
msgstr "(tidak ada prompt)"
-#: e2fsck/problem.c:51
+#: e2fsck/problem.c:52
msgid "Fix"
msgstr "Betulkan"
-#: e2fsck/problem.c:52
+#: e2fsck/problem.c:53
msgid "Clear"
msgstr "Dihapus"
-#: e2fsck/problem.c:53
+#: e2fsck/problem.c:54
msgid "Relocate"
msgstr "Dipindahkan"
-#: e2fsck/problem.c:54
+#: e2fsck/problem.c:55
msgid "Allocate"
msgstr "Dialokasikan"
-#: e2fsck/problem.c:55
+#: e2fsck/problem.c:56
msgid "Expand"
msgstr "Diexpand"
-#: e2fsck/problem.c:56
+#: e2fsck/problem.c:57
msgid "Connect to /lost+found"
msgstr "Menyambungkan ke /lost+found"
-#: e2fsck/problem.c:57
+#: e2fsck/problem.c:58
msgid "Create"
msgstr "Membuat"
-#: e2fsck/problem.c:58
+#: e2fsck/problem.c:59
msgid "Salvage"
msgstr "Mengambil"
-#: e2fsck/problem.c:59
+#: e2fsck/problem.c:60
msgid "Truncate"
msgstr "Truncate"
-#: e2fsck/problem.c:60
+#: e2fsck/problem.c:61
msgid "Clear inode"
msgstr "Menghapus inode"
-#: e2fsck/problem.c:61
+#: e2fsck/problem.c:62
msgid "Abort"
msgstr "Membatalkan"
-#: e2fsck/problem.c:62
+#: e2fsck/problem.c:63
msgid "Split"
msgstr "Membagi"
-#: e2fsck/problem.c:63
+#: e2fsck/problem.c:64
msgid "Continue"
msgstr "Melanjutkan"
-#: e2fsck/problem.c:64
+#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
msgstr "Kopi multiply-claimed blocks"
-#: e2fsck/problem.c:65
+#: e2fsck/problem.c:66
msgid "Delete file"
msgstr "Hapus berkas"
-#: e2fsck/problem.c:66
+#: e2fsck/problem.c:67
msgid "Suppress messages"
msgstr "Suppress pesan"
-#: e2fsck/problem.c:67
+#: e2fsck/problem.c:68
msgid "Unlink"
msgstr "Unlink"
-#: e2fsck/problem.c:68
+#: e2fsck/problem.c:69
msgid "Clear HTree index"
msgstr "Hapus HTree index"
-#: e2fsck/problem.c:69
+#: e2fsck/problem.c:70
msgid "Recreate"
msgstr "Buat kembali"
-#: e2fsck/problem.c:78
+#: e2fsck/problem.c:79
msgid "(NONE)"
msgstr "(KOSONG)"
-#: e2fsck/problem.c:79
+#: e2fsck/problem.c:80
msgid "FIXED"
msgstr "DIBETULKAN"
-#: e2fsck/problem.c:80
+#: e2fsck/problem.c:81
msgid "CLEARED"
msgstr "DIHAPUS"
-#: e2fsck/problem.c:81
+#: e2fsck/problem.c:82
msgid "RELOCATED"
msgstr "DIPINDAHKAN"
-#: e2fsck/problem.c:82
+#: e2fsck/problem.c:83
msgid "ALLOCATED"
msgstr "DIALOKASIKAN"
-#: e2fsck/problem.c:83
+#: e2fsck/problem.c:84
msgid "EXPANDED"
msgstr "DIEXPAND"
-#: e2fsck/problem.c:84
+#: e2fsck/problem.c:85
msgid "RECONNECTED"
msgstr "DIHUBUNGKAN"
-#: e2fsck/problem.c:85
+#: e2fsck/problem.c:86
msgid "CREATED"
msgstr "DIBUAT"
-#: e2fsck/problem.c:86
+#: e2fsck/problem.c:87
msgid "SALVAGED"
msgstr "DIAMANKAN"
-#: e2fsck/problem.c:87
+#: e2fsck/problem.c:88
msgid "TRUNCATED"
msgstr "DIPOTONG"
-#: e2fsck/problem.c:88
+#: e2fsck/problem.c:89
msgid "INODE CLEARED"
msgstr "INODE DIHAPUS"
-#: e2fsck/problem.c:89
+#: e2fsck/problem.c:90
msgid "ABORTED"
msgstr "DIBATALKAN"
-#: e2fsck/problem.c:90
+#: e2fsck/problem.c:91
msgid "SPLIT"
msgstr "DIBAGI"
-#: e2fsck/problem.c:91
+#: e2fsck/problem.c:92
msgid "CONTINUING"
msgstr "MELANJUTKAN"
-#: e2fsck/problem.c:92
+#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
msgstr "MULTIPLY-CLAIMED BLOK DIKOPI"
-#: e2fsck/problem.c:93
+#: e2fsck/problem.c:94
msgid "FILE DELETED"
msgstr "BERKAS DIHAPUS"
-#: e2fsck/problem.c:94
+#: e2fsck/problem.c:95
msgid "SUPPRESSED"
msgstr "DIAKHIRI"
-#: e2fsck/problem.c:95
+#: e2fsck/problem.c:96
msgid "UNLINKED"
msgstr "DILEPAS"
-#: e2fsck/problem.c:96
+#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
msgstr "HTREE INDEX DIHAPUS"
-#: e2fsck/problem.c:97
+#: e2fsck/problem.c:98
msgid "WILL RECREATE"
msgstr "AKAN MEMBUAT KEMBALI"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:106
+#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
msgstr "@b @B untuk @g %g tidak dalam @g. (@b %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:110
+#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
msgstr "@i @B untuk @G %G tidak dalam @g. (@b %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
-#: e2fsck/problem.c:115
+#: e2fsck/problem.c:116
msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
@@ -771,21 +776,25 @@ msgstr ""
"PERINGATAN: KEMUNGKINAN KEHILANGAN DATA BESAR.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
-#: e2fsck/problem.c:121
-#, c-format
+#: e2fsck/problem.c:122
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -800,7 +809,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:130
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -813,7 +822,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:137
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -825,18 +834,18 @@ msgstr ""
"dari @b.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:144
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "@S @bs_per_group = %b, seharusnya %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:149
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "@S first_data_@b = %b, seharusnya %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:154
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -844,7 +853,7 @@ msgstr ""
"@f tidak memiliki sebuah UUID; membuat satu.\n"
"\n"
-#: e2fsck/problem.c:159
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -862,48 +871,48 @@ msgstr ""
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:168
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "Korupsi ditemukan di @S. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:173
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "Error menentukan ukuran dari phisik @v: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:178
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "@i terhitung dalam @S adalah %i, @s %j.\n"
-#: e2fsck/problem.c:182
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "Hurd tidak mendukung layanan filetype.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:187
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "@S memiliki sebuah @n @j (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:192
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "External @j memiliki multiple @f dari pengguna (tidak dilayani).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:197
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Tidak dapat menemukan external @j\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:202
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "External @j memiliki bad @S\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:207
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "External @j tidak melayani ini @f\n"
@@ -911,7 +920,7 @@ msgstr "External @j tidak melayani ini @f\n"
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#. @-expanded: format.\n
#. @-expanded: It is also possible the journal superblock is corrupt.\n
-#: e2fsck/problem.c:212
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
@@ -924,83 +933,83 @@ msgstr ""
"Ini juga mungkin jika @j @S telah terkorupsi.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:220
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
msgstr "@j @S telah terkorupsi.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:225
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr "@S tanda has_@j hilang, tetapi @j %s ada.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:230
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr "@S tanda needs_recovery ada, tetapi tidak memiliki @j.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:235
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr "@S tanda need_recovery sudah hilang, tetapi @j memiliki data.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:240
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Hapus @j"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:245 e2fsck/problem.c:664
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
msgstr "@f memiliki feature flag(s) set, tetapi memiliki sebuah revisi 0 @f."
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:250
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, ukuran=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:255
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "@I %B (%b) ditemukan dalam @o @i %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:260
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "Sudah dihapus %B (%b) ditemukan dalam @o @i %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:265
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@I @o @i %i dalam @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:270
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "@I @i %i dalam daftar @o @i.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:275
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr "@j @S memiliki sebuah feature yang tidak diketahui aktif.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:280
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr ""
"@j @S memiliki sebuah feature yang tidak kompatibel yang tidak diketahui "
"aktif.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:285
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "versi @j tidak disupport oleh e2fsck ini.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:290
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1011,7 +1020,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:295
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1023,7 +1032,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:300
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1034,12 +1043,12 @@ msgstr ""
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:306
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
msgstr "Jalankan @j bagaimanapun"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:311
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
msgstr ""
"Recovery flag tidak diset dalam backup @S, jadi menjalankan @j "
@@ -1047,7 +1056,7 @@ msgstr ""
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:316
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1057,7 +1066,7 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:321
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1066,18 +1075,18 @@ msgstr ""
"adalah %N; @s nol. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:327
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr "Resize_@i tidak aktif, tetapi resize @i bukan nol. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:332
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr "Resize @i tidak valid. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:337
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1087,7 +1096,7 @@ msgstr ""
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:342
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1096,14 +1105,14 @@ msgstr ""
"\tsekarang = %T) berada di masa yang akan datang.\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:346
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr "@S petunjuk untuk superblok luar @s %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:351
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
@@ -1111,47 +1120,41 @@ msgstr ""
"Menambahkan dirhas hint ke @f.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:356
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+#, fuzzy
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
msgstr "@g deskripsi %g checksum tidak valid. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:361
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr "@g deskripsi %g ditandai unintialisasi tanpa menset feature.\n"
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:366
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr "@g %g @b @B tidak terinitialisasi tetapi @i @B sedang digunakan.\n"
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:371
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr "@g deskripsi %g memiliki inode yang tidak valid terhitung %b. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:376
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr "Terakhir @g @b @B tidak terinitialisasi. "
-#: e2fsck/problem.c:381
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr "Jurnal transaksi %i terkorupsi, balasan dibatalkan.\n"
-#: e2fsck/problem.c:385
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr "Tanda test_fs telah aktif (dan ext4 tersedia). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:390
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
"\t(by less than a day, probably due to the hardware clock being incorrectly "
@@ -1163,7 +1166,7 @@ msgstr ""
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:396
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
"\t(by less than a day, probably due to the hardware clock being incorrectly "
@@ -1173,123 +1176,169 @@ msgstr ""
"\t(lebih kecil sehari, mungkin karena perangkat jam diset tidak benar). "
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:402
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
msgstr "Satu atau lebih @b @g pendeskripsi checksum tidak valid. "
+#. @-expanded: Setting free inodes count to %j (was %i)\n
+#: e2fsck/problem.c:405
+#, fuzzy
+msgid "Setting free @is count to %j (was %i)\n"
+msgstr "Menset jumlah reserved blok ke %lu\n"
+
+#. @-expanded: Setting free blocks count to %c (was %b)\n
+#: e2fsck/problem.c:410
+#, fuzzy
+msgid "Setting free @bs count to %c (was %b)\n"
+msgstr "Menset jumlah reserved blok ke %lu\n"
+
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+#, fuzzy
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr ""
+"Memindahkan @j dari /%s ke tersembunyi @i.\n"
+"\n"
+
+#. @-expanded: superblock has invalid MMP block.
+#: e2fsck/problem.c:420
+#, fuzzy
+msgid "@S has invalid MMP block. "
+msgstr "Ukuran blok tidak valid - %s"
+
+#. @-expanded: superblock has invalid MMP magic.
+#: e2fsck/problem.c:425
+msgid "@S has invalid MMP magic. "
+msgstr ""
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr ""
+
+#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr ""
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
-#: e2fsck/problem.c:409
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Tahap 1: Memeriksa @i, @bs, dan ukuran\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "@r bukan sebuah @d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:418
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr ""
"@r memiliki dtime terset (mungkin karena penggunaan mke2fs versi lama). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "Reserved @i %i (%Q) memiliki @n mode. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "@D @i %i memiliki dtime nol. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:433
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "@i %i sedang digunakan, tetapi miliki dtime terset. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:438
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "@i %i adalah sebuah @z @d. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:443
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
msgstr "@g %g's @b @B di %b @C.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:448
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
msgstr "@g %g's @i @B di %b @C.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:453
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr "@G %g's @i tabel di %b @C.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:458
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr "@g %g's @b @B (%b) adalah buruk. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:463
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr "@g %g's @i @B (%b) adalah buruk. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:468
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "@i %i, i_size adalah %Is, @s %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:473
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "@i %i, i_@bs adalah %Ib, @s %N. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:478
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
msgstr "@I %B (%b) dalam @i %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:483
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr "%B (%b) saling bertumpang tindih @f metadata dalam @i %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:488
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "@i %i memiliki @b(s) ilegal. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:493
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Terlalu banyak ilegal @bs dalam @i %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:498
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
msgstr "@I %B (%b) dalam @b @i buruk. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:503
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "@b @i buruk memiliki ilegal @b(s). "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:508
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "Duplikasi atau @b buruk sedang digunakan!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:513
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr "@b %b buruk yang digunakan sama buruknya dengan @b @i indirect @b. "
@@ -1297,7 +1346,7 @@ msgstr "@b %b buruk yang digunakan sama buruknya dengan @b @i indirect @b. "
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
#. @-expanded: should stop now and run e2fsck -c to scan for bad blocks\n
#. @-expanded: in the filesystem.\n
-#: e2fsck/problem.c:518
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1311,7 +1360,7 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:525
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1322,7 +1371,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:530
+#: e2fsck/problem.c:568
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"
@@ -1333,125 +1382,125 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:536
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "@S (%b) utama berada dalam daftar @b buruk.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:541
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
msgstr "Blok %b dalam deskripsi @g utama berada dalam daftar @b buruk\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:547
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Peringatan: Grup %g's @S (b) buruk.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:552
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
msgstr ""
"Peringatan: Grup %g's salinan dari deskripsi @g memiliki sebuah @b (%b) "
"buruk.\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:558
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
msgstr ""
"Programming error? @b #%b terklaim untuk tidak ada alasan dalam "
"process_bad_@b.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:564
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr "@A %N kontinu @b(s) dalam @b @g %g untuk %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:569
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "@A @b buffer untuk relokasi %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:574
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Memindahkan @g %g's %s dari %b ke %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:579
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Memindahkan @g %g's %s ke %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Peringatan: tidak dapat membaca @b %b dari %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:589
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Peringatan: tidak dapat menulis @b %b untuk %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:594 e2fsck/problem.c:1405
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "@A @i @B (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:599
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "@A @b @B (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:604
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr "@A icount link informasi: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:609
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "@A @d @b array: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:614
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Error ketika melakukan scanning @is (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:619
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr "Error ketika mengiterasi melalui @bs dalam @i %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:624
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr "Error menyimpan @i count informasi (@i=%i, count=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:629
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
msgstr "Error menyimpan @d @b informasi (@i=%i, @b=%b, num=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Error membaca @i %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:643
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "@i %i memiliki flag imagic terset. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:648
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1461,151 +1510,151 @@ msgstr ""
"atau append-only flag terset."
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:654
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr "@i %i memiliki @cion flag terset pada @f tanpa layanan @cion. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:659
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr "Spesial (@v/socket/fifo) @i %i memiliki ukuran kosong. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "@j @i sedang tidak digunakan, tetapi berisi data. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "@j bukan sebuah file regular. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:679
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "@i %i adalah bagian dari daftar @o @i. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr ""
"@i adalah bagian dari orphan terkorupsi yang ditemukan dari linked list. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:690
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "@A refcount structure (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr "Error membaca @a @b %b untuk @i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "@i %i memiliki sebuah @a @b %b buruk."
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "Error membaca @a @b %b (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:710
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
msgstr "@a @b %b memiliki jumlah referensi %r, @s %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:715
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "Error menulis @a @b %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:720
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr "@a @b %b memiliki h_@bs > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:725
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "@A @a @b %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:730
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "@a @b %b adalah korup (bentrok dalam alokasi). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:735
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "@a @b %b adalah korup (@n nama). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:740
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "@a @b %b adalah korup (@n value). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:745
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "@i %i terlalu besar. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:749
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
msgstr "%B (%b) menyebabkan @d terlalu besar. "
-#: e2fsck/problem.c:754
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
msgstr "%B (%b) menyebabkan berkas terlalu besar. "
-#: e2fsck/problem.c:759
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
msgstr "%B (%b) menyebabkan symlink terlalu besar. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:764
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr "@i %i memiliki INDEX_FL flag terset di @f tanpa bantuan htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:769
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "@i %i memiliki INDEX_FL flag terset tetapi tidak sebuah @d\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:774
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "@h %i memiliki sebuah @n titik root.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:779
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr "@h %i memiliki sebuah versi hash yang tidak dilayani (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:784
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr ""
"@h %i menggunakan sebuah htree yang tidak kompatible di titik root flag.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:789
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "@h %i memiliki sebuah kedalaman pohon (%N) yang terlalu besar\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:794
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
@@ -1614,58 +1663,58 @@ msgstr ""
"@f metadata. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "Resize @i gagal membuat kembali: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "@i %i memiliki sebuah ukuran extra (%IS) yang berisi @n\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "@a dalam @i %i memiliki sebuah panjang nama (%N) yang berisi @n\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr "@a dalam @i %i memiliki nilai ofset (%N) yang berisi @n\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr ""
"@a dalam @i %i memiliki sebuah nilai @b (%N) yang berisi @n (seharusnya 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:825
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
msgstr ""
"@a dalam @i %i memiliki sebuah nilai yang berukuran (%N) yang berisi @n\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:830
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "@a dalam @i %i memiliki sebuah hash (%N) yang berisi @n\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:835
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr ""
"@i %i adalah sebuah %It tetapi sepertinya benar benar sebuah direktori.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:840
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr "Error ketika membaca diatas @x tree dalam @i %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:845
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1675,7 +1724,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1685,7 +1734,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
@@ -1694,31 +1743,31 @@ msgstr ""
"\t(logical @b %c, physical @b %b, @n len %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr "@i %i memiliki EXTENTS_FL tanda set di @f tanpa support extensi.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr "@i %i adalah sebuah format extensi, tetapi @S hilang feature EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr "@i %i hilang EXTENT_FL, tetapi adalah sebuah format extensi\n"
-#: e2fsck/problem.c:876
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr "Fast symlink %i memiliki EXTENT_FL terset. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:881
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
@@ -1727,19 +1776,74 @@ msgstr ""
"\t(@n logical @b %c, physical @b %b, len %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:885
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr "@i %i memiliki sebuah titik ekstensi tidak valid (blk %b, lblk %c)\n"
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:889
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr "@i %i seharusnya EOFBLOCKS_FL tidak aktif (ukuran %Is, lblk %r)\n"
+#. @-expanded: Error converting subcluster block bitmap: %m\n
+#: e2fsck/problem.c:928
+#, fuzzy, c-format
+msgid "Error converting subcluster @b @B: %m\n"
+msgstr "Error mengiterasi melalui @d @bs: %m\n"
+
+#. @-expanded: quota inode is not regular file.
+#: e2fsck/problem.c:933
+#, fuzzy
+msgid "@q @i is not regular file. "
+msgstr "@j bukan sebuah file regular. "
+
+#. @-expanded: quota inode is not in use, but contains data.
+#: e2fsck/problem.c:938
+#, fuzzy
+msgid "@q @i is not in use, but contains data. "
+msgstr "@j @i sedang tidak digunakan, tetapi berisi data. "
+
+#. @-expanded: quota inode is visible to the user.
+#: e2fsck/problem.c:943
+#, fuzzy
+msgid "@q @i is visible to the user. "
+msgstr "@i %i sedang digunakan, tetapi miliki dtime terset. "
+
+#. @-expanded: The bad block inode looks invalid.
+#: e2fsck/problem.c:948
+#, fuzzy
+msgid "The bad @b @i looks @n. "
+msgstr "<Bad block inode>"
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+#, fuzzy
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"@i %i telah tidak teratur extensinya\n"
+"\t(@n logical @b %c, physical @b %b, len %N)\n"
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+#, fuzzy
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"@i %i memiliki sebuah extensi @n\n"
+"\t(logical @b %c, @n physical @b %b, len %N)\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:897
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1751,46 +1855,46 @@ msgstr ""
"Tahap 1B: Menscan kembali untuk @m @bs\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:903
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "@m @b(s) dalam @i %i:"
-#: e2fsck/problem.c:918
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Error ketika menscan inodes (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:923
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "@A @i @B (@i_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:928
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr "Error ketika mengiterasi di @bs dalam @i %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:933 e2fsck/problem.c:1249
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr "Error menyesuaikan refcount untuk @a @b %b (@i %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:939
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr "Tahap 1C: Memeriksa direktori untuk @is dengan @m @bs\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:945
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Tahap 1D: Membetulkan @m @bs\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:950
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
@@ -1799,18 +1903,18 @@ msgstr ""
" memiliki %r @m @b(s), dibagi dengan %N berkas:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:956
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (@i #%i, mod time %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:961
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<@f metadata>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:966
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1820,7 +1924,7 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:971
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
@@ -1828,316 +1932,316 @@ msgstr ""
"@m @bs telah diassign atau dikopi.\n"
"\n"
-#: e2fsck/problem.c:984
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "Tidak dapat menyalin file: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:990
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Tahap 2: Memeriksa struktur @d\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr "@n @i jumlah untuk '.' dalam @d @i %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "@E memiliki @n @i #: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1005
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr "@E memiliki @D/tidak dipakai @i %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1010
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "@E @L ke '.' "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1015
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "@E menunjuk ke @i (%Di) terletak di dalam @b buruk.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1020
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "@E @L ke @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1025
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "@E @L ke @r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1030
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "@E memiliki karakter ilegal dalam namanya.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1035
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "Hilang '.' dalam @d @i %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "Hilang '..' dalam @d @i %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr "Pertama @e '%Dn' (@i=%Di) dalam @d @i %i (%p) @s '.'\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "Kedua @e '%Dn' (@i=%Di) dalam @d @i %i @s '..'\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr "i_faddr @F %IF, @s nol.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "i_file_acl @F %If, @s nol.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "i_dir_acl @F %Id, @s nol.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr "i_frag @F %N, @s nol.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "i_fsize @F %N, @s nol.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "@i %i (%Q) memiliki mode @n (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "@d @i %i, %B, ofset %N: @d terkorupsi\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "@d @i %i, %B, ofset %N: nama berkas terlalu panjang\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "@d @i %i memiliki #%B yang tidak teralokasi. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "'.' @d @e dalam @d @i %i tidak terakhiri dengan NULL\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "'..' @d @e dalam @d @i %i tidak terakhiri dengan NULL\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "@i %i (%Q) adalah sebuah karakter @I @v.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "@i %i (%Q) adalah sebuah @I @b @v.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "@E adalah salinan '.' @e.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "@E adalah duplikasi dari '..' @e.\n"
-#: e2fsck/problem.c:1130 e2fsck/problem.c:1430
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "Internal error: tidak dapat mencari dir_info untuk %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "@E memiliki rec_len dari %Dr, @s %N.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "struktur @A icount: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Error mengiterasi melalui @d @bs: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Error membaca @d @b %b (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Error menulis @d @b %b (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "@A baru @d @b untuk @i %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Error mendealokasikan @i %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "@d @e untuk '.' dalam %p (%i) besar.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "@i %i (%Q) adalah sebuah @I FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1180
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "@i %i (%Q) adalah sebuah @I socket.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "Setting filetype untuk @E ke %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr ""
"@E memiliki sebuah tipe berkas yang tidak benar (sebelumnya %Dt, @s %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "@E memiliki filetype set.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "@E memiliki sebuah nama @z.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "Symlink %Q (@i #%i) adalah @n.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "@a @b @F @n (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr "@f berisi berkas besar, tetapi kurang LARGE_FILE flag dalam @S.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
msgstr "@p @h %d: %B tidak memiliki referensi\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
msgstr "@p @h %d: %B memiliki dua referensi.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
msgstr "@p @h %d: %B memiliki min hash buruk\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
msgstr "@p @h %d: %B memiliki max has buruk\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "@n @h %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1244
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "@p @h %d (%q): buruk @b nomor %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1254
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "@p @h %d: titik root adalah @n\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1259
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr "@p @h %d: %B memiliki @n batas (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1264
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr "@p @h %d: %B memiliki @n jumlah (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1269
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr "@p @h %d: %B memiliki sebuah tabel hash yang tidak terurut\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1274
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "@p @h %d: %B memiliki @n kedalaman (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1279
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "Duplikasi @E ditemukan. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1284
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2149,7 +2253,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1289
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2160,118 +2264,118 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "i_blocks_hi @F %N, @s nol.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1299
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "Tidak terduga @b dalam @h %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1303
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr "@E referensi @i %Di dalam @g %g dimana _INODE_UNINIT telah diset.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1308
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
"@E referensi @i %Di ditemukan dalam @g %g's di daerah inode yang tidak "
"digunakan.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1313
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr "i_file_acl_hi @F %N, @s nol.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1320
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Tahap 3: Memeriksa konektivitas @d\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1325
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "@r tidak dialokasikan. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1330
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "Tidak ada ruang dalam @l @d. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1335
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "Tidak terhubung @d @i %i (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1340
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/@l tidak ditemukan. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1345
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "'..' dalam %Q (%i) adalah %P (%j), @s %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1350
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "Buruk atau tidak ada /@l. Tidak dapat dihubungkan kembali.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1355
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "Tidak dapat mengexpan /@l: %m\n"
-#: e2fsck/problem.c:1360
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "Tidak dapat menghubungkan %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1365
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "Error ketika mencoba mencari /@l: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_@b: %m ketika mencoba untuk membuat /@l @d\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_@i: %m ketika mencoba untuk membuat /@l @d\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr "ext2fs_new_dir_@b: %m ketika membuat @d @b baru\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr "ext2fs_write_dir_@b: %m ketika menulis @d @b untuk /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Error ketika menyesuaikan jumlah @i di @i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2282,7 +2386,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2292,75 +2396,75 @@ msgstr ""
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Error membuat root @d (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Error membuat /@l @d (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "@r bukan sebuah @d: membatalkan.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "Tidak dapat melanjutkan tanpa sebuah @r.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/@l bukan sebuah @d (ino=%i)\n"
-#: e2fsck/problem.c:1442
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Tahap 3A: Mengoptimasi direktori\n"
-#: e2fsck/problem.c:1447
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Gagal membuat peng-iterasi dirs_to_hash: %m\n"
-#: e2fsck/problem.c:1452
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Gagal mengoptimasi direktori %q (%d): %m\n"
-#: e2fsck/problem.c:1457
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Mengoptimasi direktori: "
-#: e2fsck/problem.c:1474
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Tahap 4: Memeriksa jumlah referensi\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1479
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "@u @z @i %i. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1484
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "@u @i %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1489
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "@i %i ref count adalah %Il, @s %N. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
-#: e2fsck/problem.c:1493
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2373,58 +2477,58 @@ msgstr ""
"sama!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1503
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Tahap 5: Memeriksa ringkasan informasi @g\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1508
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "Menambahkan pad diakhir dari @i @B yang tidak terset. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1513
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "Menambahkan pad di akhir dari @b @B adalah ter set. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1518
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "@b @B perbedaan: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1538
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "@i @B perbedaan: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Kosong @is terhitung salah untuk @g #%g (%i, terhitung=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Direktori terhitung salah untuk @g #%g (%i, terhitung=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "Kosong @is terhitung salah (%i, terhitung=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1573
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr "Kosong @bs terhitung salah untuk @g #%g (%b, terhitung=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1578
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "Kosong @bs terhitung salah (%b, terhitung=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1583
+#: e2fsck/problem.c:1659
msgid ""
"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
"endpoints (%i, %j)\n"
@@ -2432,85 +2536,89 @@ msgstr ""
"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) tidak dapat mencocokan "
"perhitungan @B titik ujung (%i, %j)\n"
-#: e2fsck/problem.c:1589
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr "Internal error: fudging berakhir dari bitmap (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1594
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Error menyalin dalam mengganti @i @B: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1599
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr "Error menyalin dalam mengganti @b @B: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1624
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr "@g %g @b(s) sedang digunakan tetapi @g tertanda BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1629
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr "@g %g @i(s) sedang digunakan tetapi @g tertanda INODE_UNINIT\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1636
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
msgstr "Membuat kembali @j"
-#: e2fsck/problem.c:1755
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr ""
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Kode error tidak tertangani (0x%x)!\n"
-#: e2fsck/problem.c:1855
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "DIABAIKAN"
-#: e2fsck/scantest.c:81
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Memori yang digunakan: %d, waktu yang digunakan: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:100
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "ukuran dari inode=%d\n"
-#: e2fsck/scantest.c:121
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "ketika memulai scan dari inode"
-#: e2fsck/scantest.c:132
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "ketika melakukan pemeriksaan inode"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "ketika memanggil ext2fs_block_iterate untuk inode %d"
-#: e2fsck/super.c:209
-#, c-format
-msgid "while calling ext2fs_adjust_ea_refcount for inode %d"
+#: e2fsck/super.c:213
+#, fuzzy, c-format
+msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "ketika memanggil ext2fs_adjust_ea_refcount untuk inode %d"
-#: e2fsck/super.c:267
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Truncating"
-#: e2fsck/super.c:268
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Menghapus"
-#: e2fsck/unix.c:76
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2523,8 +2631,7 @@ msgstr ""
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extendend-options] perangkat\n"
-#: e2fsck/unix.c:82
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
@@ -2545,8 +2652,7 @@ msgstr ""
" -f Memaksa memeriksa walaupun sistem berkas ditandai "
"bersih\n"
-#: e2fsck/unix.c:88
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2563,38 +2669,158 @@ msgstr ""
" -l bad_blok_file Tambahkan ke daftar blok buruk\n"
" -L bad_blok_file Set daftar blok buruk\n"
-#: e2fsck/unix.c:132
-#, c-format
-msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %u/%u blocks\n"
+#: e2fsck/unix.c:131
+#, fuzzy, c-format
+msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %u/%u berkas (%0d.%d%% tidak kontinu), %u/%u blok\n"
-#: e2fsck/unix.c:150
+#: e2fsck/unix.c:157
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
+msgid_plural ""
+"\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
+msgstr[0] "%u inodes discan.\n"
+msgstr[1] "%u inodes discan.\n"
+
+#: e2fsck/unix.c:161
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " # dari inodes dengan ind/dind/tind blok: %u/%u/%u\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
-#: e2fsck/unix.c:157
+#: e2fsck/unix.c:166
#, c-format
-msgid " Extent depth histogram: "
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:171
+#, fuzzy, c-format
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " # dari inodes dengan ind/dind/tind blok: %u/%u/%u\n"
+
+#: e2fsck/unix.c:179
+#, fuzzy
+msgid " Extent depth histogram: "
msgstr " Kedalaman Extensi histogram: "
-#: e2fsck/unix.c:207 misc/badblocks.c:931 misc/tune2fs.c:1675 misc/util.c:151
-#: resize/main.c:249
+#: e2fsck/unix.c:188
+#, c-format
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:192
+#, fuzzy, c-format
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%u inodes, %u blok\n"
+msgstr[1] "%u inodes, %u blok\n"
+
+#: e2fsck/unix.c:194
+#, fuzzy, c-format
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "berkas biasa"
+msgstr[1] "berkas biasa"
+
+#: e2fsck/unix.c:196
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u regular file\n"
+msgid_plural ""
+"\n"
+"%12u regular files\n"
+msgstr[0] "berkas biasa"
+msgstr[1] "berkas biasa"
+
+#: e2fsck/unix.c:198
+#, fuzzy, c-format
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "direktori"
+msgstr[1] "direktori"
+
+#: e2fsck/unix.c:200
+#, fuzzy, c-format
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "karakter device"
+msgstr[1] "karakter device"
+
+#: e2fsck/unix.c:203
+#, fuzzy, c-format
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "block device"
+msgstr[1] "block device"
+
+#: e2fsck/unix.c:205
+#, c-format
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:207
+#, c-format
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:209
+#, fuzzy, c-format
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "symbolic link"
+msgstr[1] "symbolic link"
+
+#: e2fsck/unix.c:211
+#, fuzzy, c-format
+msgid " (%u fast symbolic link)\n"
+msgid_plural " (%u fast symbolic links)\n"
+msgstr[0] "symbolic link"
+msgstr[1] "symbolic link"
+
+#: e2fsck/unix.c:215
+#, fuzzy, c-format
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "socket"
+msgstr[1] "socket"
+
+#: e2fsck/unix.c:219
+#, fuzzy, c-format
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "berkas biasa"
+msgstr[1] "berkas biasa"
+
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "ketika sedang menentukan apakah %s sedang dimount."
-#: e2fsck/unix.c:225
-#, c-format
-msgid "Warning! %s is mounted.\n"
+#: e2fsck/unix.c:252
+#, fuzzy, c-format
+msgid "Warning! %s is %s.\n"
msgstr "Peringatan! %s sedang dimount.\n"
-#: e2fsck/unix.c:229
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s sedang dimount. "
+msgid "%s is %s.\n"
+msgstr ""
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2602,14 +2828,13 @@ msgstr ""
"Tidak dapat melanjutkan, membatalkan.\n"
"\n"
-#: e2fsck/unix.c:232
-#, c-format
+#: e2fsck/unix.c:264
+#, fuzzy
msgid ""
"\n"
"\n"
-"\a\a\a\aWARNING!!! The filesystem is mounted. If you continue you "
-"***WILL***\n"
-"cause ***SEVERE*** filesystem damage.\a\a\a\n"
+"WARNING!!! The filesystem is mounted. If you continue you ***WILL***\n"
+"cause ***SEVERE*** filesystem damage.\n"
"\n"
msgstr ""
"\n"
@@ -2619,81 +2844,79 @@ msgstr ""
"bisa menyebabkan kerusakan ***PARAH*** di sistem berkas.\a\a\a\n"
"\n"
-#: e2fsck/unix.c:235
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Apakah anda yakin ingin melanjutkan"
-#: e2fsck/unix.c:237
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "pemeriksaan dibatalkan.\n"
-#: e2fsck/unix.c:318
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " berisi sebuah file system dengan errors"
-#: e2fsck/unix.c:320
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " tidak bersih setelah diunmount."
-#: e2fsck/unix.c:322
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr " superblok utama memiliki feature berbeda dari backup"
-#: e2fsck/unix.c:326
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " telah dimount %u kali tanpa dilakukan pemeriksaan"
-#: e2fsck/unix.c:333
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
msgstr ""
" memiliki sistem berkas yang waktu terakhir diperiksa berada di masa yang "
"akan datang"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " telah lewat %u hari tanpa dilakukan pemeriksaan"
-#: e2fsck/unix.c:348
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", pemeriksaan dipaksakan.\n"
-#: e2fsck/unix.c:351
-#, c-format
-msgid "%s: clean, %u/%u files, %u/%u blocks"
+#: e2fsck/unix.c:427
+#, fuzzy, c-format
+msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: bersih, %u/%u berkas, %u/%u blok"
-#: e2fsck/unix.c:368
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (pemeriksaan dibatalkan; power menggunakan batere)"
-#: e2fsck/unix.c:371
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (pemeriksaan dilakukan setelah mount selanjutnya)"
-#: e2fsck/unix.c:373
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (pemeriksaan dilakukan dalam %ld mounts)"
-#: e2fsck/unix.c:521
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "ERROR: Tidak dapat membuka /dev/null (%s)\n"
-#: e2fsck/unix.c:591
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Versi EA tidak valid.\n"
-#: e2fsck/unix.c:606
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Pilihan extended tidak diketahui: %s\n"
-#: e2fsck/unix.c:629
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2702,51 +2925,50 @@ msgstr ""
"Syntax error dalam berkas konfigurasi e2fsck (%s, baris #%d)\n"
"\t%s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Error memvalidasi berkas deskripsi %d: %s\n"
-#: e2fsck/unix.c:701
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr "Informasi File berkas completion tidak valid"
-#: e2fsck/unix.c:716
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr ""
"Hanya salah satu dari pilihan -p/-a, -n atau -y yang boleh dispesifikasikan."
-#: e2fsck/unix.c:737
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "Pilihan -t tidak dilayani dalam versi e2fsck ini.\n"
-#: e2fsck/unix.c:768 e2fsck/unix.c:840 misc/tune2fs.c:588 misc/tune2fs.c:873
-#: misc/tune2fs.c:891
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Tidak dapat meresolve '%s'"
-#: e2fsck/unix.c:819
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
msgstr "Pilihan -n dan -D tidak kompatibel."
-#: e2fsck/unix.c:824
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
msgstr "Pilihan -n dan -c tidak kompatibel."
-#: e2fsck/unix.c:829
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
msgstr "Pilihan -n dan -l/-L tidak kompatibel."
-#: e2fsck/unix.c:869
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr ""
"Pilihan -c dan -l/-L tidak boleh digunakan secara bersamaan dalam satu "
"waktu.\n"
-#: e2fsck/unix.c:917
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
@@ -2755,7 +2977,7 @@ msgstr ""
"E2FSCK_JBD_DEBUG \"%s\" bukan sebuah integer\n"
"\n"
-#: e2fsck/unix.c:926
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2766,44 +2988,65 @@ msgstr ""
"Argument bukan numerik tidak valid untuk -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1129
#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
+#, fuzzy
+msgid "while checking MMP block"
+msgstr "ketika mensetup superblok"
+
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
+msgid ""
+"If you are sure the filesystem is not in use on any node, run:\n"
+"'tune2fs -f -E clear_mmp {device}'\n"
+msgstr ""
+
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Error: ext2fs versi librari ketinggalan jaman!\n"
-#: e2fsck/unix.c:1008
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "ketika mencoba untuk menginisialisasi aplikasi"
-#: e2fsck/unix.c:1019
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tMenggunakan %s, %s\n"
-#: e2fsck/unix.c:1031
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "butuh terminal untuk reparasi interactive"
-#: e2fsck/unix.c:1064
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s mencoba membackup blok...\n"
-#: e2fsck/unix.c:1066
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Superblok tidak valid,"
-#: e2fsck/unix.c:1067
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Deskripsi grup terlihat buruk..."
-#: e2fsck/unix.c:1079
+#: e2fsck/unix.c:1312
+#, fuzzy, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s mencoba membackup blok...\n"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: kembali ke superblock asli\n"
-#: e2fsck/unix.c:1106
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2813,34 +3056,30 @@ msgstr ""
"(Atau sistem berkas superblok terkorupsi)\n"
"\n"
-#: e2fsck/unix.c:1112
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "Mungkinkan ini sebuah partisi dengan panjang nol?\n"
-#: e2fsck/unix.c:1114
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Anda harus memiliki %s akses ke sistem berkas atau menjadi root\n"
-#: e2fsck/unix.c:1119
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "Mungkin tidak ada atau sebuah perangkat swap?\n"
-#: e2fsck/unix.c:1121
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"Sistem berkas dimount atau dibuka secara exclusively oleh aplikasi lain?\n"
-#: e2fsck/unix.c:1124
-#, fuzzy, c-format
+#: e2fsck/unix.c:1366
+#, fuzzy
msgid "Possibly non-existent device?\n"
msgstr "Mungkin tidak ada atau sebuah perangkat swap?\n"
-#: e2fsck/unix.c:1127
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -2849,17 +3088,16 @@ msgstr ""
"baca-saja\n"
"dalam memeriksa perangkat.\n"
-#: e2fsck/unix.c:1191
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Dapatkan versi yang lebih baru dari e2fsck!"
-#: e2fsck/unix.c:1221
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "ketika memeriksa ext3 jurnal untuk %s"
-#: e2fsck/unix.c:1232
-#, c-format
+#: e2fsck/unix.c:1489
msgid ""
"Warning: skipping journal recovery because doing a read-only filesystem "
"check.\n"
@@ -2867,68 +3105,55 @@ msgstr ""
"Peringatan: melewatkan recovery jurnal karena sedang melakukan pemeriksaan "
"di sistem berkas yang baca-saja (read-only).\n"
-#: e2fsck/unix.c:1245
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "tidak dapat menset superblok flag di %s\n"
-#: e2fsck/unix.c:1251
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "ketika merecovery ext3 jurnal dari %s"
-#: e2fsck/unix.c:1276
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s memiliki feature yang tidak disupport:"
-#: e2fsck/unix.c:1292
-msgid "Warning: compression support is experimental.\n"
+#: e2fsck/unix.c:1547
+#, fuzzy, c-format
+msgid "%s: warning: compression support is experimental.\n"
msgstr "Peringatan: support untuk kompresi adalah experimental.\n"
-#: e2fsck/unix.c:1297
-#, c-format
+#: e2fsck/unix.c:1553
+#, fuzzy, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
"E2fsck tidak dikompilasi dengan layanan HTREE,\n"
"\t tetapi sistem berkas %s memiliki direktori HTREE.\n"
-#: e2fsck/unix.c:1350
-msgid "while reading bad blocks inode"
+#: e2fsck/unix.c:1605
+#, fuzzy, c-format
+msgid "%s: %s while reading bad blocks inode\n"
msgstr "ketika sedang membaca inode blok buruk"
-#: e2fsck/unix.c:1352
-#, c-format
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr ""
"Ini bukan pertanda baik, tapi kita akan tetap mencoba untuk meneruskan...\n"
-#: e2fsck/unix.c:1378
-msgid "Couldn't determine journal size"
-msgstr "Tidak dapat menentukan ukuran jurnal"
-
-#: e2fsck/unix.c:1381
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Membuat jurnal (%d blok): "
-#: e2fsck/unix.c:1388 misc/mke2fs.c:2344
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tketika mencoba untuk membuat jurnal"
-
-#: e2fsck/unix.c:1391
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " Selesai.\n"
-#: e2fsck/unix.c:1392
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
@@ -2936,25 +3161,24 @@ msgstr ""
"\n"
"*** jurnal telah dibuat kembali - sistem berkas sekarang ext3 lagi ***\n"
-#: e2fsck/unix.c:1399
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Mengulang kembali e2fsck dari awal...\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "ketika mereset context"
-#: e2fsck/unix.c:1410
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck dibatalkan.\n"
-#: e2fsck/unix.c:1415
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "dibatalkan"
-#: e2fsck/unix.c:1427
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -2963,12 +3187,12 @@ msgstr ""
"\n"
"%s: ***** FILE SYSTEM TELAH TERMODIFIKASI *****\n"
-#: e2fsck/unix.c:1430
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** REBOOT LINUX *****\n"
-#: e2fsck/unix.c:1438
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -2979,43 +3203,43 @@ msgstr ""
"%s: ********** PERINGATAN: Sistem berkas masih memiliki errors *********\n"
"\n"
-#: e2fsck/unix.c:1478
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr "ketika sedang menset informasi checksum di grup blok"
-#: e2fsck/util.c:138 misc/util.c:68
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "yY"
-#: e2fsck/util.c:139
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:153
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<y>"
-#: e2fsck/util.c:155
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:157
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr "(y/n)"
-#: e2fsck/util.c:172
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "dibatalkan!\n"
-#: e2fsck/util.c:187
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "ya\n"
-#: e2fsck/util.c:189
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "tidak\n"
-#: e2fsck/util.c:199
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3024,7 +3248,7 @@ msgstr ""
"%s? tidak\n"
"\n"
-#: e2fsck/util.c:203
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3033,38 +3257,38 @@ msgstr ""
"%s? ya\n"
"\n"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "yes"
msgstr "ya"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "no"
msgstr "tidak"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps: ilegal bitmap blok untuk %s"
-#: e2fsck/util.c:226
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "membaca inode dan blok bitmap"
-#: e2fsck/util.c:231
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "ketika sedang mencoba untuk membaca bitmap untuk %s"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "menulis blok dan inode bitmaps"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr "ketika mencoba untuk menulis blok dan inode bitmap untuk %s"
-#: e2fsck/util.c:260
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3078,45 +3302,52 @@ msgstr ""
"MANUAL.\n"
"\t(i.e, tanpa pilihan -a atau -p)\n"
-#: e2fsck/util.c:341
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Memori yang digunakan: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:345
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr "Memori yang digunakan: %lu, "
-#: e2fsck/util.c:352
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "waktu: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:357
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "waktu yang dijalani: %6.3f\n"
-#: e2fsck/util.c:391 e2fsck/util.c:405
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr "ketika membaca inode %lu dalam %s"
-#: e2fsck/util.c:419 e2fsck/util.c:432
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr "ketika menulis inode %lu dalam %s"
-#: e2fsck/util.c:581
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "ketika mengalokasikan zeroizing buffer"
-#: misc/badblocks.c:66
-msgid "done \n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+
+#: misc/badblocks.c:69
+#, fuzzy
+msgid "done \n"
msgstr "selesai \n"
-#: misc/badblocks.c:89
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
@@ -3132,7 +3363,7 @@ msgstr ""
" [-e pattern_tes] [-t pattern_test [...]]]\n"
" perangkat [blok_terakhir [blok_pertama]]\n"
-#: misc/badblocks.c:100
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
@@ -3141,80 +3372,80 @@ msgstr ""
"%s: Pilihan -n dan -w adalah mutually exclusive.\n"
"\n"
-#: misc/badblocks.c:202
-#, c-format
-msgid "%6.2f%% done, %s elapsed"
+#: misc/badblocks.c:218
+#, fuzzy, c-format
+msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr "%6.2f%% selesai, %s berjalan"
-#: misc/badblocks.c:296
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Memeriksa dengan pattern random: "
-#: misc/badblocks.c:314
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Memeriksa dengan pattern 0x"
-#: misc/badblocks.c:342 misc/badblocks.c:411
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "ketika mencari(seek)"
-#: misc/badblocks.c:353
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Nilai aneh (%ld) dalam do_read\n"
-#: misc/badblocks.c:431
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "ketika ext2fs_sync_device"
-#: misc/badblocks.c:450 misc/badblocks.c:714
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "ketika di awal iterasi daftara blok buruk"
-#: misc/badblocks.c:464 misc/badblocks.c:566 misc/badblocks.c:724
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "ketika mengalokasikan buffer"
-#: misc/badblocks.c:468
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Memeriksa blok %lu ke %lu\n"
-#: misc/badblocks.c:473
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Memeriksa blok buruk dalam mode baca-saja (read-only)\n"
-#: misc/badblocks.c:482
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Memeriksa blok buruk (pemeriksaan baca-saja): "
-#: misc/badblocks.c:490 misc/badblocks.c:598 misc/badblocks.c:643
-#: misc/badblocks.c:787
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr "Terlalu banyak blok buruk, membatalkan pemeriksaan\n"
-#: misc/badblocks.c:573
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Memeriksa untuk blok buruk dalam mode baca-tulis\n"
-#: misc/badblocks.c:575 misc/badblocks.c:737
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Dari blok %lu ke %lu\n"
-#: misc/badblocks.c:633
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Membaca dan membandingkan: "
-#: misc/badblocks.c:736
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr "Memeriksa untuk blok buruk dalal mode tidak-merusak baca-tulis\n"
-#: misc/badblocks.c:742
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr "Memeriksa untuk blok buruk (pemeriksaan tidak-merusak baca-tulis)\n"
-#: misc/badblocks.c:749
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3222,53 +3453,53 @@ msgstr ""
"\n"
"Interupsi tertangkap, membersihkan\n"
-#: misc/badblocks.c:825
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "ketika memerikas data ditulis, blok %lu"
-#: misc/badblocks.c:936 misc/util.c:156
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s sedang dimount; "
-#: misc/badblocks.c:938
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "badbloks tetap dipaksakan. Mudah-mudahan /etc/mtab tidak benar\n"
-#: misc/badblocks.c:943
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "ini tidak aman untuk menjalankan badblocks!\n"
-#: misc/badblocks.c:948 misc/util.c:167
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s kelihatannya sedang digunakan oleh system; "
-#: misc/badblocks.c:951
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "badblocks dipaksakan saja.\n"
-#: misc/badblocks.c:971
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "tidak valid %s - %s"
-#: misc/badblocks.c:1080
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "tidak dapat mengalokasikan memori untuk test_pattern - %s"
-#: misc/badblocks.c:1107
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr ""
"Maksimum dari satu test_pattern boleh dispesifikasi dalam mode baca-saja"
-#: misc/badblocks.c:1113
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "Random test_pattern tidak diperbolehkan dalam mode baca-saja"
-#: misc/badblocks.c:1127
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
@@ -3276,131 +3507,151 @@ msgstr ""
"Tidak dapat menentukan ukuran perangkat; anda harus menspesifikasikan\n"
"ukuran perangkat secara manual\n"
-#: misc/badblocks.c:1133
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "ketika mencoba untuk menentukakn ukuran perangkat"
-#: misc/badblocks.c:1138
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "blok terakhir"
-#: misc/badblocks.c:1144
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "blok pertama"
-#: misc/badblocks.c:1147
-#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+#: misc/badblocks.c:1209
+#, fuzzy, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
msgstr "awal blok tidak valid (%lu): harus lebih kecil dari %lu"
-#: misc/badblocks.c:1203
+#: misc/badblocks.c:1216
+#, fuzzy, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "awal blok tidak valid (%lu): harus lebih kecil dari %lu"
+
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "ketika membuat daftar blok buruk dalam memori"
-#: misc/badblocks.c:1218
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr ""
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "ketika menambahkan daftar blok buruk dalam memori"
-#: misc/badblocks.c:1242
-#, c-format
-msgid "Pass completed, %u bad blocks found.\n"
+#: misc/badblocks.c:1323
+#, fuzzy, c-format
+msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Tahap selesai, %u blok buruk ditemukan.\n"
-#: misc/chattr.c:85
-#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
+#: misc/chattr.c:86
+#, fuzzy, c-format
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
msgstr "Penggunaan: %s [-RVf] [-+=AacDdeijsSu] [-v versi] berkas...\n"
-#: misc/chattr.c:153
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "versi buruk - %s\n"
-#: misc/chattr.c:200 misc/lsattr.c:115
+#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "ketika mencoba untuk melakukan statistik %s"
-#: misc/chattr.c:207
+#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr "ketika membaca flags di %s"
-#: misc/chattr.c:216 misc/chattr.c:235
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr "Menghapus tanda ekstensi yang tidak didukung di %s"
-
-#: misc/chattr.c:221 misc/chattr.c:240
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "Flags dari %s diset sebagai "
-#: misc/chattr.c:249
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "ketika menset flags di %s"
-#: misc/chattr.c:257
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Versi dari %s diset sebagai %lu\n"
-#: misc/chattr.c:261
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "ketika menset versi di %s"
-#: misc/chattr.c:281
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Tidak dapat mengalokasikan variable path di chattr_dir_proc"
-#: misc/chattr.c:320
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= tidak kompatibel dengan - dan +\n"
-#: misc/chattr.c:328
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Harus menggunakan '-v', =, - atau +\n"
-#: misc/dumpe2fs.c:53
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr ""
"Penggunaan: %s [-bfhixV] [-o superblok=<jumlah>] [-o ukuranblok=<besar>] "
"perangkat\n"
-#: misc/dumpe2fs.c:182
+#: misc/dumpe2fs.c:159
+#, fuzzy
+msgid "blocks"
+msgstr "bblock"
+
+#: misc/dumpe2fs.c:169
+msgid "clusters"
+msgstr ""
+
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Grup %lu: (blok "
-#: misc/dumpe2fs.c:187
-#, c-format
-msgid " Checksum 0x%04x, unused inodes %d\n"
+#: misc/dumpe2fs.c:205
+#, fuzzy, c-format
+msgid " Checksum 0x%04x"
msgstr " Checksum 0x%04x, inode yang tidak digunakan %d\n"
-#: misc/dumpe2fs.c:192
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr ""
+
+#: misc/dumpe2fs.c:208
+#, fuzzy, c-format
+msgid ", unused inodes %u\n"
+msgstr ", %u inode yang tidak digunakan\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s superblok di "
-#: misc/dumpe2fs.c:193
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Utama"
-#: misc/dumpe2fs.c:193
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Cadangan"
-#: misc/dumpe2fs.c:197
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Grup deskripsi di "
-#: misc/dumpe2fs.c:201
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3408,20 +3659,19 @@ msgstr ""
"\n"
" Reserved GDT blok di "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Grup deskripsi di "
-#: misc/dumpe2fs.c:214
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Blok bitmap di "
-#: misc/dumpe2fs.c:219
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", Inode bitmap di "
-#: misc/dumpe2fs.c:224
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3429,59 +3679,63 @@ msgstr ""
"\n"
" Inode tabel di "
-#: misc/dumpe2fs.c:231
-#, c-format
+#: misc/dumpe2fs.c:249
+#, fuzzy, c-format
msgid ""
"\n"
-" %u free blocks, %u free inodes, %u directories%s"
+" %u free %s, %u free inodes, %u directories%s"
msgstr ""
"\n"
" %u blok bebas, %u inode bebas, %u direktori%s"
-#: misc/dumpe2fs.c:238
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u inode yang tidak digunakan\n"
-#: misc/dumpe2fs.c:241
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Blok bebas: "
-#: misc/dumpe2fs.c:251
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Inode bebas: "
-#: misc/dumpe2fs.c:282
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "ketika mencetak daftar blok buruk"
-#: misc/dumpe2fs.c:288
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Blok buruk: %u"
-#: misc/dumpe2fs.c:315 misc/tune2fs.c:281
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "ketika membaca jurnal inode"
-#: misc/dumpe2fs.c:321
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr "ketika membuka jurnal inode"
-#: misc/dumpe2fs.c:327
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr "ketika membaca super blok jurnal"
-#: misc/dumpe2fs.c:337
-#, c-format
+#: misc/dumpe2fs.c:364
+#, fuzzy
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Jurnal superblok tidak ditemukan!\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr "Fasilitas jurnal: "
-#: misc/dumpe2fs.c:350
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Ukuran jurnal: "
-#: misc/dumpe2fs.c:361
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
@@ -3492,15 +3746,20 @@ msgstr ""
"Urutan jurnal: 0x%08x\n"
"Awal dari jurnal: %u\n"
-#: misc/dumpe2fs.c:380 misc/tune2fs.c:202
+#: misc/dumpe2fs.c:398
+#, fuzzy, c-format
+msgid "Journal errno: %d\n"
+msgstr "Pengguna jurnal: %s\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "ketikan membaca superblok jurnal"
-#: misc/dumpe2fs.c:388
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Tidak dapat mencari nomor magic di jurnal superblok"
-#: misc/dumpe2fs.c:392
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3519,27 +3778,26 @@ msgstr ""
"Awal dari jurnal: %u\n"
"Jumlah pengguna dari jurnal: %u\n"
-#: misc/dumpe2fs.c:405
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Pengguna jurnal: %s\n"
-#: misc/dumpe2fs.c:421 misc/mke2fs.c:700 misc/tune2fs.c:910
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Tidak dapat mengalokasikan memori untuk memparse pilihan!\n"
-#: misc/dumpe2fs.c:447
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Parameter superblok tidak valid: %s\n"
-#: misc/dumpe2fs.c:462
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Parameter ukuran-blok tidak valid: %s\n"
-#: misc/dumpe2fs.c:473
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3562,18 +3820,17 @@ msgstr ""
"\tsuperblock=<nomor superblok>\n"
"\tblocksize=<besar blok>\n"
-#: misc/dumpe2fs.c:532 misc/mke2fs.c:1462
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tMenggunakan %s\n"
-#: misc/dumpe2fs.c:568 misc/e2image.c:681 misc/tune2fs.c:1626
-#: resize/main.c:312
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Tidak dapat mencari superblok sistem berkas yang valid.\n"
-#: misc/dumpe2fs.c:593
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3582,77 +3839,303 @@ msgstr ""
"\n"
"%s: %s: error membaca bitmaps: %s\n"
-#: misc/e2image.c:52
-#, c-format
-msgid "Usage: %s [-rsI] device image_file\n"
+#: misc/e2image.c:101
+#, fuzzy, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
msgstr "Penggunaan: %s [-rsI] perangkat image_file\n"
-#: misc/e2image.c:64
-msgid "Couldn't allocate header buffer\n"
-msgstr "Tidak dapat mengalokasikan buffer header\n"
+#: misc/e2image.c:103
+#, fuzzy, c-format
+msgid " %s -I device image-file\n"
+msgstr "Penggunaan: %s [-rsI] perangkat image_file\n"
-#: misc/e2image.c:83
+#: misc/e2image.c:104
#, c-format
-msgid "short write (only %d bytes) for writing image header"
-msgstr "menulis pendek (hanya %d bytes) untuk menulis header image"
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+#, fuzzy
+msgid "while allocating buffer"
+msgstr "ketika mengalokasikan buffer"
+
+#: misc/e2image.c:174
+#, fuzzy, c-format
+msgid "Writing block %llu\n"
+msgstr "Memeriksa blok %lu ke %lu\n"
-#: misc/e2image.c:102
+#: misc/e2image.c:188
+#, fuzzy, c-format
+msgid "error writing block %llu"
+msgstr "Error menulis block %lu (%s). "
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
+
+#: misc/e2image.c:208
+msgid "Error: header size is bigger than wrt_size\n"
+msgstr ""
+
+#: misc/e2image.c:213
+msgid "Couldn't allocate header buffer\n"
+msgstr "Tidak dapat mengalokasikan buffer header\n"
+
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "ketika menulis superblok"
-#: misc/e2image.c:110
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "ketika menulis tabel inode"
-#: misc/e2image.c:117
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "ketika menulis blok bitmap"
-#: misc/e2image.c:124
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "ketika menulis inode bitmap"
-#: misc/e2label.c:57
+#: misc/e2image.c:502
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Direktori block %u (#%d) kosong dalam inode %u\n"
+
+#: misc/e2image.c:514
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Direktori block %u (#%d) kosong dalam inode %u\n"
+
+#: misc/e2image.c:555
+#, fuzzy, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%u inodes, %u blok\n"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, fuzzy, c-format
+msgid "error reading block %llu"
+msgstr "Error membaca block %lu (%s). "
+
+#: misc/e2image.c:715
+#, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr ""
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+#, fuzzy
+msgid "while allocating l1 table"
+msgstr "ketika mengalokasikan buffer"
+
+#: misc/e2image.c:800
+#, fuzzy
+msgid "while allocating l2 cache"
+msgstr "ketika mengalokasikan buffer"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+#, fuzzy
+msgid "while allocating ext2_qcow2_image"
+msgstr "ketika mengalokasikan zeroizing buffer"
+
+#: misc/e2image.c:1152
+#, fuzzy
+msgid "while initializing ext2_qcow2_image"
+msgstr "ketika menginisialisasi jurnal superblok"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+#, fuzzy
+msgid "while allocating block bitmap"
+msgstr "ketika menulis blok bitmap"
+
+#: misc/e2image.c:1278
+#, fuzzy
+msgid "while allocating scramble block bitmap"
+msgstr "ketika menulis blok bitmap"
+
+#: misc/e2image.c:1285
+#, fuzzy
+msgid "Scanning inodes...\n"
+msgstr "Memeriksa tabel inode"
+
+#: misc/e2image.c:1297
+#, fuzzy
+msgid "Can't allocate block buffer"
+msgstr "Tidak dapat mengalokasikan block buffer (ukuran=%d)\n"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, fuzzy, c-format
+msgid "while iterating over inode %u"
+msgstr "ketika memperoleh inode berikutnya"
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+#, fuzzy
+msgid "error reading bitmaps"
+msgstr "ketika membaca bitmap"
+
+#: misc/e2image.c:1415
+#, fuzzy
+msgid "while opening device file"
+msgstr "ketika mencoba membuka inode scan"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "ketika menulis tabel inode"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+#, fuzzy
+msgid "checking if mounted"
+msgstr " (pemeriksaan dilakukan dalam %ld mounts)"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
+#, c-format
+msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
+msgstr ""
+
+#: misc/e2image.c:1639
+#, fuzzy
+msgid "The -c option only supported in raw mode\n"
+msgstr "Pilihan -t tidak dilayani dalam versi e2fsck ini.\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "Pilihan -t tidak dilayani dalam versi e2fsck ini.\n"
+
+#: misc/e2image.c:1651
+#, fuzzy
+msgid "while allocating check_buf"
+msgstr "ketika mengalokasikan buffer"
+
+#: misc/e2image.c:1657
+#, fuzzy
+msgid "The -p option only supported in raw mode\n"
+msgstr "Pilihan -t tidak dilayani dalam versi e2fsck ini.\n"
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
+
+#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
msgstr "e2label: tidak dapat membuka %s\n"
-#: misc/e2label.c:62
+#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
msgstr "e2label: tidak dapat mencari superblok\n"
-#: misc/e2label.c:67
+#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
msgstr "e2label: error membaca superblok\n"
-#: misc/e2label.c:71
+#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: bukan sebuah ext2 sistem berkas\n"
-#: misc/e2label.c:96 misc/tune2fs.c:1761
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Peringatan: label terlalu panjang, memotong.\n"
-#: misc/e2label.c:99
+#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
msgstr "e2label: tidak dapat mencari superblok lagi\n"
-#: misc/e2label.c:104
+#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2label: error menulis superblok\n"
-#: misc/e2label.c:116 misc/tune2fs.c:580
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Penggunaan: e2label perangkat [labelbaru]\n"
-#: misc/e2undo.c:35
+#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
msgstr "Penggunaan: %s <berkas transaksi> <sistem berkas>\n"
@@ -3661,7 +4144,7 @@ msgstr "Penggunaan: %s <berkas transaksi> <sistem berkas>\n"
msgid "Failed to read the file system data \n"
msgstr "Gagal membaca data filesystem \n"
-#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:205
+#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
msgid "Failed tdb_fetch %s\n"
msgstr "Gagal tdb_fetch %s\n"
@@ -3675,32 +4158,32 @@ msgstr "Sistem berkas waktu mount tidak cocok %u\n"
msgid "The file system UUID didn't match \n"
msgstr "Sistem berkas UUID tidak cocok \n"
-#: misc/e2undo.c:162
+#: misc/e2undo.c:163
#, c-format
msgid "Failed tdb_open %s\n"
msgstr "Gagal tdb_open %s\n"
-#: misc/e2undo.c:168
+#: misc/e2undo.c:169
#, c-format
msgid "Error while determining whether %s is mounted.\n"
msgstr "Error ketika menentukan apakah %s sudah dimount.\n"
-#: misc/e2undo.c:174
+#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
msgstr ""
"e2undo seharusnya hanya dijalankan di sistem berkas yang sudah diunmount\n"
-#: misc/e2undo.c:183
+#: misc/e2undo.c:184
#, c-format
msgid "Failed to open %s\n"
msgstr "Gagal membuka %s\n"
-#: misc/e2undo.c:209
-#, c-format
-msgid "Replayed transaction of size %zd at location %ld\n"
+#: misc/e2undo.c:210
+#, fuzzy, c-format
+msgid "Replayed transaction of size %zd at location %llu\n"
msgstr "Balasan ukuran transaksi %zd di lokasi %ld\n"
-#: misc/e2undo.c:215
+#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
msgstr "Gagal menulis %s\n"
@@ -3715,9 +4198,10 @@ msgstr "PERINGATAN: tidak dapat membuka %s: %s\n"
msgid "WARNING: bad format on line %d of %s\n"
msgstr "PERINGATAN: format buruk di bari %d dari %s\n"
-#: misc/fsck.c:368
+#: misc/fsck.c:370
+#, fuzzy
msgid ""
-"\a\a\aWARNING: Your /etc/fstab does not contain the fsck passno\n"
+"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"
@@ -3727,37 +4211,37 @@ msgstr ""
"\tseharusnya membetulkan berkas /etc/fstab anda secepatnya.\n"
"\n"
-#: misc/fsck.c:477
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: tidak ditemukan\n"
-#: misc/fsck.c:593
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: tunggu: Tidak ada lagi proses anak?!?\n"
-#: misc/fsck.c:615
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Peringatan... %s untuk perangkat %s keluar dengan sinyal %d.\n"
-#: misc/fsck.c:621
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: status adalah %x, seharusnya tidak pernah terjadi.\n"
-#: misc/fsck.c:660
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "Berakhir dengan %s (status keluar %d)\n"
-#: misc/fsck.c:720
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: Error %d ketika menjalankan fsck.%s untuk %s\n"
-#: misc/fsck.c:741
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3766,11 +4250,11 @@ msgstr ""
"pilihan -t harus diwali\n"
"dengan 'no' atau '!'.\n"
-#: misc/fsck.c:760
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "Tidak dapat mengalokasikan memori untuk tipe sistem berkas\n"
-#: misc/fsck.c:883
+#: misc/fsck.c:884
#, c-format
msgid ""
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
@@ -3779,62 +4263,63 @@ msgstr ""
"%s: melewatkan baris buruk di /etc/fstab: bind mount dengan tidak nol fsck "
"tahap nomor\n"
-#: misc/fsck.c:910
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: tidak dapat memeriksa %s: fsck.%s tidak ditemukan\n"
-#: misc/fsck.c:966
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Memeriksa semua filesytem.\n"
-#: misc/fsck.c:1057
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--menunggu-- (tahap %d)\n"
-#: misc/fsck.c:1077
+#: misc/fsck.c:1078
msgid ""
"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
"Penggunaan: fsck [-AMNPRTV] -C [fd] ] [-t fstype] [fs-pilihan] "
"[filesys ...]\n"
-#: misc/fsck.c:1119
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: terlalu banyak perangkat\n"
-#: misc/fsck.c:1152 misc/fsck.c:1238
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: terlalu banyak argumen\n"
-#: misc/lsattr.c:73
+#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
msgstr "Penggunaan: %s [-RVadlv] [berkas...]\n"
-#: misc/lsattr.c:83
+#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
msgstr "Ketika membaca flags di %s"
-#: misc/lsattr.c:90
+#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
msgstr "Ketika membaca versi di %s"
-#: misc/mke2fs.c:108
-#, c-format
+#: misc/mke2fs.c:123
+#, fuzzy, c-format
msgid ""
-"Usage: %s [-c|-l filename] [-b block-size] [-f fragment-size]\n"
+"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
"Penggunaan: %s [-c|-l namafile] [-b ukuran-blok] [-f ukuran-fragmen]\n"
"\t[-i bytes-per-inode] [-I ukuran-inode] [-J pilihan-jurnal]\n"
@@ -3844,37 +4329,37 @@ msgstr ""
"\t[-O fasilitas[,...]] [-r revisi-fs] [-E pilihan-tambahan[,...]]\n"
"\t[-T type-fs] [-U UUID] [-jnqvFKSV] perangkat [jumlah-blok]\n"
-#: misc/mke2fs.c:210
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Menjalankan perintah: %s\n"
-#: misc/mke2fs.c:214
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "ketika mencoba untuk menjalankan '%s'"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "ketika memproses daftar dari blok buruk dari aplikasi"
-#: misc/mke2fs.c:248
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Blok %d dalam daerah deskripsi superblok/grup utama buruk.\n"
-#: misc/mke2fs.c:250
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Blok %u sampai %u harus dalam keadaan baik untuk membuat sebuah sistem "
"berkas.\n"
-#: misc/mke2fs.c:253
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Membatalkan...\n"
-#: misc/mke2fs.c:273
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -3885,191 +4370,254 @@ msgstr ""
"\tblok buruk.\n"
"\n"
-#: misc/mke2fs.c:292
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "ketika menandai blok buruk sebagai digunakan"
-#: misc/mke2fs.c:350
-msgid "done \n"
-msgstr "selesai \n"
-
-#: misc/mke2fs.c:364
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Menulis tabel inode: "
-#: misc/mke2fs.c:388
-#, c-format
+#: misc/mke2fs.c:405
+#, fuzzy, c-format
msgid ""
"\n"
-"Could not write %d blocks in inode table starting at %u: %s\n"
+"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
"Tidak dapat menulis %d blok dalam tabel inode dimulai di %u: %s\n"
-#: misc/mke2fs.c:412
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
+msgid "done \n"
+msgstr "selesai \n"
+
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "ketika membuat direktori root"
-#: misc/mke2fs.c:419
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "ketika membaca inode root"
-#: misc/mke2fs.c:433
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "ketika menset kepemilikan inode root"
-#: misc/mke2fs.c:451
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "ketika membuat /lost+found"
-#: misc/mke2fs.c:458
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "ketika mencari /lost+found"
-#: misc/mke2fs.c:471
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "ketika mengekspansi /lost+found"
-#: misc/mke2fs.c:486
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "ketika menset inode blok buruk"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Kehabisan memori menghapus sektor %d-%d\n"
-#: misc/mke2fs.c:523
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Peringatan: tidak dapat membaca blok 0: %s\n"
-#: misc/mke2fs.c:539
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Peringatan: tidak dapat menghapus sektor %d: %s\n"
-#: misc/mke2fs.c:555
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "ketika menginisialisasi jurnal superblok"
-#: misc/mke2fs.c:561
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Mengosongkan perangkat jurnal: "
-#: misc/mke2fs.c:574
-#, c-format
-msgid "while zeroing journal device (block %u, count %d)"
+#: misc/mke2fs.c:591
+#, fuzzy, c-format
+msgid "while zeroing journal device (block %llu, count %d)"
msgstr "ketika mengosongkan perangkat jurnal (blok %u, jumlah %d)"
-#: misc/mke2fs.c:590
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "ketika menulis jurnal superblok"
-#: misc/mke2fs.c:606
-#, c-format
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr "Mengubah sistem berkas di %s ke %u (%dk) blok.\n"
+
+#: misc/mke2fs.c:632
+#, fuzzy, c-format
msgid ""
-"warning: %u blocks unused.\n"
+"warning: %llu blocks unused.\n"
"\n"
msgstr ""
"peringatan: %u blok tidak digunakan.\n"
"\n"
-#: misc/mke2fs.c:611
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Sistem berkas label=%s\n"
-#: misc/mke2fs.c:612
-msgid "OS type: "
+#: misc/mke2fs.c:640
+#, fuzzy, c-format
+msgid "OS type: %s\n"
msgstr "Tipe OS: "
-#: misc/mke2fs.c:617
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Ukuran blok=%u (log=%u)\n"
-#: misc/mke2fs.c:619
+#: misc/mke2fs.c:646
+#, fuzzy, c-format
+msgid "Cluster size=%u (log=%u)\n"
+msgstr "Ukuran blok=%u (log=%u)\n"
+
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Ukuran pecahan=%u (log=%u)\n"
-#: misc/mke2fs.c:621
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Stride=%u blok, Lebar stripe=%u blok\n"
-#: misc/mke2fs.c:623
-#, c-format
-msgid "%u inodes, %u blocks\n"
+#: misc/mke2fs.c:654
+#, fuzzy, c-format
+msgid "%u inodes, %llu blocks\n"
msgstr "%u inodes, %u blok\n"
-#: misc/mke2fs.c:625
-#, c-format
-msgid "%u blocks (%2.2f%%) reserved for the super user\n"
+#: misc/mke2fs.c:656
+#, fuzzy, c-format
+msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%u blok (%2.2f%%) reserved untuk super user\n"
-#: misc/mke2fs.c:628
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Data blok pertama=%u\n"
-#: misc/mke2fs.c:630
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maksimum blok sistem berkas=%lu\n"
-#: misc/mke2fs.c:634
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u grup blok\n"
-#: misc/mke2fs.c:636
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u grup blok\n"
-#: misc/mke2fs.c:637
+#: misc/mke2fs.c:672
+#, fuzzy, c-format
+msgid "%u blocks per group, %u clusters per group\n"
+msgstr "%u blok per grup, %u potongan per grup\n"
+
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u blok per grup, %u potongan per grup\n"
-#: misc/mke2fs.c:639
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u inode per grup\n"
-#: misc/mke2fs.c:646
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Sistem berkas label=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Cadangan superblok disimpan di blok: "
-#: misc/mke2fs.c:725
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, fuzzy, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "Ukuran inode baru tidak valid: %s\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "Ukuran inode baru tidak valid: %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
+#, fuzzy, c-format
+msgid "Invalid mmp_update_interval: %s\n"
+msgstr "pilihan mount tidak valid diset: %s\n"
+
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Parameter superblok tidak valid: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Parameter stride tidak valid: %s\n"
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Parameter stripe-width tidak valid: %s\n"
-#: misc/mke2fs.c:762
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Parameter resize tidak valid: %s\n"
-#: misc/mke2fs.c:769
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr "Resize maksimum harus lebih besar daripada ukuran sistem berkas.\n"
-#: misc/mke2fs.c:793
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr "On-line resizing tidak dilayani dengan sistem berkas revisi 0\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, fuzzy, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "pilihan mount tidak valid diset: %s\n"
+
+#: misc/mke2fs.c:976
+#, fuzzy, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "Parameter stride tidak valid: %s\n"
+
+#: misc/mke2fs.c:987
#, fuzzy, c-format
msgid ""
"\n"
@@ -4079,13 +4627,21 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
+"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
+"\tquotatype=<usr OR grp>\n"
"\n"
msgstr ""
"\n"
@@ -4102,7 +4658,7 @@ msgstr ""
"\ttest_fs\n"
"\n"
-#: misc/mke2fs.c:837
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4113,7 +4669,7 @@ msgstr ""
"Peringatan: RAID stripe-width %u bukan sebuah even multiple dari stride %u.\n"
"\n"
-#: misc/mke2fs.c:869
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4122,23 +4678,27 @@ msgstr ""
"Syntax error dalam mke2fs berkas konfigurasi (%s, baris #%d)\n"
"\t%s\n"
-#: misc/mke2fs.c:882 misc/tune2fs.c:369
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Pilihan sistem berkas tidak valid diset: %s\n"
-#: misc/mke2fs.c:1019
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
+#, c-format
+msgid "Invalid mount option set: %s\n"
+msgstr "pilihan mount tidak valid diset: %s\n"
+
+#: misc/mke2fs.c:1218
#, fuzzy, c-format
msgid ""
"\n"
"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
"\n"
-"Peringatan! Berkas mke2fs.conf anda tidak mendefinisikan tipe sistem berkas %"
-"s.\n"
+"Peringatan! Berkas mke2fs.conf anda tidak mendefinisikan tipe sistem berkas "
+"%s.\n"
-#: misc/mke2fs.c:1023
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
@@ -4146,12 +4706,12 @@ msgstr ""
"Anda mungkin butuh untuk memasang sebuah update dari berkas mke2fs.conf.\n"
"\n"
-#: misc/mke2fs.c:1027
-#, fuzzy, c-format
+#: misc/mke2fs.c:1226
+#, fuzzy
msgid "Aborting...\n"
msgstr "Membatalkan...\n"
-#: misc/mke2fs.c:1064
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4159,130 +4719,126 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:1276
+#: misc/mke2fs.c:1435
+#, fuzzy
+msgid "Couldn't allocate memory for new PATH.\n"
+msgstr "Tidak dapat mengalokasikan memori untuk nama berkas tdb\n"
+
+#: misc/mke2fs.c:1476
+#, c-format
+msgid "Couldn't init profile successfully (error: %ld).\n"
+msgstr ""
+
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "Ukuran blok tidak valid - %s"
-#: misc/mke2fs.c:1280
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Peringatan: ukuranblok %d tidak berguna dalam kebanyakan system.\n"
-#: misc/mke2fs.c:1296
-#, c-format
-msgid "invalid fragment size - %s"
-msgstr "ukuran potongan/fragmen tidak valid - %s"
+#: misc/mke2fs.c:1529
+#, fuzzy, c-format
+msgid "invalid cluster size - %s"
+msgstr "Ukuran blok tidak valid - %s"
-#: misc/mke2fs.c:1302
-#, c-format
-msgid "Warning: fragments not supported. Ignoring -f option\n"
-msgstr "Peringatan: fragment tidak dilayani. Mengabaikan pilihan -f\n"
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr ""
-#: misc/mke2fs.c:1309
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Jumlah ilegal untuk blok per grup"
-#: misc/mke2fs.c:1314
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "blok per grup harus kelipatan dari 8"
-#: misc/mke2fs.c:1322
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Jumlah ilegal untuk ukuran flex_bg"
-#: misc/mke2fs.c:1328
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "ukuran flex_bg harus kelipatan dari 2"
-#: misc/mke2fs.c:1338
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "rasio dari inode tidak valid %s (min %d/max %d)"
-#: misc/mke2fs.c:1348
+#: misc/mke2fs.c:1590
#, c-format
+msgid "invalid inode size - %s"
+msgstr "ukuran inode tidak valid - %s"
+
+#: misc/mke2fs.c:1603
msgid ""
"Warning: -K option is deprecated and should not be used anymore. Use '-E "
"nodiscard' extended option instead!\n"
msgstr ""
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "dalam malloc untuk bad_block_filename"
-#: misc/mke2fs.c:1372
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "persentasi reserved blok tidak valid - %s"
-#: misc/mke2fs.c:1390
+#: misc/mke2fs.c:1642
+#, c-format
+msgid "bad num inodes - %s"
+msgstr "jumlah inode buruk - %s"
+
+#: misc/mke2fs.c:1659
#, c-format
msgid "bad revision level - %s"
msgstr "level revisi buruk - %s"
-#: misc/mke2fs.c:1402
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "ukuran inode tidak valid - %s"
+#: misc/mke2fs.c:1673
+#, fuzzy
+msgid "The -t option may only be used once"
+msgstr "-o hanya boleh dispesifikasikan sekali"
-#: misc/mke2fs.c:1422
-#, c-format
-msgid "bad num inodes - %s"
-msgstr "jumlah inode buruk - %s"
+#: misc/mke2fs.c:1681
+#, fuzzy
+msgid "The -T option may only be used once"
+msgstr "-o hanya boleh dispesifikasikan sekali"
-#: misc/mke2fs.c:1487 misc/mke2fs.c:2299
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "ketika mencoba membuka perangkat jurnal %s\n"
-#: misc/mke2fs.c:1493
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
"Perangkat jurnal ukuranblok (%d) lebih kecil daripada minimum ukuranblok %d\n"
-#: misc/mke2fs.c:1499
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Menggunakan perangkat jurnal ukuranblok: %d\n"
-#: misc/mke2fs.c:1508
-#, c-format
-msgid "%d-byte blocks too big for system (max %d)"
-msgstr "%d-byte bloks terlalu besar untuk system (maksimal %d)"
-
-#: misc/mke2fs.c:1512
-#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Peringatan: %d-byte blok terlalu besar untuk system (maksimal %d), dipaksa "
-"untuk melanjutkan\n"
-
-#: misc/mke2fs.c:1521
+#: misc/mke2fs.c:1757
#, fuzzy, c-format
-msgid "invalid blocks count '%s' on device '%s'"
+msgid "invalid blocks '%s' on device '%s'"
msgstr "jumlah blok tidak valid - %s"
-#: misc/mke2fs.c:1531
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "sistem berkas"
-#: misc/mke2fs.c:1567
-#, c-format
-msgid ""
-"%s: Size of device %s too big to be expressed in 32 bits\n"
-"\tusing a blocksize of %d.\n"
-msgstr ""
-"%s: Ukuran dari perangkat %s terlalu besar untuk diexpresikan dalam 32 bit\n"
-"\tmenggunakan sebuah ukuranblok dari %d.\n"
-
-#: misc/mke2fs.c:1576 resize/main.c:381
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "ketika mencoba untuk menentukan ukuran sistem berkas"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4290,7 +4846,7 @@ msgstr ""
"Tidak dapat menentukan ukuran perangkat; anda harus menspesifikasikan\n"
"ukuran dari sistem berkas\n"
-#: misc/mke2fs.c:1590
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4304,58 +4860,29 @@ msgstr ""
"reboot\n"
"\tuntuk membaca kembali tabel partisi.\n"
-#: misc/mke2fs.c:1608
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr "Sistem berkas lebih besar dari ukuran perangkat yang terlihat."
-#: misc/mke2fs.c:1614
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "Gagal untuk memparse daftar type fs\n"
-#: misc/mke2fs.c:1648
-msgid "fs_types for mke2fs.conf resolution: "
-msgstr "fs_types untuk mke2fs.conf resolution: "
-
-#: misc/mke2fs.c:1655
-#, c-format
-msgid "Filesystem features not supported with revision 0 filesystems\n"
-msgstr "Sistem berkas features tidak dilayani dengan sistem berkas revisi 0\n"
-
-#: misc/mke2fs.c:1662
-#, c-format
-msgid "Sparse superblocks not supported with revision 0 filesystems\n"
-msgstr "Sparse superblok tidak dilayani dengan sistem berkas revisi 0\n"
-
-#: misc/mke2fs.c:1674
-#, c-format
-msgid "Journals not supported with revision 0 filesystems\n"
-msgstr "Jurnal tidak dilayani dengan sistem berkas revisi 0\n"
-
-#: misc/mke2fs.c:1692
-#, c-format
-msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
-msgstr ""
-"resize_inode dan meta_bg feature tidak saling kompatibel.\n"
-"Meraka tidak dapat diaktifkan secara bersamaan.\n"
-
-#: misc/mke2fs.c:1709
+#: misc/mke2fs.c:1881
msgid "while trying to determine hardware sector size"
msgstr "ketika mencoba untuk menentukan ukuran sektor perangkat"
-#: misc/mke2fs.c:1715
+#: misc/mke2fs.c:1887
msgid "while trying to determine physical sector size"
msgstr "ketika mencoba untuk menentukan ukuran fisik sektor"
-#: misc/mke2fs.c:1746
+#: misc/mke2fs.c:1919
msgid "while setting blocksize; too small for device\n"
msgstr ""
"ketika sedang melakukan konfigurasi ukuran blok;terlalu kecil untuk "
"perangkat\n"
-#: misc/mke2fs.c:1751
+#: misc/mke2fs.c:1924
#, fuzzy, c-format
msgid ""
"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
@@ -4363,17 +4890,62 @@ msgstr ""
"Peringatan: ukuran blok yang dispesifikasikan %d lebih kecil daripada ukuran "
"fisik sektor perangkat %d, tetap dilanjutkan\n"
-#: misc/mke2fs.c:1771
+#: misc/mke2fs.c:1948
+#, fuzzy, c-format
+msgid ""
+"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
+"\tin 32 bits using a blocksize of %d.\n"
+msgstr ""
+"%s: Ukuran dari perangkat %s terlalu besar untuk diexpresikan dalam 32 bit\n"
+"\tmenggunakan sebuah ukuranblok dari %d.\n"
+
+#: misc/mke2fs.c:1964
+msgid "fs_types for mke2fs.conf resolution: "
+msgstr "fs_types untuk mke2fs.conf resolution: "
+
+#: misc/mke2fs.c:1971
+msgid "Filesystem features not supported with revision 0 filesystems\n"
+msgstr "Sistem berkas features tidak dilayani dengan sistem berkas revisi 0\n"
+
+#: misc/mke2fs.c:1979
+msgid "Sparse superblocks not supported with revision 0 filesystems\n"
+msgstr "Sparse superblok tidak dilayani dengan sistem berkas revisi 0\n"
+
+#: misc/mke2fs.c:1991
+msgid "Journals not supported with revision 0 filesystems\n"
+msgstr "Jurnal tidak dilayani dengan sistem berkas revisi 0\n"
+
+#: misc/mke2fs.c:2005
+#, fuzzy, c-format
+msgid "invalid reserved blocks percent - %lf"
+msgstr "persentasi reserved blok tidak valid - %s"
+
+#: misc/mke2fs.c:2022
+msgid ""
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2042
+#, fuzzy
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr "Resize maksimum harus lebih besar daripada ukuran sistem berkas.\n"
+
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
+
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "Peringatan: Tidak dapat mendapatkan geometri untuk perangkat %s\n"
-#: misc/mke2fs.c:1774
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "%s penyesuaian ofset sebesar %lu bytes.\n"
-#: misc/mke2fs.c:1776
+#: misc/mke2fs.c:2072
#, c-format
msgid ""
"This may result in very poor performance, (re)-partitioning suggested.\n"
@@ -4381,56 +4953,80 @@ msgstr ""
"Ini mungkin akan berujung ke performa yang tidak baik, disarankan untuk "
"melakukan pembagian ulang.\n"
-#: misc/mke2fs.c:1810
+#: misc/mke2fs.c:2093
+#, c-format
+msgid "%d-byte blocks too big for system (max %d)"
+msgstr "%d-byte bloks terlalu besar untuk system (maksimal %d)"
+
+#: misc/mke2fs.c:2097
+#, c-format
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Peringatan: %d-byte blok terlalu besar untuk system (maksimal %d), dipaksa "
+"untuk melanjutkan\n"
+
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"resize_inode dan meta_bg feature tidak saling kompatibel.\n"
+"Meraka tidak dapat diaktifkan secara bersamaan.\n"
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr "reserved online resize blok tidak dilayani di non-sparse sistem berkas"
-#: misc/mke2fs.c:1819
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "jumlah blok per grup diluar jangkauan"
-#: misc/mke2fs.c:1834
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
"Flex_bg feature tidak diaktifkan, jadi ukuran flex_bw mungkin tidak dapat "
"dispesifikasikan"
-#: misc/mke2fs.c:1846
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "ukuran inode tidak valid %d (min %d/max %d)"
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "terlalu banyak inode (%llu), naikkan rasio inode?"
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "terlalu banyak inode (%llu), spesifikasikan < 2³2 inode"
-#: misc/mke2fs.c:1880
-#, c-format
+#: misc/mke2fs.c:2256
+#, fuzzy, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
-"\tfilesystem with %lu blocks, specify higher inode_ratio (-i)\n"
+"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
"inode_size (%u) * inode_count (%u) terlalu besar untuk sebuah\n"
"\tsistem berkas dengan %lu blok, spesifikan lebih tinggi inode_ratio (-i)\n"
"\tatau lebih rendah jumlah inode (-N).\n"
-#: misc/mke2fs.c:1973 misc/tune2fs.c:1544
-msgid "Couldn't allocate memory for tdb filename\n"
-msgstr "Tidak dapat mengalokasikan memori untuk nama berkas tdb\n"
-
-#: misc/mke2fs.c:1986 misc/tune2fs.c:1566
-#, c-format
-msgid "while trying to delete %s"
-msgstr "ketika mencoba untuk menghapus %s"
-
-#: misc/mke2fs.c:1996
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4442,58 +5038,71 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2036
-#, c-format
-msgid "Calling BLKDISCARD from %llu to %llu "
-msgstr "Memanggil BLKDISCARD dari %llu ke %llu "
+#: misc/mke2fs.c:2397
+#, fuzzy
+msgid "while trying to setup undo file\n"
+msgstr ""
+"\n"
+"\tketika mencoba membuat file jurnal"
-#: misc/mke2fs.c:2040
-#, c-format
-msgid "failed.\n"
-msgstr "gagal.\n"
+#: misc/mke2fs.c:2423
+#, fuzzy
+msgid "Discarding device blocks: "
+msgstr "Menggunakan perangkat jurnal ukuranblok: %d\n"
-#: misc/mke2fs.c:2042
-#, c-format
-msgid "succeeded.\n"
-msgstr "berhasil.\n"
+#: misc/mke2fs.c:2439
+#, fuzzy
+msgid "failed - "
+msgstr "gagal.\n"
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "ketika mensetup superblok"
-#: misc/mke2fs.c:2119
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
msgstr ""
-#: misc/mke2fs.c:2183
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "os tidak diketahui - %s"
-#: misc/mke2fs.c:2237
+#: misc/mke2fs.c:2717
+#, fuzzy
+msgid "Allocating group tables: "
+msgstr "Menulis tabel inode: "
+
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "ketika mencoba mengalokasikan tabel sistem berkas"
-#: misc/mke2fs.c:2268
-#, c-format
-msgid "while zeroing block %u at end of filesystem"
+#: misc/mke2fs.c:2734
+#, fuzzy
+msgid ""
+"\n"
+"\twhile converting subcluster bitmap"
+msgstr "ketika menulis blok bitmap"
+
+#: misc/mke2fs.c:2777
+#, fuzzy, c-format
+msgid "while zeroing block %llu at end of filesystem"
msgstr "ketika mengkosongkan blok %u di akhir dari sistem berkas"
-#: misc/mke2fs.c:2281
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "ketika menreserve blok untuk online resize"
-#: misc/mke2fs.c:2292 misc/tune2fs.c:517
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "jurnal"
-#: misc/mke2fs.c:2304
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Menambahkan jurnal ke perangkat %s: "
-#: misc/mke2fs.c:2311
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4502,28 +5111,43 @@ msgstr ""
"\n"
"\tketika mencoba untuk menambahkan jurnal ke perangkat %s"
-#: misc/mke2fs.c:2316 misc/mke2fs.c:2348 misc/tune2fs.c:546 misc/tune2fs.c:560
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "selesai\n"
-#: misc/mke2fs.c:2325
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr "Melewatkan pembuatan jurnal dalam mode super-saja\n"
-#: misc/mke2fs.c:2336
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Membuat jurnal (%u blok): "
-#: misc/mke2fs.c:2353
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tketika mencoba untuk membuat jurnal"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
+msgid ""
+"\n"
+"Error while enabling multiple mount protection feature."
+msgstr ""
+
+#: misc/mke2fs.c:2871
#, c-format
+msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Menulis superblok dan informasi akuntasi sistem berkas: "
-#: misc/mke2fs.c:2358
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4531,8 +5155,7 @@ msgstr ""
"\n"
"Peringatan, memiliki masalah menulis diluar superblok."
-#: misc/mke2fs.c:2361
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4540,12 +5163,11 @@ msgstr ""
"selesai\n"
"\n"
-#: misc/mklost+found.c:49
-#, c-format
+#: misc/mklost+found.c:50
msgid "Usage: mklost+found\n"
msgstr "Penggunaan: mklost+found\n"
-#: misc/partinfo.c:39
+#: misc/partinfo.c:41
#, c-format
msgid ""
"Usage: %s device...\n"
@@ -4560,38 +5182,40 @@ msgstr ""
"Contoh: %s /dev/hda\n"
"\n"
-#: misc/partinfo.c:49
+#: misc/partinfo.c:51
#, c-format
msgid "Cannot open %s: %s"
msgstr "tidak dapat membuka %s: %s"
-#: misc/partinfo.c:55
+#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
msgstr "Tidak dapat memperoleh geometry dari %s; %s"
-#: misc/partinfo.c:63
+#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
msgstr "Tidak dapat memperoleh ukuran dari %s: %s"
-#: misc/partinfo.c:69
+#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s: h=%3d s=%3d c=%4d awal=%8d ukuran=%8lu akhir=%6d\n"
-#: misc/tune2fs.c:96
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Tolong jalankan e2fsck untuk sistem berkas.\n"
-#: misc/tune2fs.c:105
-#, c-format
+#: misc/tune2fs.c:121
+#, fuzzy, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] \n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
@@ -4603,64 +5227,60 @@ msgstr ""
"\t[-E pilihan-tambahan[,...]] [-T waktu_terakhir_diperiksa] [-U UUID]\n"
"\t[-I ukuran_inode_baru] perangkat\n"
-#: misc/tune2fs.c:190
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "ketika mencoba membuka jurnal external"
-#: misc/tune2fs.c:194
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s bukan sebuah perangkat jurnal.\n"
-#: misc/tune2fs.c:209
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Jurnal superblok tidak ditemukan!\n"
-#: misc/tune2fs.c:221
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr "Sistem berkas UUID tidak ditemukan dalam perangkat jurnal.\n"
-#: misc/tune2fs.c:242
-msgid "Journal NOT removed\n"
-msgstr "Jurnal TIDAK dihapus\n"
+#: misc/tune2fs.c:269
+msgid ""
+"Cannot locate journal device. It was NOT removed\n"
+"Use -f option to remove missing journal device.\n"
+msgstr ""
-#: misc/tune2fs.c:248
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Jurnal dihapus\n"
-#: misc/tune2fs.c:288
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "ketika membaca bitmap"
-#: misc/tune2fs.c:296
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "ketika menghapus inode jurnal"
-#: misc/tune2fs.c:307
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "ketika menulis inode jurnal"
-#: misc/tune2fs.c:322
-#, c-format
-msgid "Invalid mount option set: %s\n"
-msgstr "pilihan mount tidak valid diset: %s\n"
-
-#: misc/tune2fs.c:338
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
msgstr "(dan reboot setelah ini!)\n"
-#: misc/tune2fs.c:372
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr "Menghapus feature sistem berkas '%s' tidak dilayani.\n"
-#: misc/tune2fs.c:378
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr "Tatanan fitur sistem berkas '%s' tidak dilayani.\n"
-#: misc/tune2fs.c:387
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4668,7 +5288,7 @@ msgstr ""
"Has_journal feature mungkin hanya bisa dihapus ketika sistem berkas sedang\n"
"dimount baca-saja atau tidak dimount.\n"
-#: misc/tune2fs.c:395
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4676,7 +5296,52 @@ msgstr ""
"Needs_recovery flag diset. Tolong jalankan e2fsck sebelum menghapus\n"
"has_journal flag.\n"
-#: misc/tune2fs.c:428
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Pengubahan ukuran inode tidak didukung untuk sistem berkas dengan flex_bg\n"
+"fitur aktif.\n"
+
+#: misc/tune2fs.c:475
+#, fuzzy
+msgid ""
+"The multiple mount protection feature can't\n"
+"be set if the filesystem is mounted or\n"
+"read-only.\n"
+msgstr ""
+"Huge_file feature hanya boleh dihapus ketika sistem berkas sedang\n"
+"dimount baca-saja atau tidak dimount.\n"
+
+#: misc/tune2fs.c:493
+#, c-format
+msgid "Multiple mount protection has been enabled with update interval %ds.\n"
+msgstr ""
+
+#: misc/tune2fs.c:502
+msgid ""
+"The multiple mount protection feature cannot\n"
+"be disabled if the filesystem is readonly.\n"
+msgstr ""
+
+#: misc/tune2fs.c:510
+#, fuzzy
+msgid "Error while reading bitmaps\n"
+msgstr "ketika membaca bitmap"
+
+#: misc/tune2fs.c:519
+#, c-format
+msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
+msgstr ""
+
+#: misc/tune2fs.c:524
+#, fuzzy
+msgid "while reading MMP block."
+msgstr "ketika sedang membaca inode blok buruk"
+
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
@@ -4684,7 +5349,7 @@ msgstr ""
"Menghapus flex_bg flag akan mengakibatkan sistem berkas menjadi\n"
"tidak konsisten.\n"
-#: misc/tune2fs.c:439
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4692,11 +5357,17 @@ msgstr ""
"Huge_file feature hanya boleh dihapus ketika sistem berkas sedang\n"
"dimount baca-saja atau tidak dimount.\n"
-#: misc/tune2fs.c:512
+#: misc/tune2fs.c:627
+msgid ""
+"\n"
+"Warning: '^quota' option overrides '-Q'arguments.\n"
+msgstr ""
+
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Sistem berkas telah memiliki sebuah jurnal.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4705,21 +5376,21 @@ msgstr ""
"\n"
"\tketika mencoba untuk membuka jurnal di %s\n"
-#: misc/tune2fs.c:534
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Membuat jurnal di perangkat %s: "
-#: misc/tune2fs.c:542
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "ketika menambahkan sistem berkas di jurnal di %s"
-#: misc/tune2fs.c:548
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Membuat jurnal inode: "
-#: misc/tune2fs.c:557
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -4727,86 +5398,117 @@ msgstr ""
"\n"
"\tketika mencoba membuat file jurnal"
-#: misc/tune2fs.c:623
+#: misc/tune2fs.c:799
+#, fuzzy
+msgid "Couldn't allocate memory to parse quota options!\n"
+msgstr "Tidak dapat mengalokasikan memori untuk memparse pilihan!\n"
+
+#: misc/tune2fs.c:821
+msgid ""
+"\n"
+"Bad quota options specified.\n"
+"\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
+"\t[^]usrquota\n"
+"\t[^]grpquota\n"
+"\n"
+"\n"
+msgstr ""
+
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Tidak dapat memparse date/time specifier: %s"
-#: misc/tune2fs.c:647 misc/tune2fs.c:660
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "jumlah mount buruk - %s"
-#: misc/tune2fs.c:676
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "perilaku error buruk - %s"
-#: misc/tune2fs.c:703
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "nama gid/grup buruk - %s"
-#: misc/tune2fs.c:736
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "interval buruk - %s"
-#: misc/tune2fs.c:765
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "rasio reserved blok buruk - %s"
-#: misc/tune2fs.c:780
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o hanya boleh dispesifikasikan sekali"
-#: misc/tune2fs.c:790
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O hanya boleh dispesifikasikan sekali"
-#: misc/tune2fs.c:800
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "jumlah reserved blok buruk - %s"
-#: misc/tune2fs.c:829
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "nama uid/pengguna buruk - %s"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "ukuran inode buruk - %s"
-#: misc/tune2fs.c:853
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Ukuran inode harus kelipatan dari dua - %s"
-#: misc/tune2fs.c:942
+#: misc/tune2fs.c:1215
+#, c-format
+msgid "mmp_update_interval too big: %lu\n"
+msgstr ""
+
+#: misc/tune2fs.c:1220
+#, fuzzy, c-format
+msgid "Setting multiple mount protection update interval to %lu second\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Menset maksimal jumlah mount ke %d\n"
+msgstr[1] "Menset maksimal jumlah mount ke %d\n"
+
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Invalid RAID stride: %s\n"
-#: misc/tune2fs.c:957
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Invalid RAID stripe-width: %s\n"
-#: misc/tune2fs.c:972
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Algoritma hash tidak valid: %s\n"
-#: misc/tune2fs.c:978
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Menset default algoritma hash ke %s (%d)\n"
-#: misc/tune2fs.c:998
-#, c-format
+#: misc/tune2fs.c:1298
+#, fuzzy
msgid ""
"\n"
"Bad options specified.\n"
@@ -4815,9 +5517,11 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tclear_mmp\n"
+"\thash_alg=<hash algorithm>\n"
+"\tmount_opts=<extended default mount options>\n"
"\tstride=<RAID per-disk chunk size in blocks>\n"
"\tstripe_width=<RAID stride*data disks in blocks>\n"
-"\thash_alg=<hash algorithm>\n"
"\ttest_fs\n"
"\t^test_fs\n"
msgstr ""
@@ -4834,24 +5538,34 @@ msgstr ""
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1471 resize/resize2fs.c:790
+#: misc/tune2fs.c:1764
+#, fuzzy
+msgid "Failed to read inode bitmap\n"
+msgstr "ketika membaca bitmap"
+
+#: misc/tune2fs.c:1769
+#, fuzzy
+msgid "Failed to read block bitmap\n"
+msgstr "membaca inode dan blok bitmap"
+
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "blok akan dipindahkan"
-#: misc/tune2fs.c:1474
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr ""
"Gagal untuk mengalokasikan bitmap blok ketika meningkatkan ukuran inode\n"
-#: misc/tune2fs.c:1480
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr "Tidak cukup ruang untuk meningkatkan ukuran inode \n"
-#: misc/tune2fs.c:1485
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
msgstr "Gagal untuk memindahkan blok ketika pengubahan ukuran inode \n"
-#: misc/tune2fs.c:1517
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
@@ -4859,7 +5573,16 @@ msgstr ""
"Error dalam mengubah ukuran dari ukuran inode.\n"
"Jalankan e2undo untuk undo perubahan sistem berkas.\n"
-#: misc/tune2fs.c:1576
+#: misc/tune2fs.c:1859
+msgid "Couldn't allocate memory for tdb filename\n"
+msgstr "Tidak dapat mengalokasikan memori untuk nama berkas tdb\n"
+
+#: misc/tune2fs.c:1880
+#, c-format
+msgid "while trying to delete %s"
+msgstr "ketika mencoba untuk menghapus %s"
+
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -4870,57 +5593,74 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1637
+#: misc/tune2fs.c:1957
+#, c-format
+msgid ""
+"MMP block magic is bad. Try to fix it by running:\n"
+"'e2fsck -f %s'\n"
+msgstr ""
+
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Ukuran inode telah %lu\n"
-#: misc/tune2fs.c:1642
-#, c-format
-msgid "Shrinking the inode size is not supported\n"
+#: misc/tune2fs.c:1982
+#, fuzzy
+msgid "Shrinking inode size is not supported\n"
msgstr "Mengecilkan ukuran inode yang tidak dilayani\n"
-#: misc/tune2fs.c:1685
+#: misc/tune2fs.c:1987
+#, fuzzy, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "ukuran inode tidak valid %d (min %d/max %d)"
+
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Menset maksimal jumlah mount ke %d\n"
-#: misc/tune2fs.c:1691
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Menset jumlah mount sekarang ke %d\n"
-#: misc/tune2fs.c:1696
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Menset perilaku error ke %d\n"
-#: misc/tune2fs.c:1701
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Menset gid reserved blok ke %lu\n"
-#: misc/tune2fs.c:1706
+#: misc/tune2fs.c:2055
+#, fuzzy, c-format
+msgid "interval between checks is too big (%lu)"
+msgstr "Menset interval diantara check ke %lu detik\n"
+
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Menset interval diantara check ke %lu detik\n"
-#: misc/tune2fs.c:1713
-#, c-format
-msgid "Setting reserved blocks percentage to %g%% (%u blocks)\n"
+#: misc/tune2fs.c:2069
+#, fuzzy, c-format
+msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Menset persentasi reserved blok ke %g%% (%u blok)\n"
-#: misc/tune2fs.c:1720
-#, c-format
-msgid "reserved blocks count is too big (%lu)"
+#: misc/tune2fs.c:2075
+#, fuzzy, c-format
+msgid "reserved blocks count is too big (%llu)"
msgstr "jumlah reserved blok terlalu besar (%lu)"
-#: misc/tune2fs.c:1726
-#, c-format
-msgid "Setting reserved blocks count to %lu\n"
+#: misc/tune2fs.c:2082
+#, fuzzy, c-format
+msgid "Setting reserved blocks count to %llu\n"
msgstr "Menset jumlah reserved blok ke %lu\n"
-#: misc/tune2fs.c:1732
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -4928,7 +5668,17 @@ msgstr ""
"\n"
"Sistem berkas telah memiliki sparse superblok.\n"
-#: misc/tune2fs.c:1739
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Pengubahan ukuran inode tidak didukung untuk sistem berkas dengan flex_bg\n"
+"fitur aktif.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -4937,34 +5687,52 @@ msgstr ""
"\n"
"Sparse superblok flag diset. %s"
-#: misc/tune2fs.c:1744
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
"Menghapus sparse superflag tidak dilayani.\n"
-#: misc/tune2fs.c:1751
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Menset waktu sistem berkas terakhir diperiksa ke %s\n"
-#: misc/tune2fs.c:1757
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Menset uid reserved blok ke %lu\n"
-#: misc/tune2fs.c:1808
+#: misc/tune2fs.c:2154
+msgid "Error in using clear_mmp. It must be used with -f\n"
+msgstr ""
+
+#: misc/tune2fs.c:2172
+#, fuzzy
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"Ukuran inode mungkin akan berubah ketika sistem berkas tidak dimount.\n"
+
+#: misc/tune2fs.c:2191
+#, fuzzy
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"Ukuran inode mungkin akan berubah ketika sistem berkas tidak dimount.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Invalid format UUID\n"
-#: misc/tune2fs.c:1820
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"Ukuran inode mungkin akan berubah ketika sistem berkas tidak dimount.\n"
-#: misc/tune2fs.c:1827
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
@@ -4972,31 +5740,81 @@ msgstr ""
"Pengubahan ukuran inode tidak didukung untuk sistem berkas dengan flex_bg\n"
"fitur aktif.\n"
-#: misc/tune2fs.c:1839
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Menset ukuran inode %lu\n"
-#: misc/tune2fs.c:1849
+#: misc/tune2fs.c:2256
+#, fuzzy
+msgid "Failed to change inode size\n"
+msgstr "Gagal untuk memindahkan blok ketika pengubahan ukuran inode \n"
+
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Menset ukuran stride ke %d\n"
-#: misc/tune2fs.c:1854
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Menset lebar stripe ke %d\n"
-#: misc/util.c:72
+#: misc/tune2fs.c:2279
+#, fuzzy, c-format
+msgid "Setting extended default mount options to '%s'\n"
+msgstr "Menset jumlah mount sekarang ke %d\n"
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Jalankan saja? (y,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Jalankan saja? (y,n) "
-#: misc/util.c:93
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "jumlah mount buruk - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "jumlah mount buruk - %s"
+
+#: misc/util.c:135
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Tidak dapat melakukan statistik %s --- %s\n"
+msgid "\tcreated on %s"
+msgstr ""
-#: misc/util.c:96
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "berkas biasa"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "tidak dapat membuka %s: %s"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -5005,34 +5823,44 @@ msgstr ""
"Perangkat kelihatannya tidak ada; apakah anda menspesifikasikannya dengan "
"benar?\n"
-#: misc/util.c:107
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s bukan sebuah perangkat blok spesial.\n"
-#: misc/util.c:136
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " berisi sebuah file system dengan errors"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " berisi sebuah file system dengan errors"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s adalah seluruh perangkatm bukan hanya sebuah partisi!\n"
-#: misc/util.c:158
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "mke2fs dipaksakan saja. Mudah mudahan /etc/mtab tidak benar.\n"
-#: misc/util.c:163
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "tidak akan membuat sebuah %s disini!\n"
-#: misc/util.c:170
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "mke2fs dipaksakan saja.\n"
-#: misc/util.c:186
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr "Tidak dapat mengalokasikan memori untuk memparse pilihan jurnal!\n"
-#: misc/util.c:211
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
@@ -5041,7 +5869,8 @@ msgstr ""
"\n"
"Tidak dapat menemukan perangkat jurnal yang cocok %s\n"
-#: misc/util.c:232
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5052,6 +5881,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -5069,7 +5899,7 @@ msgstr ""
"Ukuran jurnal harus diantara 1024 dan 10240000 blok sistem berkas.\n"
"\n"
-#: misc/util.c:262
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -5077,7 +5907,7 @@ msgstr ""
"\n"
"Sistem berkas terlalu kecil untuk sebuah jurnal\n"
-#: misc/util.c:269
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5088,7 +5918,7 @@ msgstr ""
"Ukuran jurnal yang diminta adalah %d blok; ini harus berada\n"
"diantara 1024 dan 10240000 blok. Membatalkan.\n"
-#: misc/util.c:277
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -5096,7 +5926,7 @@ msgstr ""
"\n"
"Ukuran jurnal terlalu besar untuk sistem berkas.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -5106,26 +5936,151 @@ msgstr ""
"%g hari, yang mana yang datang lebih dulu. Gunakan tune2fs -c atau -i\n"
"untuk mengubahnya.\n"
-#: misc/uuidgen.c:31
+#: misc/uuidd.c:48
+#, c-format
+msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
+msgstr ""
+
+#: misc/uuidd.c:50
+#, c-format
+msgid " %s [-r|t] [-n num] [-s socketpath]\n"
+msgstr ""
+
+#: misc/uuidd.c:52
+#, c-format
+msgid " %s -k\n"
+msgstr ""
+
+#: misc/uuidd.c:154
+#, fuzzy
+msgid "bad arguments"
+msgstr "%s: terlalu banyak argumen\n"
+
+#: misc/uuidd.c:172
+msgid "connect"
+msgstr ""
+
+#: misc/uuidd.c:191
+msgid "write"
+msgstr ""
+
+#: misc/uuidd.c:199
+msgid "read count"
+msgstr ""
+
+#: misc/uuidd.c:205
+#, fuzzy
+msgid "bad response length"
+msgstr "Panjang stride tidak valid"
+
+#: misc/uuidd.c:270
+#, c-format
+msgid "uuidd daemon already running at pid %s\n"
+msgstr ""
+
+#: misc/uuidd.c:278
+#, fuzzy, c-format
+msgid "Couldn't create unix stream socket: %s"
+msgstr "Tidak dapat memparse date/time specifier: %s"
+
+#: misc/uuidd.c:307
+#, fuzzy, c-format
+msgid "Couldn't bind unix socket %s: %s\n"
+msgstr "Tidak dapat menghubungkan %i: %m\n"
+
+#: misc/uuidd.c:315
+#, fuzzy, c-format
+msgid "Couldn't listen on unix socket %s: %s\n"
+msgstr "Tidak dapat menghubungkan %i: %m\n"
+
+#: misc/uuidd.c:353
+#, fuzzy, c-format
+msgid "Error reading from client, len = %d\n"
+msgstr "Error membaca @i %i: %m\n"
+
+#: misc/uuidd.c:361
+#, c-format
+msgid "operation %d, incoming num = %d\n"
+msgstr ""
+
+#: misc/uuidd.c:380
+#, c-format
+msgid "Generated time UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:390
+#, c-format
+msgid "Generated random UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:399
+#, c-format
+msgid "Generated time UUID %s and subsequent UUID\n"
+msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:420
+#, c-format
+msgid "Generated %d UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:432
+#, fuzzy, c-format
+msgid "Invalid operation %d\n"
+msgstr "Versi EA tidak valid.\n"
+
+#: misc/uuidd.c:476 misc/uuidd.c:498
+#, c-format
+msgid "Bad number: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:533 misc/uuidd.c:562
+#, fuzzy, c-format
+msgid "Error calling uuidd daemon (%s): %s\n"
+msgstr "Error membuat /@l @d (%s): %m\n"
+
+#: misc/uuidd.c:543
+#, c-format
+msgid "%s and subsequent UUID\n"
+msgid_plural "%s and subsequent %d UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:547
+msgid "List of UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:568
+#, c-format
+msgid "Unexpected reply length from server %d\n"
+msgstr ""
+
+#: misc/uuidd.c:585
+#, c-format
+msgid "Couldn't kill uuidd running at pid %d: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:591
+#, c-format
+msgid "Killed uuidd running at pid %d\n"
+msgstr ""
+
+#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
msgstr "Penggunaan: %s [-r] [-t]\n"
-#: resize/extent.c:201
+#: resize/extent.c:202
msgid "# Extent dump:\n"
msgstr "# Extent dump:\n"
-#: resize/extent.c:202
-#, c-format
-msgid "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n"
+#: resize/extent.c:203
+#, fuzzy, c-format
+msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tNum=%d, Ukuran=%d, Cursor=%d, Sorted=%d\n"
-#: resize/extent.c:205
-#, c-format
-msgid "#\t\t %u -> %u (%d)\n"
-msgstr "#\t\t %u -> %u (%d)\n"
-
-#: resize/main.c:42
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -5135,55 +6090,54 @@ msgstr ""
"[ukuran_baru]\n"
"\n"
-#: resize/main.c:64
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Memperbesar tabel inode"
-#: resize/main.c:67
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Memindahkan blok"
-#: resize/main.c:70
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Memeriksa tabel inode"
-#: resize/main.c:73
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Memperbarui referensi inode"
-#: resize/main.c:76
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Memindahkan tabel inode"
-#: resize/main.c:79
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Tahap tidak diketahui?!?"
-#: resize/main.c:82
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Awal tahap %d (max = %lu)\n"
-#: resize/main.c:265
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "ketika membuka %s"
-#: resize/main.c:277
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "ketika memperoleh informasi statistik untuk %s"
-#: resize/main.c:338
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Kombinasi dari flex_bg dan\n"
-"\t!resize_inode features tidak dilayani oleh resize2fs.\n"
-
-#: resize/main.c:351 resize/main.c:451
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
@@ -5192,56 +6146,60 @@ msgstr ""
"Tolong jalankan 'e2fsck -f %s' terlebih dahulu.\n"
"\n"
-#: resize/main.c:355
-#, c-format
-msgid "Estimated minimum size of the filesystem: %u\n"
+#: resize/main.c:342
+#, fuzzy, c-format
+msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Estimasi minimum dari ukuran sistem berkas: %u\n"
-#: resize/main.c:391
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Ukuran inode baru tidak valid: %s\n"
-#: resize/main.c:403
-#, c-format
-msgid "New size smaller than minimum (%u)\n"
+#: resize/main.c:394
+msgid "New size too large to be expressed in 32 bits\n"
+msgstr ""
+
+#: resize/main.c:402
+#, fuzzy, c-format
+msgid "New size smaller than minimum (%llu)\n"
msgstr "Ukuran baru lebih kecil daripada minimum (%u)\n"
-#: resize/main.c:409
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr "Panjang stride tidak valid"
-#: resize/main.c:433
-#, c-format
+#: resize/main.c:432
+#, fuzzy, c-format
msgid ""
-"The containing partition (or device) is only %u (%dk) blocks.\n"
-"You requested a new size of %u blocks.\n"
+"The containing partition (or device) is only %llu (%dk) blocks.\n"
+"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
"Partisi (atau perangkat) hanya berisi %u (%dk) blok.\n"
"Anda meminta ukuran baru %u blok.\n"
-#: resize/main.c:440
-#, c-format
+#: resize/main.c:439
+#, fuzzy, c-format
msgid ""
-"The filesystem is already %u blocks long. Nothing to do!\n"
+"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
"Sistem berkas telah memiliki panjang %u blok. Tidak ada yang harus "
"dilakukan !\n"
"\n"
-#: resize/main.c:455
-#, c-format
-msgid "Resizing the filesystem on %s to %u (%dk) blocks.\n"
+#: resize/main.c:456
+#, fuzzy, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr "Mengubah sistem berkas di %s ke %u (%dk) blok.\n"
-#: resize/main.c:464
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "ketika mencoba untuk mengubah ukuran %s"
-#: resize/main.c:467
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
@@ -5250,66 +6208,86 @@ msgstr ""
"Mohon jalankan 'e2fsck -fy %s' untuk membetulkan sistem berkas\n"
"setelah pembatalan operasi pengubahan ukuran.\n"
-#: resize/main.c:473
-#, c-format
+#: resize/main.c:474
+#, fuzzy, c-format
msgid ""
-"The filesystem on %s is now %u blocks long.\n"
+"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
"Sistem berkas di %s sekarang memiliki panjang %u blok.\n"
"\n"
-#: resize/main.c:488
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
msgstr "ketika mencoba untuk memotong %s"
-#: resize/online.c:37
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Kernel tidak melayani online resizing"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr "Sistem berkas di %s dimount di %s; on-line resizing dibutuhkan\n"
-#: resize/online.c:41
+#: resize/online.c:91
#, fuzzy
msgid "On-line shrinking not supported"
msgstr "On-line shrinking dari %u ke %u tidak dilayani.\n"
-#: resize/online.c:60
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr "Sistem berkas tidak melayani online resizing"
-#: resize/online.c:67
+#: resize/online.c:125
+#, fuzzy
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "ketika menreserve blok untuk online resize"
+
+#: resize/online.c:132
+#, fuzzy
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Kernel tidak melayani online resizing"
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "ketika mencoba membuka mountpoint %s"
-#: resize/online.c:75
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr ""
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "Ijin ditolak ketika mengubah ukuran sistem berkas"
-#: resize/online.c:78
-msgid "Kernel does not support online resizing"
-msgstr "Kernel tidak melayani online resizing"
-
-#: resize/online.c:81
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "Ketika memeriksa untuk layanan on-line resizing"
-#: resize/online.c:110
-#, c-format
-msgid "Performing an on-line resize of %s to %u (%dk) blocks.\n"
+#: resize/online.c:184
+msgid "Kernel does not support online resizing"
+msgstr "Kernel tidak melayani online resizing"
+
+#: resize/online.c:223
+#, fuzzy, c-format
+msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr "Menjalankan sebuah on-line resize dari %s ke %u (%dk) blok.\n"
-#: resize/online.c:120
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr "Ketika mencoba untuk mengexten grup terakhir"
-#: resize/online.c:179
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr "Ketika mencoba untuk menambahkan grup #%d"
-#: resize/online.c:190
+#: resize/online.c:298
#, c-format
msgid ""
"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
@@ -5318,24 +6296,881 @@ msgstr ""
"Sistem berkas di %s dimount di %s, dan on-line resizing tidak disupport di "
"system ini.\n"
-#: resize/resize2fs.c:350
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "inode (%llu) harus lebih kecil dari %u"
-#: resize/resize2fs.c:582
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "reserved blok"
-#: resize/resize2fs.c:795
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "meta-data blok"
-#: resize/resize2fs.c:1752
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "meta-data blok"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Seharusnya tidak pernah terjadi: resize inode corrupt!\n"
+#: lib/ext2fs/ext2_err.c:11
+msgid "EXT2FS Library version 1.42.10"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:12
+msgid "Wrong magic number for ext2_filsys structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:13
+msgid "Wrong magic number for badblocks_list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:14
+msgid "Wrong magic number for badblocks_iterate structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:15
+msgid "Wrong magic number for inode_scan structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:16
+msgid "Wrong magic number for io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:17
+msgid "Wrong magic number for unix io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:18
+msgid "Wrong magic number for io_manager structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:19
+msgid "Wrong magic number for block_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:20
+msgid "Wrong magic number for inode_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:21
+msgid "Wrong magic number for generic_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:22
+msgid "Wrong magic number for test io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:23
+msgid "Wrong magic number for directory block list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:24
+msgid "Wrong magic number for icount structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:25
+msgid "Wrong magic number for Powerquest io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:26
+msgid "Wrong magic number for ext2 file structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:27
+msgid "Wrong magic number for Ext2 Image Header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:28
+msgid "Wrong magic number for inode io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:29
+msgid "Wrong magic number for ext4 extent handle"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:30
+#, fuzzy
+msgid "Bad magic number in super-block"
+msgstr "membaca journal superblock\n"
+
+#: lib/ext2fs/ext2_err.c:31
+msgid "Filesystem revision too high"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:32
+msgid "Attempt to write to filesystem opened read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:33
+#, fuzzy
+msgid "Can't read group descriptors"
+msgstr ", Grup deskripsi di "
+
+#: lib/ext2fs/ext2_err.c:34
+#, fuzzy
+msgid "Can't write group descriptors"
+msgstr ", Grup deskripsi di "
+
+#: lib/ext2fs/ext2_err.c:35
+msgid "Corrupt group descriptor: bad block for block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:36
+msgid "Corrupt group descriptor: bad block for inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:37
+msgid "Corrupt group descriptor: bad block for inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:38
+#, fuzzy
+msgid "Can't write an inode bitmap"
+msgstr "menulis inode bitmap"
+
+#: lib/ext2fs/ext2_err.c:39
+#, fuzzy
+msgid "Can't read an inode bitmap"
+msgstr "menulis inode bitmap"
+
+#: lib/ext2fs/ext2_err.c:40
+#, fuzzy
+msgid "Can't write a block bitmap"
+msgstr "membaca inode dan blok bitmap"
+
+#: lib/ext2fs/ext2_err.c:41
+#, fuzzy
+msgid "Can't read a block bitmap"
+msgstr "membaca inode dan blok bitmap"
+
+#: lib/ext2fs/ext2_err.c:42
+#, fuzzy
+msgid "Can't write an inode table"
+msgstr "ketika menulis tabel inode"
+
+#: lib/ext2fs/ext2_err.c:43
+#, fuzzy
+msgid "Can't read an inode table"
+msgstr "Memeriksa tabel inode"
+
+#: lib/ext2fs/ext2_err.c:44
+msgid "Can't read next inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:45
+#, fuzzy
+msgid "Filesystem has unexpected block size"
+msgstr "Sistem berkas lebih besar dari ukuran perangkat yang terlihat."
+
+#: lib/ext2fs/ext2_err.c:46
+msgid "EXT2 directory corrupted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:47
+msgid "Attempt to read block from filesystem resulted in short read"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:48
+msgid "Attempt to write block to filesystem resulted in short write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:49
+msgid "No free space in the directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:50
+#, fuzzy
+msgid "Inode bitmap not loaded"
+msgstr ", Inode bitmap di "
+
+#: lib/ext2fs/ext2_err.c:51
+#, fuzzy
+msgid "Block bitmap not loaded"
+msgstr " Blok bitmap di "
+
+#: lib/ext2fs/ext2_err.c:52
+#, fuzzy
+msgid "Illegal inode number"
+msgstr "Nomor dari block tidak legal!\n"
+
+#: lib/ext2fs/ext2_err.c:53
+#, fuzzy
+msgid "Illegal block number"
+msgstr "Nomor dari block tidak legal!\n"
+
+#: lib/ext2fs/ext2_err.c:54
+msgid "Internal error in ext2fs_expand_dir"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:55
+#, fuzzy
+msgid "Not enough space to build proposed filesystem"
+msgstr "Tidak cukup ruang untuk meningkatkan ukuran inode \n"
+
+#: lib/ext2fs/ext2_err.c:56
+msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:57
+msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:58
+msgid "Illegal block number passed to ext2fs_test_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:59
+msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:60
+msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:61
+msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:62
+msgid "Attempt to fudge end of block bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:63
+msgid "Attempt to fudge end of inode bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:64
+#, fuzzy
+msgid "Illegal indirect block found"
+msgstr "blok tidak langsung berdua"
+
+#: lib/ext2fs/ext2_err.c:65
+#, fuzzy
+msgid "Illegal doubly indirect block found"
+msgstr "blok tidak langsung berdua"
+
+#: lib/ext2fs/ext2_err.c:66
+#, fuzzy
+msgid "Illegal triply indirect block found"
+msgstr "blok tidak langsung bertiga"
+
+#: lib/ext2fs/ext2_err.c:67
+#, fuzzy
+msgid "Block bitmaps are not the same"
+msgstr " Blok bitmap di "
+
+#: lib/ext2fs/ext2_err.c:68
+#, fuzzy
+msgid "Inode bitmaps are not the same"
+msgstr ", Inode bitmap di "
+
+#: lib/ext2fs/ext2_err.c:69
+msgid "Illegal or malformed device name"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:70
+msgid "A block group is missing an inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:71
+msgid "The ext2 superblock is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:72
+msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:73
+msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:74
+msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:75
+msgid "Too many symbolic links encountered."
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:76
+msgid "The callback function will not handle this case"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:77
+msgid "The inode is from a bad block in the inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:78
+#, fuzzy
+msgid "Filesystem has unsupported feature(s)"
+msgstr "%s memiliki feature yang tidak disupport:"
+
+#: lib/ext2fs/ext2_err.c:79
+#, fuzzy
+msgid "Filesystem has unsupported read-only feature(s)"
+msgstr "%s memiliki feature yang tidak disupport:"
+
+#: lib/ext2fs/ext2_err.c:80
+msgid "IO Channel failed to seek on read or write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:81
+#, fuzzy
+msgid "Memory allocation failed"
+msgstr "Aerror mengalokasikan"
+
+#: lib/ext2fs/ext2_err.c:82
+msgid "Invalid argument passed to ext2 library"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:83
+#, fuzzy
+msgid "Could not allocate block in ext2 filesystem"
+msgstr "Tidak dapat mengalokasikan memori untuk tipe sistem berkas\n"
+
+#: lib/ext2fs/ext2_err.c:84
+#, fuzzy
+msgid "Could not allocate inode in ext2 filesystem"
+msgstr "Tidak dapat mengalokasikan memori untuk tipe sistem berkas\n"
+
+#: lib/ext2fs/ext2_err.c:85
+msgid "Ext2 inode is not a directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:86
+msgid "Too many references in table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:87
+msgid "File not found by ext2_lookup"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:88
+msgid "File open read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:89
+#, fuzzy
+msgid "Ext2 directory block not found"
+msgstr "Direktori block %u (#%d) kosong dalam inode %u\n"
+
+#: lib/ext2fs/ext2_err.c:90
+msgid "Ext2 directory already exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:91
+msgid "Unimplemented ext2 library function"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:92
+msgid "User cancel requested"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:93
+msgid "Ext2 file too big"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:94
+#, fuzzy
+msgid "Supplied journal device not a block device"
+msgstr "Menggunakan perangkat jurnal ukuranblok: %d\n"
+
+#: lib/ext2fs/ext2_err.c:95
+#, fuzzy
+msgid "Journal superblock not found"
+msgstr "Jurnal superblok tidak ditemukan!\n"
+
+#: lib/ext2fs/ext2_err.c:96
+msgid "Journal must be at least 1024 blocks"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:97
+msgid "Unsupported journal version"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:98
+#, fuzzy
+msgid "Error loading external journal"
+msgstr "ketika mencoba membuka jurnal external"
+
+#: lib/ext2fs/ext2_err.c:99
+#, fuzzy
+msgid "Journal not found"
+msgstr "Jurnal superblok tidak ditemukan!\n"
+
+#: lib/ext2fs/ext2_err.c:100
+msgid "Directory hash unsupported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:101
+#, fuzzy
+msgid "Illegal extended attribute block number"
+msgstr "aextended attribute"
+
+#: lib/ext2fs/ext2_err.c:102
+msgid "Cannot create filesystem with requested number of inodes"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:103
+msgid "E2image snapshot not in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:104
+#, fuzzy
+msgid "Too many reserved group descriptor blocks"
+msgstr "<inode deskripsi grup>"
+
+#: lib/ext2fs/ext2_err.c:105
+msgid "Resize inode is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:106
+#, fuzzy
+msgid "Tried to set block bmap with missing indirect block"
+msgstr ""
+"Gagal untuk mengalokasikan bitmap blok ketika meningkatkan ukuran inode\n"
+
+#: lib/ext2fs/ext2_err.c:107
+msgid "TDB: Success"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:108
+msgid "TDB: Corrupt database"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:109
+msgid "TDB: IO Error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:110
+msgid "TDB: Locking error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:111
+msgid "TDB: Out of memory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:112
+msgid "TDB: Record exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:113
+msgid "TDB: Lock exists on other keys"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:114
+#, fuzzy
+msgid "TDB: Invalid parameter"
+msgstr "Parameter stride tidak valid: %s\n"
+
+#: lib/ext2fs/ext2_err.c:115
+msgid "TDB: Record does not exist"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:116
+msgid "TDB: Write not permitted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:117
+msgid "Ext2fs directory block list is empty"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:118
+msgid "Attempt to modify a block mapping via a read-only block iterator"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:119
+msgid "Wrong magic number for ext4 extent saved path"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:120
+msgid "Wrong magic number for 64-bit generic bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:121
+msgid "Wrong magic number for 64-bit block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:122
+msgid "Wrong magic number for 64-bit inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:123
+msgid "Wrong magic number --- RESERVED_13"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:124
+msgid "Wrong magic number --- RESERVED_14"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:125
+msgid "Wrong magic number --- RESERVED_15"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:126
+msgid "Wrong magic number --- RESERVED_16"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:127
+msgid "Wrong magic number --- RESERVED_17"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:128
+msgid "Wrong magic number --- RESERVED_18"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:129
+msgid "Wrong magic number --- RESERVED_19"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:130
+msgid "Corrupt extent header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:131
+msgid "Corrupt extent index"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:132
+msgid "Corrupt extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:133
+msgid "No free space in extent map"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:134
+msgid "Inode does not use extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:135
+#, fuzzy
+msgid "No 'next' extent"
+msgstr "xextent"
+
+#: lib/ext2fs/ext2_err.c:136
+msgid "No 'previous' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:137
+msgid "No 'up' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:138
+msgid "No 'down' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:139
+msgid "No current node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:140
+msgid "Ext2fs operation not supported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:141
+msgid "No room to insert extent in node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:142
+msgid "Splitting would result in empty node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:143
+#, fuzzy
+msgid "Extent not found"
+msgstr "/@l tidak ditemukan. "
+
+#: lib/ext2fs/ext2_err.c:144
+msgid "Operation not supported for inodes containing extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:145
+msgid "Extent length is invalid"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:146
+msgid "I/O Channel does not support 64-bit block numbers"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:147
+msgid "Can't check if filesystem is mounted due to missing mtab file"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:148
+msgid "Filesystem too large to use legacy bitmaps"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:149
+msgid "MMP: invalid magic number"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:150
+msgid "MMP: device currently active"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:151
+msgid "MMP: fsck being run"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:152
+msgid "MMP: block number beyond filesystem range"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:153
+msgid "MMP: undergoing an unknown operation"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:154
+msgid "MMP: filesystem still in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:155
+msgid "MMP: open with O_DIRECT failed"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:156
+#, fuzzy
+msgid "Block group descriptor size incorrect"
+msgstr "<inode deskripsi grup>"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+#, fuzzy
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ", Inode bitmap di "
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+#, fuzzy
+msgid "Superblock checksum does not match superblock"
+msgstr "Cadangan superblok disimpan di blok: "
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:11
+msgid "Profile version 0.0"
+msgstr ""
+
+#: e2fsck/prof_err.c:12
+msgid "Bad magic value in profile_node"
+msgstr ""
+
+#: e2fsck/prof_err.c:13
+#, fuzzy
+msgid "Profile section not found"
+msgstr "ketika membuat /lost+found"
+
+#: e2fsck/prof_err.c:14
+#, fuzzy
+msgid "Profile relation not found"
+msgstr "ketika membuat /lost+found"
+
+#: e2fsck/prof_err.c:15
+msgid "Attempt to add a relation to node which is not a section"
+msgstr ""
+
+#: e2fsck/prof_err.c:16
+msgid "A profile section header has a non-zero value"
+msgstr ""
+
+#: e2fsck/prof_err.c:17
+msgid "Bad linked list in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:18
+msgid "Bad group level in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:19
+msgid "Bad parent pointer in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:20
+msgid "Bad magic value in profile iterator"
+msgstr ""
+
+#: e2fsck/prof_err.c:21
+msgid "Can't set value on section node"
+msgstr ""
+
+#: e2fsck/prof_err.c:22
+msgid "Invalid argument passed to profile library"
+msgstr ""
+
+#: e2fsck/prof_err.c:23
+msgid "Attempt to modify read-only profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:24
+msgid "Profile section header not at top level"
+msgstr ""
+
+#: e2fsck/prof_err.c:25
+msgid "Syntax error in profile section header"
+msgstr ""
+
+#: e2fsck/prof_err.c:26
+msgid "Syntax error in profile relation"
+msgstr ""
+
+#: e2fsck/prof_err.c:27
+msgid "Extra closing brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:28
+msgid "Missing open brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:29
+msgid "Bad magic value in profile_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:30
+msgid "Bad magic value in profile_section_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:31
+msgid "Iteration through all top level section not supported"
+msgstr ""
+
+#: e2fsck/prof_err.c:32
+#, fuzzy
+msgid "Invalid profile_section object"
+msgstr "Pilihan sistem berkas tidak valid diset: %s\n"
+
+#: e2fsck/prof_err.c:33
+msgid "No more sections"
+msgstr ""
+
+#: e2fsck/prof_err.c:34
+msgid "Bad nameset passed to query routine"
+msgstr ""
+
+#: e2fsck/prof_err.c:35
+msgid "No profile file open"
+msgstr ""
+
+#: e2fsck/prof_err.c:36
+msgid "Bad magic value in profile_file_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:37
+#, fuzzy
+msgid "Couldn't open profile file"
+msgstr "Tidak dapat menyalin file: %m\n"
+
+#: e2fsck/prof_err.c:38
+msgid "Section already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:39
+msgid "Invalid boolean value"
+msgstr ""
+
+#: e2fsck/prof_err.c:40
+#, fuzzy
+msgid "Invalid integer value"
+msgstr "Panjang stride tidak valid"
+
+#: e2fsck/prof_err.c:41
+msgid "Bad magic value in profile_file_data_t"
+msgstr ""
+
+#~ msgid "Clearing extent flag not supported on %s"
+#~ msgstr "Menghapus tanda ekstensi yang tidak didukung di %s"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Tidak dapat melakukan statistik %s --- %s\n"
+
+#~ msgid ""
+#~ "%s: The combination of flex_bg and\n"
+#~ "\t!resize_inode features is not supported by resize2fs.\n"
+#~ msgstr ""
+#~ "%s: Kombinasi dari flex_bg dan\n"
+#~ "\t!resize_inode features tidak dilayani oleh resize2fs.\n"
+
+#~ msgid "<The ACL index inode>"
+#~ msgstr "<ACL index inode>"
+
+#~ msgid "<The ACL data inode>"
+#~ msgstr "<ACL data inode>"
+
+#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
+#~ msgstr "@g %g @b @B tidak terinitialisasi tetapi @i @B sedang digunakan.\n"
+
+#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
+#~ msgstr "@i %i seharusnya EOFBLOCKS_FL tidak aktif (ukuran %Is, lblk %r)\n"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "%s sedang dimount. "
+
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "Tidak dapat menentukan ukuran jurnal"
+
+#~ msgid "short write (only %d bytes) for writing image header"
+#~ msgstr "menulis pendek (hanya %d bytes) untuk menulis header image"
+
+#~ msgid "invalid fragment size - %s"
+#~ msgstr "ukuran potongan/fragmen tidak valid - %s"
+
+#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
+#~ msgstr "Peringatan: fragment tidak dilayani. Mengabaikan pilihan -f\n"
+
+#~ msgid "Calling BLKDISCARD from %llu to %llu "
+#~ msgstr "Memanggil BLKDISCARD dari %llu ke %llu "
+
+#~ msgid "succeeded.\n"
+#~ msgstr "berhasil.\n"
+
+#~ msgid "Journal NOT removed\n"
+#~ msgstr "Jurnal TIDAK dihapus\n"
+
+#~ msgid "#\t\t %u -> %u (%d)\n"
+#~ msgstr "#\t\t %u -> %u (%d)\n"
+
#~ msgid "Setting sistem berkas feature '%s' not supported.\n"
#~ msgstr "Menset sistem berkas feature '%s' tidak dilayani.\n"
@@ -5354,9 +7189,6 @@ msgstr "Seharusnya tidak pernah terjadi: resize inode corrupt!\n"
#~ msgid "while retrying to write block bitmaps for %s"
#~ msgstr "ketika sedang mencoba untuk menulis blok bitmap untuk %s"
-#~ msgid "writing inode bitmaps"
-#~ msgstr "menulis inode bitmap"
-
#~ msgid "%s failed for %s: %s\n"
#~ msgstr "%s gagal untuk %s: %s\n"
diff --git a/po/it.gmo b/po/it.gmo
index 47e0da31..573ed9e2 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 144d8d2e..02e6690a 100644
--- a/po/it.po
+++ b/po/it.po
@@ -66,506 +66,539 @@ msgid ""
msgstr ""
"Project-Id-Version: e2fsprogs 1.36-b2\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2009-01-26 20:41-0500\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
"PO-Revision-Date: 2005-01-18 17:52+0100\n"
"Last-Translator: Andrea Spadaccini <lupin85@email.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: e2fsck/badblocks.c:22 misc/mke2fs.c:165
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Blocco non valido %u fuori dall'intervallo; ignorato.\n"
-#: e2fsck/badblocks.c:45
+#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
msgstr "durante il controllo sull'integrità dell'inode numero 1"
-#: e2fsck/badblocks.c:57
+#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
msgstr "durante la lettura dell'inode numero 1"
-#: e2fsck/badblocks.c:71 e2fsck/iscan.c:112 e2fsck/scantest.c:109
-#: e2fsck/unix.c:1037 e2fsck/unix.c:1120 misc/badblocks.c:1148
-#: misc/badblocks.c:1156 misc/badblocks.c:1170 misc/badblocks.c:1182
-#: misc/dumpe2fs.c:505 misc/e2image.c:576 misc/e2image.c:672
-#: misc/e2image.c:688 misc/mke2fs.c:181 misc/tune2fs.c:1515 resize/main.c:309
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "durante l'apertura di %s"
-#: e2fsck/badblocks.c:82
+#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
msgstr "provando ad effettuare il popen di '%s'"
-#: e2fsck/badblocks.c:93 misc/mke2fs.c:188
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "durante la lettura della lista di blocchi non validi da file"
-#: e2fsck/badblocks.c:104
+#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
msgstr "aggiornando l'inode di un blocco difettoso"
-#: e2fsck/badblocks.c:130
+#: e2fsck/badblocks.c:133
#, fuzzy, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr ""
"Attenzione blocco illegale %u trovato nell'inode di un blocco difettoso. "
"Azzerato.\n"
-#: e2fsck/ehandler.c:54
+#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
msgstr "Errore durante la lettura del blocco %lu (%s) durante %s. "
-#: e2fsck/ehandler.c:57
+#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
msgstr "Errore durante la lettura del blocco %lu (%s). "
-#: e2fsck/ehandler.c:60 e2fsck/ehandler.c:109
+#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
msgstr "Ignora l'errore"
-#: e2fsck/ehandler.c:61
+#: e2fsck/ehandler.c:62
msgid "Force rewrite"
msgstr "Forza la riscrittura"
-#: e2fsck/ehandler.c:103
+#: e2fsck/ehandler.c:104
#, c-format
msgid "Error writing block %lu (%s) while %s. "
msgstr "Errore durante la scrittura del blocco %lu (%s) mentre %s."
-#: e2fsck/ehandler.c:106
+#: e2fsck/ehandler.c:107
#, c-format
msgid "Error writing block %lu (%s). "
msgstr "Errore durante la scrittura del blocco %lu (%s). "
-#: e2fsck/emptydir.c:56
+#: e2fsck/emptydir.c:57
msgid "empty dirblocks"
msgstr "blocchi directory vuoti"
-#: e2fsck/emptydir.c:61
+#: e2fsck/emptydir.c:62
msgid "empty dir map"
msgstr "mappa directory vuota"
-#: e2fsck/emptydir.c:97
+#: e2fsck/emptydir.c:98
#, fuzzy, c-format
msgid "Empty directory block %u (#%d) in inode %u\n"
msgstr "Blocco directory %d (#%d) vuoto nell'inode %d\n"
-#: e2fsck/extend.c:21
+#: e2fsck/extend.c:22
#, c-format
msgid "%s: %s filename nblocks blocksize\n"
msgstr "%s: %s nomefile nblocchi dim_blocco\n"
-#: e2fsck/extend.c:43
+#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
msgstr "Numero di blocchi non valido!\n"
-#: e2fsck/extend.c:49
+#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
msgstr "Impossibile allocare il buffer blocco (dimensione=%d)\n"
-#: e2fsck/flushb.c:34
+#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
msgstr "Utilizzo: %s disco\n"
-#: e2fsck/flushb.c:63
+#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr "Ioctl BLKFLSBUF non supportato! Impossibile svuotare i buffer.\n"
-#: e2fsck/iscan.c:46
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Utilizzo: %s [-F] [-I blocchi_buffer_inode] device\n"
-#: e2fsck/iscan.c:83 e2fsck/unix.c:818
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "aprendo %s per lo svuotamento"
-#: e2fsck/iscan.c:88 e2fsck/unix.c:824 resize/main.c:285
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "provando a svuotare %s"
-#: e2fsck/iscan.c:121 e2fsck/scantest.c:116 misc/e2image.c:482
+#: e2fsck/iscan.c:110
+#, fuzzy, c-format
+msgid "while trying to open '%s'"
+msgstr "durante l'apertura di %s"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "avviando la scansione degli inode"
-#: e2fsck/iscan.c:129 misc/e2image.c:500
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "leggendo l'inode successivo"
-#: e2fsck/iscan.c:138
+#: e2fsck/iscan.c:136
#, fuzzy, c-format
msgid "%u inodes scanned.\n"
msgstr "%d inode analizzati.\n"
-#: e2fsck/journal.c:507
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "lettura del superblocco del journal\n"
-#: e2fsck/journal.c:564
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: non è stato trovato un superblocco valido del journal\n"
-#: e2fsck/journal.c:573
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: journal troppo corto\n"
-#: e2fsck/journal.c:858
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: ripristino del journal\n"
-#: e2fsck/journal.c:860
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr "%s: impossibile ripritinare il journal in modalità sola lettura\n"
-#: e2fsck/journal.c:881
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "durante la riapertura di %s"
-#: e2fsck/message.c:110
+#: e2fsck/message.c:113
msgid "aextended attribute"
msgstr "aattributo esteso"
-#: e2fsck/message.c:111
+#: e2fsck/message.c:114
msgid "Aerror allocating"
msgstr "Aerrore allocando"
-#: e2fsck/message.c:112
+#: e2fsck/message.c:115
msgid "bblock"
msgstr "bblocco"
-#: e2fsck/message.c:113
+#: e2fsck/message.c:116
msgid "Bbitmap"
msgstr "Bmappa dei bit"
-#: e2fsck/message.c:114
+#: e2fsck/message.c:117
msgid "ccompress"
msgstr "ccomprimi"
-#: e2fsck/message.c:115
+#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
msgstr "Centra in conflitto con altri @b(i) del fs"
-#: e2fsck/message.c:116
+#: e2fsck/message.c:119
msgid "iinode"
msgstr "iinode"
-#: e2fsck/message.c:117
+#: e2fsck/message.c:120
msgid "Iillegal"
msgstr "Iillegale"
-#: e2fsck/message.c:118
+#: e2fsck/message.c:121
msgid "jjournal"
msgstr "jjournal"
-#: e2fsck/message.c:119
+#: e2fsck/message.c:122
msgid "Ddeleted"
msgstr "Dcancellato"
-#: e2fsck/message.c:120
+#: e2fsck/message.c:123
msgid "ddirectory"
msgstr "ddirectory"
-#: e2fsck/message.c:121
+#: e2fsck/message.c:124
msgid "eentry"
msgstr "eelemento"
-#: e2fsck/message.c:122
+#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
msgstr "E@e '%Dn' in %p (%i)"
-#: e2fsck/message.c:123
+#: e2fsck/message.c:126
msgid "ffilesystem"
msgstr "ffilesystem"
-#: e2fsck/message.c:124
+#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
msgstr "Fper l'@i %i (%Q) è"
-#: e2fsck/message.c:125
+#: e2fsck/message.c:128
msgid "ggroup"
msgstr "ggruppo"
-#: e2fsck/message.c:126
+#: e2fsck/message.c:129
msgid "hHTREE @d @i"
msgstr "h@i della @d HTREE"
-#: e2fsck/message.c:127
+#: e2fsck/message.c:130
msgid "llost+found"
msgstr "llost+found"
-#: e2fsck/message.c:128
+#: e2fsck/message.c:131
msgid "Lis a link"
msgstr "Lè un collegamento"
-#: e2fsck/message.c:129
+#: e2fsck/message.c:132
#, fuzzy
msgid "mmultiply-claimed"
msgstr "mappa degli inode richiesta più volte"
-#: e2fsck/message.c:130
+#: e2fsck/message.c:133
msgid "ninvalid"
msgstr ""
-#: e2fsck/message.c:131
+#: e2fsck/message.c:134
msgid "oorphaned"
msgstr "oorfano"
-#: e2fsck/message.c:132
+#: e2fsck/message.c:135
msgid "pproblem in"
msgstr "pproblema in"
-#: e2fsck/message.c:133
+#: e2fsck/message.c:136
+msgid "qquota"
+msgstr ""
+
+#: e2fsck/message.c:137
msgid "rroot @i"
msgstr "r@i root"
-#: e2fsck/message.c:134
+#: e2fsck/message.c:138
msgid "sshould be"
msgstr "sdovrebbe essere"
-#: e2fsck/message.c:135
+#: e2fsck/message.c:139
msgid "Ssuper@b"
msgstr "Ssuper@b"
-#: e2fsck/message.c:136
+#: e2fsck/message.c:140
msgid "uunattached"
msgstr ""
-#: e2fsck/message.c:137
+#: e2fsck/message.c:141
msgid "vdevice"
msgstr "vdevice"
-#: e2fsck/message.c:138
+#: e2fsck/message.c:142
#, fuzzy
msgid "xextent"
msgstr "eelemento"
-#: e2fsck/message.c:139
+#: e2fsck/message.c:143
msgid "zzero-length"
msgstr "zlunghezza-zero"
-#: e2fsck/message.c:150
+#: e2fsck/message.c:154
msgid "<The NULL inode>"
msgstr "<Inode NULL>"
-#: e2fsck/message.c:151
+#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
msgstr "<Inode numero 1>"
-#: e2fsck/message.c:153
-msgid "<The ACL index inode>"
-msgstr "<Inode dell'indice ACL>"
+#: e2fsck/message.c:157
+#, fuzzy
+msgid "<The user quota inode>"
+msgstr "<Inode del journal>"
-#: e2fsck/message.c:154
-msgid "<The ACL data inode>"
-msgstr "<Inode dei dati ACL>"
+#: e2fsck/message.c:158
+#, fuzzy
+msgid "<The group quota inode>"
+msgstr "<Inode del descrittore di gruppo>"
-#: e2fsck/message.c:155
+#: e2fsck/message.c:159
msgid "<The boot loader inode>"
msgstr "<Inode del boot loader>"
-#: e2fsck/message.c:156
+#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
msgstr "<Inode della directory undelete>"
-#: e2fsck/message.c:157
+#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
msgstr "<Inode del descrittore di gruppo>"
-#: e2fsck/message.c:158
+#: e2fsck/message.c:162
msgid "<The journal inode>"
msgstr "<Inode del journal>"
-#: e2fsck/message.c:159
+#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
msgstr "<Inode riservato 9>"
-#: e2fsck/message.c:160
+#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
msgstr "<Inode riservato 10>"
-#: e2fsck/message.c:323
-#, fuzzy, c-format
+#: e2fsck/message.c:334
+#, fuzzy
msgid "regular file"
msgstr "mappa degli inode dei file regolari"
-#: e2fsck/message.c:325
-#, fuzzy, c-format
+#: e2fsck/message.c:336
+#, fuzzy
msgid "directory"
msgstr "ddirectory"
-#: e2fsck/message.c:327
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr ""
-#: e2fsck/message.c:329
-#, fuzzy, c-format
+#: e2fsck/message.c:340
+#, fuzzy
msgid "block device"
msgstr "vdevice"
-#: e2fsck/message.c:331
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr ""
-#: e2fsck/message.c:333
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr ""
-#: e2fsck/message.c:335
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr ""
-#: e2fsck/message.c:337
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr ""
-#: e2fsck/pass1b.c:215
+#: e2fsck/message.c:423
+#, fuzzy
+msgid "indirect block"
+msgstr "lettura dei blocchi indiretti dell'inode %u"
+
+#: e2fsck/message.c:425
+#, fuzzy
+msgid "double indirect block"
+msgstr "lettura dei blocchi indiretti dell'inode %u"
+
+#: e2fsck/message.c:427
+#, fuzzy
+msgid "triple indirect block"
+msgstr "lettura dei blocchi indiretti dell'inode %u"
+
+#: e2fsck/message.c:429
+#, fuzzy
+msgid "translator block"
+msgstr "Rilocazione dei blocchi"
+
+#: e2fsck/message.c:431
+#, fuzzy
+msgid "block #"
+msgstr "bblocco"
+
+#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
msgstr "mappa degli inode richiesta più volte"
-#: e2fsck/pass1b.c:567 e2fsck/pass1b.c:700
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, fuzzy, c-format
-msgid "internal error: can't find dup_blk for %u\n"
+msgid "internal error: can't find dup_blk for %llu\n"
msgstr "errore interno; impossibile trovare dup_blk per %d\n"
-#: e2fsck/pass1b.c:743
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "ritornato da clone_file_block"
-#: e2fsck/pass1b.c:762
+#: e2fsck/pass1b.c:843
#, fuzzy, c-format
-msgid "internal error: couldn't lookup EA block record for %u"
+msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "Errore interno: impossibile trovare dir_info per %i.\n"
-#: e2fsck/pass1b.c:774
+#: e2fsck/pass1b.c:855
#, fuzzy, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr "Errore interno: impossibile trovare dir_info per %i.\n"
-#: e2fsck/pass1.c:430 e2fsck/pass2.c:780
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
#, fuzzy
msgid "reading directory block"
msgstr "lettura dei blocchi indiretti dell'inode %u"
-#: e2fsck/pass1.c:552
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "mappa degli inode in utilizzo"
-#: e2fsck/pass1.c:561
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "mappa degli inode delle directory"
-#: e2fsck/pass1.c:569
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "mappa degli inode dei file regolari"
-#: e2fsck/pass1.c:576
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "mappa dei blocchi in utilizzo"
-#: e2fsck/pass1.c:630
+#: e2fsck/pass1.c:693
#, fuzzy
msgid "opening inode scan"
msgstr "scansione degli inode"
-#: e2fsck/pass1.c:654
+#: e2fsck/pass1.c:727
#, fuzzy
msgid "getting next inode from scan"
msgstr "leggendo l'inode successivo"
-#: e2fsck/pass1.c:1122
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Passo 1"
-#: e2fsck/pass1.c:1181
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "lettura dei blocchi indiretti dell'inode %u"
-#: e2fsck/pass1.c:1225
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "mappa degli inode non valida"
-#: e2fsck/pass1.c:1247
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "inode nella mappa dei blocchi difettosi"
-#: e2fsck/pass1.c:1267
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "mappa degli inode imagic"
-#: e2fsck/pass1.c:1294
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr "mappa dei blocchi richiesta più volte"
-#: e2fsck/pass1.c:1393
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr ""
-#: e2fsck/pass1.c:2134
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr ""
-#: e2fsck/pass1.c:2449
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "mappa dei bit del blocco"
-#: e2fsck/pass1.c:2453
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "mappa dei bit dell'inode"
-#: e2fsck/pass1.c:2457
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "tavola degli inode"
-#: e2fsck/pass2.c:284
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Passo 2"
-#: e2fsck/pass2.c:803
+#: e2fsck/pass2.c:805
#, fuzzy
msgid "Can not continue."
msgstr ""
"Impossibile continuare, operazione annullata.\n"
"\n"
-#: e2fsck/pass3.c:79
+#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr ""
-#: e2fsck/pass3.c:90
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Memoria di picco"
-#: e2fsck/pass3.c:146
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Passo 3"
-#: e2fsck/pass3.c:334
+#: e2fsck/pass3.c:323
#, fuzzy
msgid "inode loop detection bitmap"
msgstr "mappa dei bit del ciclo di rilevamento inode"
@@ -574,185 +607,185 @@ msgstr "mappa dei bit del ciclo di rilevamento inode"
msgid "Pass 4"
msgstr "Passo 4"
-#: e2fsck/pass5.c:70
+#: e2fsck/pass5.c:74
msgid "Pass 5"
msgstr "Passo 5"
-#: e2fsck/problem.c:50
+#: e2fsck/problem.c:51
msgid "(no prompt)"
msgstr "(nessun prompt)"
-#: e2fsck/problem.c:51
+#: e2fsck/problem.c:52
msgid "Fix"
msgstr "Sistema"
-#: e2fsck/problem.c:52
+#: e2fsck/problem.c:53
msgid "Clear"
msgstr "Azzera"
-#: e2fsck/problem.c:53
+#: e2fsck/problem.c:54
msgid "Relocate"
msgstr "Riloca"
-#: e2fsck/problem.c:54
+#: e2fsck/problem.c:55
msgid "Allocate"
msgstr "Alloca"
-#: e2fsck/problem.c:55
+#: e2fsck/problem.c:56
msgid "Expand"
msgstr "Espandi"
-#: e2fsck/problem.c:56
+#: e2fsck/problem.c:57
msgid "Connect to /lost+found"
msgstr "Collega a /lost+found"
-#: e2fsck/problem.c:57
+#: e2fsck/problem.c:58
msgid "Create"
msgstr "Crea"
-#: e2fsck/problem.c:58
+#: e2fsck/problem.c:59
msgid "Salvage"
msgstr "Salva"
-#: e2fsck/problem.c:59
+#: e2fsck/problem.c:60
msgid "Truncate"
msgstr "Tronca"
-#: e2fsck/problem.c:60
+#: e2fsck/problem.c:61
msgid "Clear inode"
msgstr "Azzera inode"
-#: e2fsck/problem.c:61
+#: e2fsck/problem.c:62
msgid "Abort"
msgstr "Annulla"
-#: e2fsck/problem.c:62
+#: e2fsck/problem.c:63
msgid "Split"
msgstr "Dividi"
-#: e2fsck/problem.c:63
+#: e2fsck/problem.c:64
msgid "Continue"
msgstr "Continua"
-#: e2fsck/problem.c:64
+#: e2fsck/problem.c:65
#, fuzzy
msgid "Clone multiply-claimed blocks"
msgstr "mappa dei blocchi richiesta più volte"
-#: e2fsck/problem.c:65
+#: e2fsck/problem.c:66
msgid "Delete file"
msgstr "Cancella file"
-#: e2fsck/problem.c:66
+#: e2fsck/problem.c:67
msgid "Suppress messages"
msgstr "Sopprimi messaggi"
-#: e2fsck/problem.c:67
+#: e2fsck/problem.c:68
msgid "Unlink"
msgstr "Effettua l'unlink -- Scollega FIXME"
-#: e2fsck/problem.c:68
+#: e2fsck/problem.c:69
msgid "Clear HTree index"
msgstr "Azzera l'indice HTree"
-#: e2fsck/problem.c:69
+#: e2fsck/problem.c:70
msgid "Recreate"
msgstr "Ricrea"
-#: e2fsck/problem.c:78
+#: e2fsck/problem.c:79
msgid "(NONE)"
msgstr "(NESSUNO)"
-#: e2fsck/problem.c:79
+#: e2fsck/problem.c:80
msgid "FIXED"
msgstr "SISTEMATO"
-#: e2fsck/problem.c:80
+#: e2fsck/problem.c:81
msgid "CLEARED"
msgstr "AZZERATO"
-#: e2fsck/problem.c:81
+#: e2fsck/problem.c:82
msgid "RELOCATED"
msgstr "RILOCATO"
-#: e2fsck/problem.c:82
+#: e2fsck/problem.c:83
msgid "ALLOCATED"
msgstr "ALLOCATO"
-#: e2fsck/problem.c:83
+#: e2fsck/problem.c:84
msgid "EXPANDED"
msgstr "ESPANSO"
-#: e2fsck/problem.c:84
+#: e2fsck/problem.c:85
msgid "RECONNECTED"
msgstr "RICONNESSO"
-#: e2fsck/problem.c:85
+#: e2fsck/problem.c:86
msgid "CREATED"
msgstr "CREATO"
-#: e2fsck/problem.c:86
+#: e2fsck/problem.c:87
msgid "SALVAGED"
msgstr "SALVATO"
-#: e2fsck/problem.c:87
+#: e2fsck/problem.c:88
msgid "TRUNCATED"
msgstr "TRONCATO"
-#: e2fsck/problem.c:88
+#: e2fsck/problem.c:89
msgid "INODE CLEARED"
msgstr "INODE AZZERATO"
-#: e2fsck/problem.c:89
+#: e2fsck/problem.c:90
msgid "ABORTED"
msgstr "INTERROTTO"
-#: e2fsck/problem.c:90
+#: e2fsck/problem.c:91
msgid "SPLIT"
msgstr "DIVISO"
-#: e2fsck/problem.c:91
+#: e2fsck/problem.c:92
msgid "CONTINUING"
msgstr ""
-#: e2fsck/problem.c:92
+#: e2fsck/problem.c:93
#, fuzzy
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
msgstr "CLONATI BLOCCHI DUPLICATI/NON VALIDI"
-#: e2fsck/problem.c:93
+#: e2fsck/problem.c:94
msgid "FILE DELETED"
msgstr "FILE CANCELLATO"
-#: e2fsck/problem.c:94
+#: e2fsck/problem.c:95
msgid "SUPPRESSED"
msgstr "SOPPRESSO"
-#: e2fsck/problem.c:95
+#: e2fsck/problem.c:96
msgid "UNLINKED"
msgstr "SCOLLEGATO"
-#: e2fsck/problem.c:96
+#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
msgstr "INDICE HTREE PULITO"
-#: e2fsck/problem.c:97
+#: e2fsck/problem.c:98
msgid "WILL RECREATE"
msgstr "RICREERA'"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:106
+#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
msgstr "@B del @b per il @g %g non è in @g. (@b %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:110
+#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
msgstr "@B dell'@i per il @g %g non è in @g. (@b %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
-#: e2fsck/problem.c:115
+#: e2fsck/problem.c:116
msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
@@ -761,21 +794,25 @@ msgstr ""
"ATTENZIONE: SONO POSSIBILI NOTEVOLI PERDITE DI DATI.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
-#: e2fsck/problem.c:121
-#, c-format
+#: e2fsck/problem.c:122
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -789,7 +826,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:130
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -802,7 +839,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:137
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -813,19 +850,19 @@ msgstr ""
"differenti dalla dimensione del @b.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:144
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "@S @b(i)_per_gruppo = %b, avrebbe dovuto essere %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:149
+#: e2fsck/problem.c:152
#, fuzzy
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "Primo @b contenente dati del @S = %b, avrebbe dovuto essere %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:154
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -833,7 +870,7 @@ msgstr ""
"il @f non aveva un UUID; generazione di un UUID.\n"
"\n"
-#: e2fsck/problem.c:159
+#: e2fsck/problem.c:162
#, fuzzy, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -852,49 +889,49 @@ msgstr ""
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:168
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "Trovata corruzione nel @S. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:173
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "Errore determinando la dimensione del @v fisico: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:178
+#: e2fsck/problem.c:181
#, fuzzy
msgid "@i count in @S is %i, @s %j.\n"
msgstr "Il numero di @i in @S è %i, dovrebbe essere %j.\n"
-#: e2fsck/problem.c:182
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "Il kernel Hurd non supporta la caratteristica filetype.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:187
+#: e2fsck/problem.c:190
#, fuzzy, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "Il @S ha un @j ext3 non valido (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:192
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "Il @j esterno ha diversi utenti del @f (non supportato).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:197
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Impossibile trovare il @j esterno\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:202
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "Il @j esterno ha un @S non valido\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:207
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "Il @j esterno non supporta questo @f\n"
@@ -902,7 +939,7 @@ msgstr "Il @j esterno non supporta questo @f\n"
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#. @-expanded: format.\n
#. @-expanded: It is also possible the journal superblock is corrupt.\n
-#: e2fsck/problem.c:212
+#: e2fsck/problem.c:215
#, fuzzy
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
@@ -916,78 +953,70 @@ msgstr ""
"E' anche possibile che il @S del @j sia corrotto.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:220
+#: e2fsck/problem.c:223
#, fuzzy
msgid "@j @S is corrupt.\n"
msgstr "Il @S del @j ext3 è corrotto.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:225
+#: e2fsck/problem.c:228
#, fuzzy, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr "flag del recupero ext3 pulito, ma il @j contiene ancora dati.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:230
+#: e2fsck/problem.c:233
#, fuzzy
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr "Il @S ha il flag ext3 needs_recovery impostato, ma non ha @j.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:235
+#: e2fsck/problem.c:238
#, fuzzy
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr "flag del recupero ext3 pulito, ma il @j contiene ancora dati.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:240
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Azzerare @j"
-#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:245
-msgid "Run @j anyway"
-msgstr "Eseguire @j comunque"
-
-#. @-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 "Flag di recupero non impostato nel @S di backup, eseguo @j comunque.\n"
+#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
+msgid "@f has feature flag(s) set, but is a revision 0 @f. "
+msgstr ""
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:255
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s @o @i %i (uid=%Iu, gid=%Ig, modalità=%Im, dimensione=%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"
+#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:258
+#, fuzzy
+msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "@b @I #%B (%b) trovato in un @i @o %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"
+#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:263
+#, fuzzy
+msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "Già azzerato il @b #%B (%b) trovato in un @i @o %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:270
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@i @o @I %i nel @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:275
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "@i @I %i nella lista degli @i @o.\n"
-#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:280 e2fsck/problem.c:647
-msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr ""
-
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:285
+#: e2fsck/problem.c:278
#, fuzzy
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr ""
@@ -995,7 +1024,7 @@ msgstr ""
"sconosciuta.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:290
+#: e2fsck/problem.c:283
#, fuzzy
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr ""
@@ -1003,13 +1032,13 @@ msgstr ""
"compatibile.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:295
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "Versione del @j non supportata da questo e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:300
+#: e2fsck/problem.c:293
#, fuzzy, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1020,7 +1049,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:305
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1032,7 +1061,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:310
+#: e2fsck/problem.c:303
#, fuzzy
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
@@ -1042,9 +1071,19 @@ msgstr ""
"Trovati dei campi V2 del @S del @j non validi (dal journal V1).\n"
"Pulitura dei campi al di là del @S del @j V1...\n"
+#. @-expanded: Run journal anyway
+#: e2fsck/problem.c:309
+msgid "Run @j anyway"
+msgstr "Eseguire @j comunque"
+
+#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
+#: e2fsck/problem.c:314
+msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
+msgstr "Flag di recupero non impostato nel @S di backup, eseguo @j comunque.\n"
+
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:316
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1054,201 +1093,272 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:321
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
msgstr ""
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:327
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr ""
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:332
+#: e2fsck/problem.c:335
#, fuzzy
msgid "Resize @i not valid. "
msgstr "L'@r non è una @d. "
-#. @-expanded: superblock last mount time is in the future.
-#: e2fsck/problem.c:337
-msgid "@S last mount time is in the future. "
+#. @-expanded: superblock last mount time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:340
+msgid ""
+"@S last mount time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr ""
-#. @-expanded: superblock last write time is in the future.
-#: e2fsck/problem.c:342
-msgid "@S last write time is in the future. "
+#. @-expanded: superblock last write time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:345
+msgid ""
+"@S last write time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr ""
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:346
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr ""
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:351
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
msgstr ""
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:356
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
msgstr ""
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:361
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr ""
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:366
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr ""
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:371
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr ""
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:376
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr ""
-#: e2fsck/problem.c:381
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr ""
-#: e2fsck/problem.c:385
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr ""
+#. @-expanded: superblock last mount time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set)
+#: e2fsck/problem.c:388
+msgid ""
+"@S last mount time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
+msgstr ""
+
+#. @-expanded: superblock last write time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set).
+#: e2fsck/problem.c:394
+msgid ""
+"@S last write time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
+msgstr ""
+
+#. @-expanded: One or more block group descriptor checksums are invalid.
+#: e2fsck/problem.c:400
+msgid "One or more @b @g descriptor checksums are invalid. "
+msgstr ""
+
+#. @-expanded: Setting free inodes count to %j (was %i)\n
+#: e2fsck/problem.c:405
+#, fuzzy
+msgid "Setting free @is count to %j (was %i)\n"
+msgstr "Impostazione del numero di blocchi riservati a %lu\n"
+
+#. @-expanded: Setting free blocks count to %c (was %b)\n
+#: e2fsck/problem.c:410
+#, fuzzy
+msgid "Setting free @bs count to %c (was %b)\n"
+msgstr "Impostazione del numero di blocchi riservati a %lu\n"
+
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+#, fuzzy
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr ""
+"Spostamento di @j da /%s all'inode nascosto.\n"
+"\n"
+
+#. @-expanded: superblock has invalid MMP block.
+#: e2fsck/problem.c:420
+#, fuzzy
+msgid "@S has invalid MMP block. "
+msgstr "dimensione del blocco difettoso - %s"
+
+#. @-expanded: superblock has invalid MMP magic.
+#: e2fsck/problem.c:425
+msgid "@S has invalid MMP magic. "
+msgstr ""
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr ""
+
+#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr ""
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
-#: e2fsck/problem.c:392
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Passo 1: Controllo di @i, @b(i) e dimensioni\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:396
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "L'@r non è una @d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:401
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr ""
"L'@r ha il dtime impostato (probabilmente a causa di un vecchio mke2fs)."
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:406
+#: e2fsck/problem.c:461
#, fuzzy
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "L'@i riservato %i %Q ha una modalità errata. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:411
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "L'@i @D %i ha dtime zero. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:416
+#: e2fsck/problem.c:471
#, fuzzy, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "L'@i %i è in uso, ma ha il dtime impostato. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:421
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "L'@i %i è una @d a @z. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:426
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
msgstr "La @B dei @b(i) del @g %g a %b @C.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:431
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
msgstr "La @B degli @i del @g %g a %b @C.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:436
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr "La tavola degli @i del @g %g a %b @C.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:441
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr "La @B dei @b(i) del @g %g (%b) non è valida. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:446
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr "La @B degli @i del @g %g (%b) non è valida. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:451
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "@i %i, i_size è %Is, @s %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:456
+#: e2fsck/problem.c:511
#, fuzzy
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "@i %i, i_blocks è %Ib, @s %N. "
-#. @-expanded: illegal block #%B (%b) in inode %i.
-#: e2fsck/problem.c:461
-msgid "@I @b #%B (%b) in @i %i. "
+#. @-expanded: illegal %B (%b) in inode %i.
+#: e2fsck/problem.c:516
+#, fuzzy
+msgid "@I %B (%b) in @i %i. "
msgstr "@b @I #%B (%b) nell'@i %i. "
-#. @-expanded: block #%B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:466
-msgid "@b #%B (%b) overlaps @f metadata in @i %i. "
+#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
+#: e2fsck/problem.c:521
+msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr ""
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:471
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "L'@i %i ha @b(i) illegali. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:476
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Troppi @b(i) illegali in @i %i.\n"
-#. @-expanded: illegal block #%B (%b) in bad block inode.
-#: e2fsck/problem.c:481
+#. @-expanded: illegal %B (%b) in bad block inode.
+#: e2fsck/problem.c:536
#, fuzzy
-msgid "@I @b #%B (%b) in bad @b @i. "
+msgid "@I %B (%b) in bad @b @i. "
msgstr "@b @I #%B (%b) nell'@i del @b non valido. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:486
+#: e2fsck/problem.c:541
#, fuzzy
msgid "Bad @b @i has illegal @b(s). "
msgstr "L'@i del @b non valido ha @b(i) illegali. "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:491
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "@b duplicato o non valido in uso!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:496
+#: e2fsck/problem.c:551
#, fuzzy
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr "Il @b %b usa come @i del @b non valido un @b indiretto. "
@@ -1257,7 +1367,7 @@ msgstr "Il @b %b usa come @i del @b non valido un @b indiretto. "
#. @-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:501
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1271,7 +1381,7 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:508
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1282,7 +1392,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:513
+#: e2fsck/problem.c:568
#, fuzzy
msgid ""
"You can remove this @b from the bad @b list and hope\n"
@@ -1295,24 +1405,24 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "Il @S primario (%b) è nella listi dei @b(i) non validi.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
msgstr ""
"Il blocco %b nei descrittori primari del @g è nella lista dei @b(i) non "
"validi\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:530
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Attenzione: Il @S (%b) del gruppo %g non è valido.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:535
+#: e2fsck/problem.c:590
#, fuzzy
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
msgstr ""
@@ -1320,107 +1430,107 @@ msgstr ""
"valido.\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:541
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
msgstr ""
"Errore di programmazione? @b #%b reclamato senza ragione in process_bad_@b.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:547
+#: e2fsck/problem.c:602
#, fuzzy
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr "@A %N @b(i) contigui nel @g di @b %g per %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:552
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "@A il buffer @b per la rilocazione di %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:557
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Rilocazione del %s del @g %g da %b a %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:617
#, fuzzy, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Rilocazione del %s del @g %g in %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Attenzione: impossibile leggere @b %b di %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:572
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Attenzione: impossibile scrivere @b %b per %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:577 e2fsck/problem.c:1378
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "@A la @B dell'@i (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:582
+#: e2fsck/problem.c:637
#, fuzzy
msgid "@A @b @B (%N): %m\n"
msgstr "@A la @B dell'@i (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:587
+#: e2fsck/problem.c:642
#, fuzzy, c-format
msgid "@A icount link information: %m\n"
msgstr "@A le informazioni del collegamento icount: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:592
+#: e2fsck/problem.c:647
#, fuzzy, c-format
msgid "@A @d @b array: %m\n"
msgstr "@A l'array dei @b di @d: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:597
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Errore analizzando @is (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:602
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr "Errore scorrendo i @b(i) nell'@i %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:607
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr ""
"Errore salvando le informazioni sul numero di @i (@i=%i, numero=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:612
+#: e2fsck/problem.c:667
#, fuzzy
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
msgstr ""
"Errore salvando le informazioni sui @b(i) di @d (@i=%i, @b=%b, num=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:618
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Errore durante la lettura dell'@i %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:626
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "L'@i %i ha il flag imagic impostato. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:631
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1430,13 +1540,13 @@ msgstr ""
"immutable o append-only impostato. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:637
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr ""
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:642
+#: e2fsck/problem.c:697
#, fuzzy, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr ""
@@ -1444,154 +1554,155 @@ msgstr ""
"immutable o append-only impostato. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:652
+#: e2fsck/problem.c:707
#, fuzzy
msgid "@j @i is not in use, but contains data. "
msgstr "L'@i %i è in uso, ma ha il dtime impostato. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:657
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "Il @j non è un file regolare. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:662
+#: e2fsck/problem.c:717
#, fuzzy, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "L'@i %i faceva parte della lista degli @i orfani. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:668
+#: e2fsck/problem.c:723
#, fuzzy
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr ""
"trovati @i che facevano parte di una lista di orfani corrotti collegati. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:673
+#: e2fsck/problem.c:728
#, fuzzy
msgid "@A refcount structure (%N): %m\n"
msgstr "@A la struttura icount: %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:678
+#: e2fsck/problem.c:733
#, fuzzy
msgid "Error reading @a @b %b for @i %i. "
msgstr "Errore leggendo l'@a di @b %b per l'@i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:683
+#: e2fsck/problem.c:738
#, fuzzy
msgid "@i %i has a bad @a @b %b. "
msgstr "L'@i %i ha un @a di @b %b non valido. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:688
+#: e2fsck/problem.c:743
#, fuzzy
msgid "Error reading @a @b %b (%m). "
msgstr "Errore leggendo l'@a di @b %b (%m). "
-#. @-expanded: extended attribute block %b has reference count %B, should be %N.
-#: e2fsck/problem.c:693
+#. @-expanded: extended attribute block %b has reference count %r, should be %N.
+#: e2fsck/problem.c:748
#, fuzzy
-msgid "@a @b %b has reference count %B, @s %N. "
+msgid "@a @b %b has reference count %r, @s %N. "
msgstr "L'@a di @b %b è contato come %b, dovrebbe essere %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:698
+#: e2fsck/problem.c:753
#, fuzzy
msgid "Error writing @a @b %b (%m). "
msgstr "Errore scrivendo l'@a @b %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:703
+#: e2fsck/problem.c:758
#, fuzzy
msgid "@a @b %b has h_@bs > 1. "
msgstr "L'@a @b %b ha il valore h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:708
+#: e2fsck/problem.c:763
#, fuzzy
msgid "@A @a @b %b. "
msgstr "L'@i %i ha un @a di @b %b non valido. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:713
+#: e2fsck/problem.c:768
#, fuzzy
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "L'@a di @b %b è corrotto (collisione di allocazione). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:718
+#: e2fsck/problem.c:773
#, fuzzy
msgid "@a @b %b is corrupt (@n name). "
msgstr "L'@a di @b %b è corrotto (nome non valido). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:723
+#: e2fsck/problem.c:778
#, fuzzy
msgid "@a @b %b is corrupt (@n value). "
msgstr "L'@a di @b %b è corrotto (valore non valido). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:728
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "L'@i %i è troppo grande. "
-#. @-expanded: block #%B (%b) causes directory to be too big.
-#: e2fsck/problem.c:732
-msgid "@b #%B (%b) causes @d to be too big. "
+#. @-expanded: %B (%b) causes directory to be too big.
+#: e2fsck/problem.c:787
+#, fuzzy
+msgid "%B (%b) causes @d to be too big. "
msgstr "Il @b #%B (%b) fa diventare il @d troppo grande. "
-#. @-expanded: block #%B (%b) causes file to be too big.
-#: e2fsck/problem.c:737
-msgid "@b #%B (%b) causes file to be too big. "
+#: e2fsck/problem.c:792
+#, fuzzy
+msgid "%B (%b) causes file to be too big. "
msgstr "Il @b #%B (%b) fa diventare il file troppo grande. "
-#. @-expanded: block #%B (%b) causes symlink to be too big.
-#: e2fsck/problem.c:742
-msgid "@b #%B (%b) causes symlink to be too big. "
+#: e2fsck/problem.c:797
+#, fuzzy
+msgid "%B (%b) causes symlink to be too big. "
msgstr "Il @b #%B (%b) fa diventare il link simbolico troppo grande. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:747
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr ""
"L'@i %i ga il flag INDEX_FL impostato nel @f senza il supporto htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:752
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "L'@i %i ha il flag INDEX_FL impostato, ma non è un @d.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:757
+#: e2fsck/problem.c:812
#, fuzzy, c-format
msgid "@h %i has an @n root node.\n"
msgstr "L'@h %i ha un nodo root non valido.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:762
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr "L'@h %i ha una versione dell'hash non supportata (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:767
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr "L'@h %i usa un flag di nodo htree di root non compatibile.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:772
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:777
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
@@ -1600,61 +1711,61 @@ msgstr ""
"conflitto con il metadata del @f. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:783
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr ""
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:788
+#: e2fsck/problem.c:843
#, fuzzy
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:793
+#: e2fsck/problem.c:848
#, fuzzy
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
-#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:798
-#, fuzzy
-msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
-
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:803
+#: e2fsck/problem.c:853
#, fuzzy
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:808
+#: e2fsck/problem.c:858
#, fuzzy
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
+#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
+#: e2fsck/problem.c:863
+#, fuzzy
+msgid "@a in @i %i has a value size (%N) which is @n\n"
+msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
+
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:813
+#: e2fsck/problem.c:868
#, fuzzy
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:818
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr ""
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:823
+#: e2fsck/problem.c:878
#, fuzzy, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr "Errore scorrendo i @b(i) nell'@i %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:828
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1662,7 +1773,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:834
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1670,53 +1781,107 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:839
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:844
+#: e2fsck/problem.c:899
#, fuzzy, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr ""
"L'@i %i ga il flag INDEX_FL impostato nel @f senza il supporto htree.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:849
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr ""
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:854
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr ""
-#: e2fsck/problem.c:859
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr ""
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:864
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:868
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr ""
+#. @-expanded: Error converting subcluster block bitmap: %m\n
+#: e2fsck/problem.c:928
+#, fuzzy, c-format
+msgid "Error converting subcluster @b @B: %m\n"
+msgstr "Errore scorrendo i @b(i) delle @d: %m\n"
+
+#. @-expanded: quota inode is not regular file.
+#: e2fsck/problem.c:933
+#, fuzzy
+msgid "@q @i is not regular file. "
+msgstr "Il @j non è un file regolare. "
+
+#. @-expanded: quota inode is not in use, but contains data.
+#: e2fsck/problem.c:938
+#, fuzzy
+msgid "@q @i is not in use, but contains data. "
+msgstr "L'@i %i è in uso, ma ha il dtime impostato. "
+
+#. @-expanded: quota inode is visible to the user.
+#: e2fsck/problem.c:943
+#, fuzzy
+msgid "@q @i is visible to the user. "
+msgstr "L'@i %i è in uso, ma ha il dtime impostato. "
+
+#. @-expanded: The bad block inode looks invalid.
+#: e2fsck/problem.c:948
+#, fuzzy
+msgid "The bad @b @i looks @n. "
+msgstr "<Inode numero 1>"
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+
#. @-expanded: \n
#. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n
#. @-expanded: Pass 1B: Rescanning for multiply-claimed blocks\n
-#: e2fsck/problem.c:875
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1724,72 +1889,72 @@ msgid ""
msgstr ""
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:881
+#: e2fsck/problem.c:980
#, fuzzy, c-format
msgid "@m @b(s) in @i %i:"
msgstr "@b @I #%B (%b) nell'@i %i. "
-#: e2fsck/problem.c:896
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Errore analizzando gli inode (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:901
+#: e2fsck/problem.c:1000
#, fuzzy, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "@A la @B degli @i (inode_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:906
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr "Errore scorrendo i @b(i) nell'@i %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:911 e2fsck/problem.c:1227
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
#, fuzzy
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr ""
"Errore sistemando il conteggio dei riferimenti per il @b @a %b (@i %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:917
+#: e2fsck/problem.c:1015
#, fuzzy
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr ""
"Passo 1C: Analisi delle directory relativa agli @i con @b(i) duplicati.\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:923
+#: e2fsck/problem.c:1021
#, fuzzy
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Passo 1D: Riconciliamento del @b(i) duplicati\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:928
+#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
+#: e2fsck/problem.c:1026
#, fuzzy
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
-" has %B @m @b(s), shared with %N file(s):\n"
+" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
"Il file %Q (@i #%i, ultima modifica %IM) \n"
" ha %b @b(i) duplicati, condivisi con %N file:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:934
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (@i #%i, ultima modifica %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:939
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<metadata del @f>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:944
+#: e2fsck/problem.c:1042
#, fuzzy
msgid ""
"(There are %N @is containing @m @bs.)\n"
@@ -1800,7 +1965,7 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:949
+#: e2fsck/problem.c:1047
#, fuzzy
msgid ""
"@m @bs already reassigned or cloned.\n"
@@ -1809,341 +1974,344 @@ msgstr ""
"@b(i) duplicati già riassegnati o clonati.\n"
"\n"
-#: e2fsck/problem.c:962
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "Impossibile clonare il file: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:968
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Passo 2: Analisi della struttura delle @d\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:973
+#: e2fsck/problem.c:1071
#, fuzzy, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr "Numero di @i non valido per '.' nell'@i @d %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:978
+#: e2fsck/problem.c:1076
#, fuzzy
msgid "@E has @n @i #: %Di.\n"
msgstr "L'@E ha un @i non valido #: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:983
+#: e2fsck/problem.c:1081
#, fuzzy
msgid "@E has @D/unused @i %Di. "
msgstr "L'@E ha @i non utilizzato/@D %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:988
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "L'@E @L a '.' "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:993
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "L'@E punta all'@i (%Di), posizionato in un @b non valido.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:998
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "L'@E @L alla @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1003
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "L'@E @L all'@r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1008
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "L'@E ha caratteri non validi nel suo nome.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1013
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "'.' mancante nell'@i %i della @d.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1018
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "'..' mancante nell'@i %i della @d.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1023
+#: e2fsck/problem.c:1121
#, fuzzy
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr "Il primo @e '%Dn' (inode=%Di) nell'@i %i della @d (%p) @s '.'\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1028
+#: e2fsck/problem.c:1126
#, fuzzy
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "Il secondo @e '%Dn' (inode=%Di) nell'@i %i della @d (%p) @s '.'\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1033
+#: e2fsck/problem.c:1131
#, fuzzy
msgid "i_faddr @F %IF, @s zero.\n"
msgstr "i_faddr @F %IF @s zero.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1038
+#: e2fsck/problem.c:1136
#, fuzzy
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "i_file_acl @F %If @s zero.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1043
+#: e2fsck/problem.c:1141
#, fuzzy
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "i_dir_acl @F %Id @s zero.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1048
+#: e2fsck/problem.c:1146
#, fuzzy
msgid "i_frag @F %N, @s zero.\n"
msgstr "i_frag @F %N @s zero.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1053
+#: e2fsck/problem.c:1151
#, fuzzy
msgid "i_fsize @F %N, @s zero.\n"
msgstr "i_fsize @F %N @s zero.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1058
+#: e2fsck/problem.c:1156
#, fuzzy
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "L'@o %i (%Q) ha una modalità non valida (%Im).\n"
-#. @-expanded: directory inode %i, block %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1063
-msgid "@d @i %i, @b %B, offset %N: @d corrupted\n"
+#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
+#: e2fsck/problem.c:1161
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "@i %i della @d, offset %N: @d corrotta\n"
-#. @-expanded: directory inode %i, block %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1068
-msgid "@d @i %i, @b %B, offset %N: filename too long\n"
+#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
+#: e2fsck/problem.c:1166
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "@i %i della @d, offset %N: nome file troppo lungo\n"
-#. @-expanded: directory inode %i has an unallocated block #%B.
-#: e2fsck/problem.c:1073
+#. @-expanded: directory inode %i has an unallocated %B.
+#: e2fsck/problem.c:1171
#, fuzzy
-msgid "@d @i %i has an unallocated @b #%B. "
+msgid "@d @i %i has an unallocated %B. "
msgstr "L'@i %i della @d ha un @b (#%B) non allocato. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1078
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "L'@e della @d '.' nell'@i %i della @d non è terminato da NULL\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1083
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "L'@e della @d '..' nell'@i %i della @d non è terminato da NULL\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1088
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "L'@i %i (%Q) è un @v a caratteri @I.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1093
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "L'@i %i (%Q) è un @v a @b(i) @I.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1098
+#: e2fsck/problem.c:1196
#, fuzzy
msgid "@E is duplicate '.' @e.\n"
msgstr "L'@E è un duplicato dell'@e '.'.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1103
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "L'@E è un duplicato dell'@e '..'.\n"
-#: e2fsck/problem.c:1108 e2fsck/problem.c:1403
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "Errore interno: impossibile trovare dir_info per %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1113
+#: e2fsck/problem.c:1211
#, fuzzy
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "L'@E ha rec_len di %Dr, dovrebbe essere %N.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1118
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "@A la struttura icount: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1123
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Errore scorrendo i @b(i) delle @d: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1128
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Errore leggendo il @b della @d %b (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1133
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Errore scrivendo il @b della @d %b (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1138
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "@A un nuovo @b della @d per l'@i %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1143
+#: e2fsck/problem.c:1241
#, fuzzy, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Errore deallocando l'@i %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1148
+#: e2fsck/problem.c:1246
#, fuzzy, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "L'@e della @d di '.' è grande. "
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1153
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "L'@i %i (%Q) è una FIFO @I.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1158
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "L'@i %i (%Q) è un socket @I.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1163
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "Impostazione del tipo di file per l'@E a %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1168
+#: e2fsck/problem.c:1266
#, fuzzy
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "L'@E non è del giusto tipo di file (era %Dt, dovrebbe essere %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1173
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "E' impostato il tipo di file per l'@E.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1178
+#: e2fsck/problem.c:1276
#, fuzzy
msgid "@E has a @z name.\n"
msgstr "Il nome dell'@E è di lunghezza nulla.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1183
+#: e2fsck/problem.c:1281
#, fuzzy
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "Il symlink %Q (@i #%i) non è valido.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1188
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr ""
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1193
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr ""
"Il @f contiene files di grandi dimensioni, ma nel @S non è specificato il "
"flag LARGE_FILE.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) not referenced\n
-#: e2fsck/problem.c:1198
+#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
+#: e2fsck/problem.c:1296
#, fuzzy
-msgid "@p @h %d: node (%B) not referenced\n"
+msgid "@p @h %d: %B not referenced\n"
msgstr "@p un @h (%d): nodo (%B) non referenziato\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) referenced twice\n
-#: e2fsck/problem.c:1203
+#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
+#: e2fsck/problem.c:1301
#, fuzzy
-msgid "@p @h %d: node (%B) referenced twice\n"
+msgid "@p @h %d: %B referenced twice\n"
msgstr "@p un @h (%d): nodo (%b) referenziato due volte\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad min hash\n
-#: e2fsck/problem.c:1208
+#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
+#: e2fsck/problem.c:1306
#, fuzzy
-msgid "@p @h %d: node (%B) has bad min hash\n"
+msgid "@p @h %d: %B has bad min hash\n"
msgstr "@p un @h (%d): nodo (%B) con hash minimo non valido\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad max hash\n
-#: e2fsck/problem.c:1213
+#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
+#: e2fsck/problem.c:1311
#, fuzzy
-msgid "@p @h %d: node (%B) has bad max hash\n"
+msgid "@p @h %d: %B has bad max hash\n"
msgstr "@p un @h (%d): nodo (%b) con hash massimo non valido\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1218
+#: e2fsck/problem.c:1316
#, fuzzy
msgid "@n @h %d (%q). "
msgstr "@h %d non valido (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1222
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "@p un @h %d (%q): @b non valido numero %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1232
+#: e2fsck/problem.c:1330
#, fuzzy, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "@p un @h (%d): nodo root non valido\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid limit (%N)\n
-#: e2fsck/problem.c:1237
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
+#: e2fsck/problem.c:1335
#, fuzzy
-msgid "@p @h %d: node (%B) has @n limit (%N)\n"
+msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr "@p un @h (%d): nodo (%B) con limite non valido (%N)\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid count (%N)\n
-#: e2fsck/problem.c:1242
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
+#: e2fsck/problem.c:1340
#, fuzzy
-msgid "@p @h %d: node (%B) has @n count (%N)\n"
+msgid "@p @h %d: %B has @n count (%N)\n"
msgstr "@p un @h (%d): numero (%N) di nodo (%B) non valido\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
-#: e2fsck/problem.c:1247
-msgid "@p @h %d: node (%B) has an unordered hash table\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
+#: e2fsck/problem.c:1345
+#, fuzzy
+msgid "@p @h %d: %B has an unordered hash table\n"
msgstr "@p un @h (%d): nodo (%B) con tabella hash non ordinata\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth (%N)\n
-#: e2fsck/problem.c:1252
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
+#: e2fsck/problem.c:1350
#, fuzzy
-msgid "@p @h %d: node (%B) has @n depth (%N)\n"
+msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "@p un @h (%d): nodo (%B) con profondità non valida\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1257
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "Trovato @E duplicato. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1262
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2155,7 +2323,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1267
+#: e2fsck/problem.c:1365
#, fuzzy
msgid ""
"Duplicate @e '%Dn' found.\n"
@@ -2167,114 +2335,120 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1272
+#: e2fsck/problem.c:1370
#, fuzzy
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "i_fsize @F %N @s zero.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1277
+#: e2fsck/problem.c:1375
#, fuzzy
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "@h %d non valido (%q). "
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1281
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1286
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
+#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
+#: e2fsck/problem.c:1389
+#, fuzzy
+msgid "i_file_acl_hi @F %N, @s zero.\n"
+msgstr "i_file_acl @F %If @s zero.\n"
+
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1293
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Passo 3: Controllo della connettività di @d\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1298
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "@r non allocato."
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1303
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "Non c'è spazio nella @d @l"
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1308
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr ""
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1313
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/@l non trovata. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1318
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "'..' in %Q (%i) è %P (%j), @s %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1323
+#: e2fsck/problem.c:1426
#, fuzzy
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "/@l non valida o inesistente. Impossibile riconnettere.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1328
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "Impossibile espandere /@l: %m\n"
-#: e2fsck/problem.c:1333
+#: e2fsck/problem.c:1436
#, fuzzy, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "Impossibile riconnettere %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1338
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "Errore cercando /@l: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1343
+#: e2fsck/problem.c:1446
#, fuzzy, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_block: %m cercando di creare la @d /@l\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1348
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr "ext2fs_new_@i: %m cercando di creare la @d /@l\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1456
#, fuzzy, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr "ext2f_new_dir_block: %m creando un nuovo @b @d\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1461
#, fuzzy, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr "ext2fs_write_dir_block: %m scrivendo il @b @d per /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Errore aggiustando il numero @i nell'@i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1368
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2283,7 +2457,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1373
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2291,70 +2465,70 @@ msgid ""
msgstr ""
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1383
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Errore creando la @d root (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1388
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Errore creando la @d /@l (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1393
+#: e2fsck/problem.c:1496
#, fuzzy
msgid "@r is not a @d; aborting.\n"
msgstr "L'@r non è una @d; cancellazione.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1398
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "Impossibile procedere senza un @r.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1408
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/@l non è una @d (ino=%i)\n"
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Passo 3A: Ottimizzazione delle directory\n"
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1523
#, fuzzy, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Impossibile creare un iteratore dirs_to_hash: %m"
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1528
#, fuzzy
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Impossibile ottimizzare la directory %q (%d): %m"
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Ottimizzazione delle directory: "
-#: e2fsck/problem.c:1447
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Pass 4: Controllo del numero dei riferimenti\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1452
+#: e2fsck/problem.c:1555
#, fuzzy, c-format
msgid "@u @z @i %i. "
msgstr "@i @o @I %i nel @S.\n"
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1457
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr ""
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1462
+#: e2fsck/problem.c:1565
#, fuzzy
msgid "@i %i ref count is %Il, @s %N. "
msgstr "Il contatore riferimenti dell'@i %i è %Il, @s %N. "
@@ -2362,7 +2536,7 @@ msgstr "Il contatore riferimenti dell'@i %i è %Il, @s %N. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
-#: e2fsck/problem.c:1466
+#: e2fsck/problem.c:1569
#, fuzzy
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
@@ -2374,148 +2548,152 @@ msgstr ""
"@i_link_info[%i] è %N, @i.i_links_count è %Il. Dovrebbero essere identici!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1476
+#: e2fsck/problem.c:1579
#, fuzzy
msgid "Pass 5: Checking @g summary information\n"
msgstr "Passo 5: Controllo del riepilogo delle informazioni del @g\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1481
+#: e2fsck/problem.c:1584
#, fuzzy
msgid "Padding at end of @i @B is not set. "
msgstr "Riempimento alla fine di @i @B non impostato. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1486
+#: e2fsck/problem.c:1589
#, fuzzy
msgid "Padding at end of @b @B is not set. "
msgstr "Riempimento alla fine di @b @B non impostato. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1491
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "Differenze nella @B dei @b: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1511
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "Differenze nella @B degli @i: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1531
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Numero degli @i liberi errato per il @g #%g (%i, contati=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1536
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Numero delle directory errato per il @g #%g (%i, contati=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1541
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "Numero degli @i liberi errato (%i, contati=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1546
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr "Numero dei @b(i) liberi errato per il @g #%g (%b, contati=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1551
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "Numero dei @b(i) liberi errato (%b, contati=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1556
+#: e2fsck/problem.c:1659
msgid ""
"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
"endpoints (%i, %j)\n"
msgstr ""
-#: e2fsck/problem.c:1562
+#: e2fsck/problem.c:1665
#, fuzzy
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr ""
"Errore interno: impossibile individuare la fine della mappa di bit (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1567
+#: e2fsck/problem.c:1670
#, fuzzy, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Errore durante la lettura dell'@i %i: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1572
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr ""
-#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1597
-#, fuzzy
-msgid "Recreate @j"
-msgstr "Ricrea"
-
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1602
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr ""
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1607
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1725
+#. @-expanded: Recreate journal
+#: e2fsck/problem.c:1712
+#, fuzzy
+msgid "Recreate @j"
+msgstr "Ricrea"
+
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr ""
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Codice errore non gestito (0x%x)!\n"
-#: e2fsck/problem.c:1820
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "IGNORATO"
-#: e2fsck/scantest.c:81
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Memoria usata: %d, tempo rimasto: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:100
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "dimensione di un inode=%d\n"
-#: e2fsck/scantest.c:121
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "iniziando la scansione degli inode"
-#: e2fsck/scantest.c:132
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "durante la scansione dell'inode"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "chiamando ext2fs_block_iterate per l'inode %d"
-#: e2fsck/super.c:209
+#: e2fsck/super.c:213
#, fuzzy, c-format
-msgid "while calling ext2fs_adjust_ea_refcount for inode %d"
+msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "chiamando ext2fs_adjust_ea_refocunt per l'inode %d"
-#: e2fsck/super.c:267
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr ""
-#: e2fsck/super.c:268
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr ""
-#: e2fsck/unix.c:76
+#: e2fsck/unix.c:74
#, fuzzy, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2528,8 +2706,7 @@ msgstr ""
"\t\t[-l|-L file_blocchi_non_validi] [-C fd] [-j ext-journal]\n"
"\t\t[-E opzioni-estese] device\n"
-#: e2fsck/unix.c:82
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
@@ -2550,8 +2727,8 @@ msgstr ""
" -f Forza il controllo anche se il filesystem è segnato "
"come pulito\n"
-#: e2fsck/unix.c:88
-#, fuzzy, c-format
+#: e2fsck/unix.c:86
+#, fuzzy
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2568,38 +2745,157 @@ msgstr ""
" -l file_bad_blocks Aggiungi alla lista dei blocchi non validi\n"
" -L file_bad_blocks Imposta la lista dei blocchi non validi\n"
-#: e2fsck/unix.c:132
+#: e2fsck/unix.c:131
#, fuzzy, c-format
-msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %u/%u blocks\n"
+msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %d/%d files (%0d.%d%% non contigui), %d/%d blocchi\n"
-#: e2fsck/unix.c:150
+#: e2fsck/unix.c:157
#, fuzzy, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " # di inode con blocchi ind/dind/tind: %d/%d/%d\n"
+msgid ""
+"\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
+msgid_plural ""
+"\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
+msgstr[0] "%d inode analizzati.\n"
+msgstr[1] "%d inode analizzati.\n"
-#: e2fsck/unix.c:157
+#: e2fsck/unix.c:161
+#, c-format
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:166
#, c-format
-msgid " Extent depth histogram: "
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:171
+#, fuzzy, c-format
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " # di inode con blocchi ind/dind/tind: %d/%d/%d\n"
+
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
msgstr ""
-#: e2fsck/unix.c:207 misc/badblocks.c:916 misc/tune2fs.c:1567 misc/util.c:151
-#: resize/main.c:248
+#: e2fsck/unix.c:188
+#, c-format
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:192
+#, fuzzy, c-format
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%u inode, %u blocchi\n"
+msgstr[1] "%u inode, %u blocchi\n"
+
+#: e2fsck/unix.c:194
+#, fuzzy, c-format
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "mappa degli inode dei file regolari"
+msgstr[1] "mappa degli inode dei file regolari"
+
+#: e2fsck/unix.c:196
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u regular file\n"
+msgid_plural ""
+"\n"
+"%12u regular files\n"
+msgstr[0] "mappa degli inode dei file regolari"
+msgstr[1] "mappa degli inode dei file regolari"
+
+#: e2fsck/unix.c:198
+#, fuzzy, c-format
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "ddirectory"
+msgstr[1] "ddirectory"
+
+#: e2fsck/unix.c:200
+#, fuzzy, c-format
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "vdevice"
+msgstr[1] "vdevice"
+
+#: e2fsck/unix.c:203
+#, fuzzy, c-format
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "vdevice"
+msgstr[1] "vdevice"
+
+#: e2fsck/unix.c:205
+#, c-format
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:207
+#, c-format
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:209
+#, c-format
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:211
+#, c-format
+msgid " (%u fast symbolic link)\n"
+msgid_plural " (%u fast symbolic links)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:215
+#, c-format
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:219
+#, fuzzy, c-format
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "mappa degli inode dei file regolari"
+msgstr[1] "mappa degli inode dei file regolari"
+
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "determinando se %s è montato."
-#: e2fsck/unix.c:225
-#, c-format
-msgid "Warning! %s is mounted.\n"
+#: e2fsck/unix.c:252
+#, fuzzy, c-format
+msgid "Warning! %s is %s.\n"
msgstr "Attenzione! %s è montato.\n"
-#: e2fsck/unix.c:229
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s è montato. "
+msgid "%s is %s.\n"
+msgstr ""
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2607,13 +2903,13 @@ msgstr ""
"Impossibile continuare, operazione annullata.\n"
"\n"
-#: e2fsck/unix.c:232
-#, c-format
+#: e2fsck/unix.c:264
+#, fuzzy
msgid ""
"\n"
"\n"
-"\a\a\a\aWARNING!!! Running e2fsck on a mounted filesystem may cause\n"
-"SEVERE filesystem damage.\a\a\a\n"
+"WARNING!!! The filesystem is mounted. If you continue you ***WILL***\n"
+"cause ***SEVERE*** filesystem damage.\n"
"\n"
msgstr ""
"\n"
@@ -2622,126 +2918,137 @@ msgstr ""
"causare SERI danni al filesystem.\a\a\a\n"
"\n"
-#: e2fsck/unix.c:235
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Continuare"
-#: e2fsck/unix.c:237
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "controllo annullato.\n"
-#: e2fsck/unix.c:310
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " contiene un filesystem con errori"
-#: e2fsck/unix.c:312
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " non è stato smontato in maniera corretta"
-#: e2fsck/unix.c:314
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr ""
-#: e2fsck/unix.c:318
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " è stato montato %u volte senza essere controllato"
-#: e2fsck/unix.c:324
+#: e2fsck/unix.c:379
#, fuzzy
msgid " has filesystem last checked time in the future"
msgstr ""
"Impostazione di data ed ora dell'ultimo controllo del filesystem a %s\n"
-#: e2fsck/unix.c:330
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " non è stato controllato negli ultimi %u giorni"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", controllo forzato.\n"
-#: e2fsck/unix.c:342
+#: e2fsck/unix.c:427
#, fuzzy, c-format
-msgid "%s: clean, %u/%u files, %u/%u blocks"
+msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: a posto, %d/%d file, %d/%d blocchi"
-#: e2fsck/unix.c:359
+#: e2fsck/unix.c:447
#, fuzzy
msgid " (check deferred; on battery)"
msgstr " (controllo dopo il prossimo mount)"
-#: e2fsck/unix.c:362
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (controllo dopo il prossimo mount)"
-#: e2fsck/unix.c:364
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (controllo tra %ld mount)"
-#: e2fsck/unix.c:511
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "ERRORE: Impossibile aprire /dev/null (%s)\n"
-#: e2fsck/unix.c:581
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Versione EA non valida.\n"
-#: e2fsck/unix.c:590
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr ""
-#: e2fsck/unix.c:612
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-#: e2fsck/unix.c:680
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Errore convalidando il descrittore di file %d: %s\n"
-#: e2fsck/unix.c:684
+#: e2fsck/unix.c:798
#, fuzzy
msgid "Invalid completion information file descriptor"
msgstr "Informazioni di completamento descrittore di file non valide"
-#: e2fsck/unix.c:699
+#: e2fsck/unix.c:813
#, fuzzy
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Solo una tra le opzioni -p/-a, -n o -y può essere specificata."
-#: e2fsck/unix.c:720
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "L'opzione -t non è supportata da questa versione di e2fsck.\n"
-#: e2fsck/unix.c:801 misc/tune2fs.c:549 misc/tune2fs.c:833 misc/tune2fs.c:850
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Impossibile risolvere '%s'"
-#: e2fsck/unix.c:831
-#, c-format
+#: e2fsck/unix.c:918
+msgid "The -n and -D options are incompatible."
+msgstr ""
+
+#: e2fsck/unix.c:923
+msgid "The -n and -c options are incompatible."
+msgstr ""
+
+#: e2fsck/unix.c:928
+#, fuzzy
+msgid "The -n and -l/-L options are incompatible."
+msgstr "Le opzioni -c e -I/-L non possono essere usate contemporaneamente.\n"
+
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "Le opzioni -c e -I/-L non possono essere usate contemporaneamente.\n"
-#: e2fsck/unix.c:879
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2749,39 +3056,65 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/unix.c:929
+#: e2fsck/unix.c:1129
#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
+#, fuzzy
+msgid "while checking MMP block"
+msgstr "impostando il superblocco"
+
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
+msgid ""
+"If you are sure the filesystem is not in use on any node, run:\n"
+"'tune2fs -f -E clear_mmp {device}'\n"
+msgstr ""
+
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Errore: versione obsoleta della libreria ext2fs!\n"
-#: e2fsck/unix.c:937
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "tentando di inizializzare il programma"
-#: e2fsck/unix.c:951
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tUtilizzando %s, %s\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "serve il terminale per il riparo interattivo"
-#: e2fsck/unix.c:1010
+#: e2fsck/unix.c:1299
#, fuzzy, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s cercando tra i blocchi di backup...\n"
-#: e2fsck/unix.c:1012
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr ""
-#: e2fsck/unix.c:1013
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "I descrittori di gruppo sembrano non validi..."
-#: e2fsck/unix.c:1040
-#, c-format
+#: e2fsck/unix.c:1312
+#, fuzzy, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s cercando tra i blocchi di backup...\n"
+
+#: e2fsck/unix.c:1316
+#, fuzzy, c-format
+msgid "%s: going back to original superblock\n"
+msgstr "%s: non è stato trovato un superblocco valido del journal\n"
+
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2792,28 +3125,29 @@ msgstr ""
"(O il superblocco del filesystem è corrotto)\n"
"\n"
-#: e2fsck/unix.c:1046
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "E' possibile che questa sia una partizione di dimensione zero?\n"
-#: e2fsck/unix.c:1048
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Serve accesso di tipo %s al filesystem, o è necessario essere root\n"
-#: e2fsck/unix.c:1053
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "Device non esistente o di swap?\n"
-#: e2fsck/unix.c:1055
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
-#: e2fsck/unix.c:1059
-#, c-format
+#: e2fsck/unix.c:1366
+#, fuzzy
+msgid "Possibly non-existent device?\n"
+msgstr "Device non esistente o di swap?\n"
+
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -2821,17 +3155,16 @@ msgstr ""
"Disco protetto da scrittura: usare l'opzione -n per controllare\n"
"in modalità sola lettura.\n"
-#: e2fsck/unix.c:1123
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Utilizzare una versione più nuova di e2fsck."
-#: e2fsck/unix.c:1147
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "controllando il journal ext3 per %s"
-#: e2fsck/unix.c:1158
-#, c-format
+#: e2fsck/unix.c:1489
msgid ""
"Warning: skipping journal recovery because doing a read-only filesystem "
"check.\n"
@@ -2840,91 +3173,78 @@ msgstr ""
"ripristinato.\n"
# fuzzy
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "impossibile impostarei i flag del superblocco a %s\n"
-#: e2fsck/unix.c:1177
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "ripristinando il journal ext3 di %s"
-#: e2fsck/unix.c:1201
+#: e2fsck/unix.c:1532
#, fuzzy, c-format
msgid "%s has unsupported feature(s):"
msgstr "L'@h %i ha una versione dell'hash non supportata (%N)\n"
-#: e2fsck/unix.c:1217
-msgid "Warning: compression support is experimental.\n"
+#: e2fsck/unix.c:1547
+#, fuzzy, c-format
+msgid "%s: warning: compression support is experimental.\n"
msgstr "Attenzione: il supporto per la compressione è sperimentale.\n"
-#: e2fsck/unix.c:1222
-#, c-format
+#: e2fsck/unix.c:1553
+#, fuzzy, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
"E2fsck non è stato compilato con il supporto HTREE,\n"
"\tma il filesystem %s contiene directory HTREE.\n"
-#: e2fsck/unix.c:1276
-msgid "while reading bad blocks inode"
+#: e2fsck/unix.c:1605
+#, fuzzy, c-format
+msgid "%s: %s while reading bad blocks inode\n"
msgstr "leggendo l'inode numero 1"
-#: e2fsck/unix.c:1278
-#, c-format
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Questo non è un buon segno, ma si tenterà di continuare...\n"
-#: e2fsck/unix.c:1304
-msgid "Couldn't determine journal size"
-msgstr ""
-
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Creazione del journal (%d blocchi): "
-#: e2fsck/unix.c:1314 misc/mke2fs.c:2091
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tcercando di creare il journal"
-
-#: e2fsck/unix.c:1317
-#, fuzzy, c-format
+#: e2fsck/unix.c:1659
+#, fuzzy
msgid " Done.\n"
msgstr "fatto\n"
-#: e2fsck/unix.c:1318
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
-#: e2fsck/unix.c:1325
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Riavvio di e2fsck dall'inizio...\n"
-#: e2fsck/unix.c:1329
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "resettando il contesto"
-#: e2fsck/unix.c:1336
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck cancellato.\n"
-#: e2fsck/unix.c:1341
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "annullato"
-#: e2fsck/unix.c:1353
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -2933,12 +3253,12 @@ msgstr ""
"\n"
"%s: ***** IL FILESYSTEM E' STATO MODIFICATO *****\n"
-#: e2fsck/unix.c:1356
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** RIAVVIARE LINUX *****\n"
-#: e2fsck/unix.c:1364
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -2950,44 +3270,44 @@ msgstr ""
"************\n"
"\n"
-#: e2fsck/unix.c:1400
+#: e2fsck/unix.c:1765
#, fuzzy
msgid "while setting block group checksum info"
msgstr "impostando l'inode del blocco difettoso"
-#: e2fsck/util.c:138 misc/util.c:68
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "sS"
-#: e2fsck/util.c:139
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:153
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<s>"
-#: e2fsck/util.c:155
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:157
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (s/n)"
-#: e2fsck/util.c:172
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "cancellato!\n"
-#: e2fsck/util.c:187
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "sì\n"
-#: e2fsck/util.c:189
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "no\n"
-#: e2fsck/util.c:199
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -2996,7 +3316,7 @@ msgstr ""
"%s? no\n"
"\n"
-#: e2fsck/util.c:203
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3005,40 +3325,40 @@ msgstr ""
"%s? sì\n"
"\n"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "yes"
msgstr "sì"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "no"
msgstr "no"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr ""
-#: e2fsck/util.c:226
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "lettura delle mappe di bit inode e blocco"
-#: e2fsck/util.c:231
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "riprovando a leggere le mappe di bit per %s"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:298
#, fuzzy
msgid "writing block and inode bitmaps"
msgstr "scrivendo le mappe di bit di blocco"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:303
#, fuzzy, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr "riprovando a scrivere le mappe di bit di inode per %s"
# fuzzy
-#: e2fsck/util.c:260
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3051,46 +3371,52 @@ msgstr ""
"%s: INCONSISTENZA INASPETTATA: ESEGUIRE fsck MANUALMENTE.\n"
"\t(es., senza le opzioni -a o -p)\n"
-#: e2fsck/util.c:336
-#, c-format
-msgid "Memory used: %dk/%dk (%dk/%dk), "
+#: e2fsck/util.c:396
+#, fuzzy, c-format
+msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Memoria usata: %dk/%dk (%dk/%dk), "
-#: e2fsck/util.c:340
-#, c-format
-msgid "Memory used: %d, "
+#: e2fsck/util.c:400
+#, fuzzy, c-format
+msgid "Memory used: %lu, "
msgstr "Memoria usata: %d, "
-#: e2fsck/util.c:346
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "durata: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:351
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "tempo rimanente: %6.3f\n"
-#: e2fsck/util.c:385 e2fsck/util.c:399
-#, c-format
-msgid "while reading inode %ld in %s"
+#: e2fsck/util.c:447 e2fsck/util.c:461
+#, fuzzy, c-format
+msgid "while reading inode %lu in %s"
msgstr "leggendo l'inode %ld in %s"
-#: e2fsck/util.c:413 e2fsck/util.c:426
-#, c-format
-msgid "while writing inode %ld in %s"
+#: e2fsck/util.c:475 e2fsck/util.c:488
+#, fuzzy, c-format
+msgid "while writing inode %lu in %s"
msgstr "scrivendo l'inode %ld in %s"
-#: e2fsck/util.c:575
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "allocando i buffer zeroizing"
-#: misc/badblocks.c:66
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+
+#: misc/badblocks.c:69
#, fuzzy
-msgid "done \n"
+msgid "done \n"
msgstr "fatto \n"
-#: misc/badblocks.c:89
+#: misc/badblocks.c:92
#, fuzzy, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
@@ -3104,91 +3430,91 @@ msgstr ""
"modello_di_prova [...]]]\n"
" device [blocco_finale [blocco_iniziale]]\n"
-#: misc/badblocks.c:100
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-#: misc/badblocks.c:202
+#: misc/badblocks.c:218
#, c-format
-msgid "%6.2f%% done, %s elapsed"
+msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr ""
-#: misc/badblocks.c:289
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Controllo con un modello casuale: "
-#: misc/badblocks.c:307
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Controllo con modello 0x"
-#: misc/badblocks.c:335 misc/badblocks.c:404
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "durante la ricerca"
-#: misc/badblocks.c:346
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Valore strano (%ld) nella do_read\n"
-#: misc/badblocks.c:424
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "durante la ext2fs_sync_device"
-#: misc/badblocks.c:440 misc/badblocks.c:699
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "iniziando a scorrere la lista dei blocchi difettosi"
-#: misc/badblocks.c:454 misc/badblocks.c:551 misc/badblocks.c:709
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "allocando i buffer"
-#: misc/badblocks.c:458
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Controllo dei blocchi da %lu a %lu\n"
-#: misc/badblocks.c:463
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Ricerca dei blocchi non validi in modalità sola lettura\n"
-#: misc/badblocks.c:472
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Ricerca dei blocchi non validi (test a sola lettura): "
-#: misc/badblocks.c:480 misc/badblocks.c:583 misc/badblocks.c:628
-#: misc/badblocks.c:772
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr ""
-#: misc/badblocks.c:558
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Ricerca dei blocchi non validi in modalità lettura-scrittura\n"
-#: misc/badblocks.c:560 misc/badblocks.c:722
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Dal blocco %lu al blocco %lu\n"
-#: misc/badblocks.c:618
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Lettura e confronto: "
-#: misc/badblocks.c:721
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr ""
"Ricerca dei blocchi non validi in modalità lettura-scrittura non "
"distruttiva\n"
-#: misc/badblocks.c:727
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr ""
"Ricerca dei blocchi non validi (test in moalità lettura-scrittura non "
"distruttiva)\n"
-#: misc/badblocks.c:734
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3196,60 +3522,55 @@ msgstr ""
"\n"
"Rilevato interrupt, pulizia in corso\n"
-#: misc/badblocks.c:810
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "durante la scrittura dei dati del test, blocco %lu"
-#: misc/badblocks.c:921 misc/util.c:156
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s è montato: "
-#: misc/badblocks.c:923
+#: misc/badblocks.c:995
#, fuzzy
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "forzato comunque badblocks. Speriamo che /etc/mtab si errato.\n"
-#: misc/badblocks.c:928
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "non è sicuro eseguire badblocks!\n"
-#: misc/badblocks.c:933 misc/util.c:167
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr ""
-#: misc/badblocks.c:936
+#: misc/badblocks.c:1008
#, fuzzy
msgid "badblocks forced anyway.\n"
msgstr "forzato comunque badblocks. Speriamo che /etc/mtab si errato.\n"
-#: misc/badblocks.c:956
+#: misc/badblocks.c:1028
#, fuzzy, c-format
msgid "invalid %s - %s"
msgstr "dimensione del blocco difettoso - %s"
-#: misc/badblocks.c:1015
-#, c-format
-msgid "bad block size - %s"
-msgstr "dimensione del blocco difettoso - %s"
-
-#: misc/badblocks.c:1070
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "impossibile allocare memoria per il modello di prova - %s"
-#: misc/badblocks.c:1097
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr ""
"E' possibile specificare un solo modello di prova in modalità sola lettura"
-#: misc/badblocks.c:1103
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "Modello di prova casuale non consentito in modalità sola lettura"
-#: misc/badblocks.c:1117
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
@@ -3257,148 +3578,174 @@ msgstr ""
"Impossibile determinare la dimensione del device:\n"
"specificarla manualmente\n"
-#: misc/badblocks.c:1123
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "tentando di determinare la dimensione del device"
-#: misc/badblocks.c:1128
+#: misc/badblocks.c:1200
#, fuzzy
msgid "last block"
msgstr "Rilocazione dei blocchi"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1206
#, fuzzy
msgid "first block"
msgstr "Primo blocco dati=%u\n"
# fuzzy
-#: misc/badblocks.c:1137
+#: misc/badblocks.c:1209
#, fuzzy, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+msgid "invalid starting block (%llu): must be less than %llu"
msgstr "blocco iniziale non valido - %s"
-#: misc/badblocks.c:1193
+# fuzzy
+#: misc/badblocks.c:1216
+#, fuzzy, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "blocco iniziale non valido - %s"
+
+#: misc/badblocks.c:1272
#, fuzzy
msgid "while creating in-memory bad blocks list"
msgstr "creando la lista dei blocchi non validi in memoria"
-#: misc/badblocks.c:1208
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr ""
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
#, fuzzy
msgid "while adding to in-memory bad block list"
msgstr "aggiungendo un elemento alla lista dei blocchi difettosi in memoria"
-#: misc/badblocks.c:1232
-#, c-format
-msgid "Pass completed, %u bad blocks found.\n"
+#: misc/badblocks.c:1323
+#, fuzzy, c-format
+msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Passo completato. %u blocchi non validi trovati.\n"
-#: misc/chattr.c:85
+#: misc/chattr.c:86
#, fuzzy, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdijsSu] [-v version] files...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
msgstr "uso: %s [-RV] [-+=AacDdijsSu] [-v versione] file...\n"
-#: misc/chattr.c:152
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "versione non valida - %s\n"
-#: misc/chattr.c:198 misc/lsattr.c:113
+#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "tentando di fare lo stat di %s"
-#: misc/chattr.c:204 misc/chattr.c:222
-#, c-format
-msgid "Flags of %s set as "
-msgstr "flag di %s impostati come"
-
-#: misc/chattr.c:214
+#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr "leggendo i flag di %s"
-#: misc/chattr.c:231
+#: misc/chattr.c:213 misc/chattr.c:225
+#, c-format
+msgid "Flags of %s set as "
+msgstr "flag di %s impostati come"
+
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "impostando i flag di %s"
-#: misc/chattr.c:239
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Versione di %s impostata a %lu\n"
-#: misc/chattr.c:243
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "impostando la versione a %s"
-#: misc/chattr.c:263
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Impossibile allocare la variabile di percorso nella chattr_dir_proc"
-#: misc/chattr.c:302
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= è incompatibile con + e -\n"
-#: misc/chattr.c:310
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Si deve usare '-v', =, - o +\n"
-#: misc/dumpe2fs.c:53
-#, c-format
-msgid "Usage: %s [-bfhixV] [-ob superblock] [-oB blocksize] device\n"
+#: misc/dumpe2fs.c:55
+#, fuzzy, c-format
+msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr "Uso: %s [-bfhixV] [-ob superblocco] [-oB dim_blocco] device\n"
-#: misc/dumpe2fs.c:168
+#: misc/dumpe2fs.c:159
+#, fuzzy
+msgid "blocks"
+msgstr "bblocco"
+
+#: misc/dumpe2fs.c:169
+msgid "clusters"
+msgstr ""
+
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Gruppo %lu: (Blocchi "
-#: misc/dumpe2fs.c:173
+#: misc/dumpe2fs.c:205
+#, c-format
+msgid " Checksum 0x%04x"
+msgstr ""
+
+#: misc/dumpe2fs.c:207
#, c-format
-msgid " Checksum 0x%04x, unused inodes %d\n"
+msgid " (EXPECTED 0x%04x)"
msgstr ""
-#: misc/dumpe2fs.c:178
+#: misc/dumpe2fs.c:208
+#, fuzzy, c-format
+msgid ", unused inodes %u\n"
+msgstr "dimensione inode non valida - %s"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " superblocco %s a "
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Primario"
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Backup"
-#: misc/dumpe2fs.c:183
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Descrittori di gruppo a "
-#: misc/dumpe2fs.c:187
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:222
+#, fuzzy
msgid ""
"\n"
" Reserved GDT blocks at "
msgstr "blocchi riservati"
-#: misc/dumpe2fs.c:194
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Descrittori di gruppo a"
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Mappa dei bit di blocco a "
-#: misc/dumpe2fs.c:205
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", mappa dei bit inode a "
-#: misc/dumpe2fs.c:210
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3406,54 +3753,93 @@ msgstr ""
"\n"
" Tavola degli inode a "
-#: misc/dumpe2fs.c:217
+#: misc/dumpe2fs.c:249
#, fuzzy, c-format
msgid ""
"\n"
-" %u free blocks, %u free inodes, %u directories%s"
+" %u free %s, %u free inodes, %u directories%s"
msgstr ""
"\n"
" %d blocchi liberi, %d inode liberi, %d directory\n"
-#: misc/dumpe2fs.c:224
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ""
-#: misc/dumpe2fs.c:227
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Blocchi liberi: "
-#: misc/dumpe2fs.c:237
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Inode liberi: "
-#: misc/dumpe2fs.c:264
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "stampando la lista dei blocchi difettosi"
-#: misc/dumpe2fs.c:270
+#: misc/dumpe2fs.c:316
#, fuzzy, c-format
msgid "Bad blocks: %u"
msgstr "Blocchi non validi: %d"
-#: misc/dumpe2fs.c:292 misc/tune2fs.c:279
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "leggendo l'inode del journal"
-#: misc/dumpe2fs.c:295
+#: misc/dumpe2fs.c:351
+#, fuzzy
+msgid "while opening journal inode"
+msgstr "leggendo l'inode del journal"
+
+#: misc/dumpe2fs.c:357
+#, fuzzy
+msgid "while reading journal super block"
+msgstr "leggendo il superblocco del journal"
+
+#: misc/dumpe2fs.c:364
+#, fuzzy
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Superblocco del journal non trovato!\n"
+
+#: misc/dumpe2fs.c:367
+msgid "Journal features: "
+msgstr ""
+
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr ""
-#: misc/dumpe2fs.c:319 misc/tune2fs.c:200
+#: misc/dumpe2fs.c:391
+#, fuzzy, c-format
+msgid ""
+"Journal length: %u\n"
+"Journal sequence: 0x%08x\n"
+"Journal start: %u\n"
+msgstr ""
+"\n"
+"Dimensione dei blocchi del journal: %d\n"
+"Dimensione del journal: %d\n"
+"Primo blocco del journal: %d\n"
+"Sequenza del journal: ox%08x\n"
+"Inizio del journal: %d\n"
+"Numero di utenti del journal: %d\n"
+
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr ""
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "leggendo il superblocco del journal"
-#: misc/dumpe2fs.c:327
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Impossibile trovare i magic numbers del superblocco del journal"
-#: misc/dumpe2fs.c:331
+#: misc/dumpe2fs.c:427
#, fuzzy, c-format
msgid ""
"\n"
@@ -3472,27 +3858,27 @@ msgstr ""
"Inizio del journal: %d\n"
"Numero di utenti del journal: %d\n"
-#: misc/dumpe2fs.c:344
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr ""
-#: misc/dumpe2fs.c:360 misc/mke2fs.c:693 misc/tune2fs.c:868
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
+#, fuzzy
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Impossibile allocare memoria per fare il parsing delle opzioni raid!\n"
-#: misc/dumpe2fs.c:386
+#: misc/dumpe2fs.c:482
#, fuzzy, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Parametro di stride non valido.\n"
-#: misc/dumpe2fs.c:401
+#: misc/dumpe2fs.c:497
#, fuzzy, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Parametro di stride non valido.\n"
-#: misc/dumpe2fs.c:412
+#: misc/dumpe2fs.c:508
#, fuzzy, c-format
msgid ""
"\n"
@@ -3515,18 +3901,17 @@ msgstr ""
"\tstride=lunghezza stride in blocchi>\n"
"\n"
-#: misc/dumpe2fs.c:471 misc/mke2fs.c:1355
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tUsando %s\n"
-#: misc/dumpe2fs.c:507 misc/e2image.c:674 misc/tune2fs.c:1518
-#: resize/main.c:311
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Impossibile trovare un valido superblocco per il filesystem.\n"
-#: misc/dumpe2fs.c:532
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3535,77 +3920,303 @@ msgstr ""
"\n"
"%s: %s: errore leggendo le mappe di bit: %s\n"
-#: misc/e2image.c:52
+#: misc/e2image.c:101
#, fuzzy, c-format
-msgid "Usage: %s [-rsI] device image_file\n"
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
msgstr "Uso: %s [-r] dispositivo file_immagine\n"
-#: misc/e2image.c:64
-msgid "Couldn't allocate header buffer\n"
-msgstr "Impossibile allocare il buffer d'intestazione\n"
+#: misc/e2image.c:103
+#, fuzzy, c-format
+msgid " %s -I device image-file\n"
+msgstr "Uso: %s [-r] dispositivo file_immagine\n"
-#: misc/e2image.c:83
+#: misc/e2image.c:104
#, c-format
-msgid "short write (only %d bytes) for writing image header"
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
msgstr ""
-#: misc/e2image.c:102
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+#, fuzzy
+msgid "while allocating buffer"
+msgstr "allocando i buffer"
+
+#: misc/e2image.c:174
+#, fuzzy, c-format
+msgid "Writing block %llu\n"
+msgstr "Controllo dei blocchi da %lu a %lu\n"
+
+#: misc/e2image.c:188
+#, fuzzy, c-format
+msgid "error writing block %llu"
+msgstr "Errore durante la scrittura del blocco %lu (%s). "
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
+
+#: misc/e2image.c:208
+msgid "Error: header size is bigger than wrt_size\n"
+msgstr ""
+
+#: misc/e2image.c:213
+msgid "Couldn't allocate header buffer\n"
+msgstr "Impossibile allocare il buffer d'intestazione\n"
+
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "scrivendo il superblocco"
-#: misc/e2image.c:110
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "scrivendo la tavola degli inode"
-#: misc/e2image.c:117
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "scrivendo la mappa dei bit del blocco"
-#: misc/e2image.c:124
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "scrivendo la mappa dei bit dell'inode"
-#: misc/e2label.c:57
+#: misc/e2image.c:502
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Blocco directory %d (#%d) vuoto nell'inode %d\n"
+
+#: misc/e2image.c:514
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Blocco directory %d (#%d) vuoto nell'inode %d\n"
+
+#: misc/e2image.c:555
+#, fuzzy, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%u inode, %u blocchi\n"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, fuzzy, c-format
+msgid "error reading block %llu"
+msgstr "Errore durante la lettura del blocco %lu (%s). "
+
+#: misc/e2image.c:715
+#, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr ""
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+#, fuzzy
+msgid "while allocating l1 table"
+msgstr "allocando i buffer"
+
+#: misc/e2image.c:800
+#, fuzzy
+msgid "while allocating l2 cache"
+msgstr "allocando i buffer"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+#, fuzzy
+msgid "while allocating ext2_qcow2_image"
+msgstr "chiamando ext2fs_block_iterate"
+
+#: misc/e2image.c:1152
+#, fuzzy
+msgid "while initializing ext2_qcow2_image"
+msgstr "chiamando ext2fs_block_iterate"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+#, fuzzy
+msgid "while allocating block bitmap"
+msgstr "scrivendo la mappa dei bit del blocco"
+
+#: misc/e2image.c:1278
+#, fuzzy
+msgid "while allocating scramble block bitmap"
+msgstr "scrivendo la mappa dei bit del blocco"
+
+#: misc/e2image.c:1285
+#, fuzzy
+msgid "Scanning inodes...\n"
+msgstr "Scansione della tavola degli inode"
+
+#: misc/e2image.c:1297
+#, fuzzy
+msgid "Can't allocate block buffer"
+msgstr "Impossibile allocare il buffer blocco (dimensione=%d)\n"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, fuzzy, c-format
+msgid "while iterating over inode %u"
+msgstr "leggendo l'inode successivo"
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+#, fuzzy
+msgid "error reading bitmaps"
+msgstr "leggendo le mappe dei bit"
+
+#: misc/e2image.c:1415
+#, fuzzy
+msgid "while opening device file"
+msgstr "avviando la scansione degli inode"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "scrivendo la tavola degli inode"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+#, fuzzy
+msgid "checking if mounted"
+msgstr " (controllo tra %ld mount)"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
+#, c-format
+msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
+msgstr ""
+
+#: misc/e2image.c:1639
+#, fuzzy
+msgid "The -c option only supported in raw mode\n"
+msgstr "L'opzione -t non è supportata da questa versione di e2fsck.\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "L'opzione -t non è supportata da questa versione di e2fsck.\n"
+
+#: misc/e2image.c:1651
+#, fuzzy
+msgid "while allocating check_buf"
+msgstr "allocando i buffer"
+
+#: misc/e2image.c:1657
+#, fuzzy
+msgid "The -p option only supported in raw mode\n"
+msgstr "L'opzione -t non è supportata da questa versione di e2fsck.\n"
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
+
+#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
msgstr "e2label: impossibile aprire %s\n"
-#: misc/e2label.c:62
+#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
msgstr "e2label: impossibile raggiungere il superblocco\n"
-#: misc/e2label.c:67
+#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
msgstr "e2label: errore durante la lettura del superblocco\n"
-#: misc/e2label.c:71
+#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: non è un filesystem ext2\n"
-#: misc/e2label.c:96 misc/tune2fs.c:1653
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Attenzione: troncamento dell'etichetta, troppo lunga.\n"
-#: misc/e2label.c:99
+#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
msgstr "e2label: impossibile spostarsi nuovamente sul superblocco\n"
-#: misc/e2label.c:104
+#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2label: errore durante la scrittura del superblocco\n"
-#: misc/e2label.c:116 misc/tune2fs.c:541
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Uso: e2label device [nuova_etichetta]\n"
-#: misc/e2undo.c:35
+#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
msgstr ""
@@ -3615,7 +4226,7 @@ msgstr ""
msgid "Failed to read the file system data \n"
msgstr "Impossibile creare un iteratore dirs_to_hash: %m"
-#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:204
+#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
msgid "Failed tdb_fetch %s\n"
msgstr ""
@@ -3629,48 +4240,49 @@ msgstr ""
msgid "The file system UUID didn't match \n"
msgstr ""
-#: misc/e2undo.c:161
+#: misc/e2undo.c:163
#, fuzzy, c-format
msgid "Failed tdb_open %s\n"
msgstr "avviando la scansione degli inode"
-#: misc/e2undo.c:167
+#: misc/e2undo.c:169
#, fuzzy, c-format
msgid "Error while determining whether %s is mounted.\n"
msgstr "determinando se %s è montato."
-#: misc/e2undo.c:173
+#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
msgstr ""
-#: misc/e2undo.c:182
+#: misc/e2undo.c:184
#, fuzzy, c-format
msgid "Failed to open %s\n"
msgstr "durante l'apertura di %s"
-#: misc/e2undo.c:208
+#: misc/e2undo.c:210
#, c-format
-msgid "Replayed transaction of size %zd at location %ld\n"
+msgid "Replayed transaction of size %zd at location %llu\n"
msgstr ""
-#: misc/e2undo.c:214
+#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
msgstr ""
-#: misc/fsck.c:347
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "ATTENZIONE: impossibile aprire %s: %s\n"
-#: misc/fsck.c:357
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "ATTENZIONE: formato non valido alla linea %d di %s\n"
-#: misc/fsck.c:372
+#: misc/fsck.c:370
+#, fuzzy
msgid ""
-"\a\a\aWARNING: Your /etc/fstab does not contain the fsck passno\n"
+"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"
@@ -3680,37 +4292,37 @@ msgstr ""
"\tessere sistemato al più presto.\n"
"\n"
-#: misc/fsck.c:481
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: non trovato\n"
-#: misc/fsck.c:597
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: aspetta: Non ci sono processi figli?!?\n"
-#: misc/fsck.c:619
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Attenzione... %s per il device %s è uscito con il segnale %d.\n"
-#: misc/fsck.c:625
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: lo stato è %x, non dovrebbe avvenire mai.\n"
-#: misc/fsck.c:664
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "Terminato con %s (stato di uscita %d)\n"
-#: misc/fsck.c:724
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: Errore %d eseguendo fsck. %s per %s\n"
-#: misc/fsck.c:745
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3719,72 +4331,73 @@ msgstr ""
"preceduti\n"
"da 'no' o '!'.\n"
-#: misc/fsck.c:764
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "Impossibile allocare memoria per i tipi di filesystem\n"
-#: misc/fsck.c:887
+#: misc/fsck.c:884
#, c-format
msgid ""
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
"number\n"
msgstr ""
-#: misc/fsck.c:914
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: impossibile controllare %s: fsck.%s non trovato\n"
-#: misc/fsck.c:970
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Controllo di tutti i filesystem.\n"
-#: misc/fsck.c:1061
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--attesa-- (passo %d)\n"
-#: misc/fsck.c:1081
+#: misc/fsck.c:1078
#, fuzzy
msgid ""
"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr "Uso: fsck [-ACNPRTV] [-t tipofs] [opzioni-fs] [filesys ...]\n"
-#: misc/fsck.c:1123
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: troppi device\n"
-#: misc/fsck.c:1156 misc/fsck.c:1242
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: troppi parametri\n"
-#: misc/lsattr.c:73
+#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
msgstr "Uso: %s [RVadlv] [file ...]\n"
-#: misc/lsattr.c:83
+#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
msgstr "Durante la lettura dei flag di %s"
-#: misc/lsattr.c:90
+#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
msgstr "Durante la lettura della versione di %s"
-#: misc/mke2fs.c:104
+#: misc/mke2fs.c:123
#, fuzzy, c-format
msgid ""
-"Usage: %s [-c|-l filename] [-b block-size] [-f fragment-size]\n"
+"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
"Uso: %s [-c|-t|-l nomefile] [-b dim_blocchi] [-f dim_frammento]\n"
"\t[-i byte-per-inode] [-j] [-J opzioni-journal] [-N numero-di-inode]\n"
@@ -3793,38 +4406,38 @@ msgstr ""
"\t[-L etichetta-volume] [-M ultima-dir-montata] [-O caratteristica[,...]]\n"
"\t[-r revisione-fs] [-R opz_raid] [-qvSV] device [numero-blocchi]\n"
-#: misc/mke2fs.c:206
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Esecuzione del comando: %s\n"
-#: misc/mke2fs.c:210
+#: misc/mke2fs.c:254
#, fuzzy, c-format
msgid "while trying to run '%s'"
msgstr "provando a caricare '%s'"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "analizzando una lista di blocchi non validi dal programma"
-#: misc/mke2fs.c:244
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr ""
"Blocco %d non valido nel superblocco primario/area del descrittore di "
"gruppo.\n"
-#: misc/mke2fs.c:246
+#: misc/mke2fs.c:290
#, fuzzy, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"I blocchi da %d a %d devono essere validi per costruire un filesystem.\n"
-#: misc/mke2fs.c:249
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Annullamento....\n"
-#: misc/mke2fs.c:269
+#: misc/mke2fs.c:313
#, fuzzy, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -3835,187 +4448,257 @@ msgstr ""
"\tcontengono blocchi non validi.\n"
"\n"
-#: misc/mke2fs.c:288
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "contrassegnando i blocchi non validi come utilizzati"
-#: misc/mke2fs.c:346
-msgid "done \n"
-msgstr "fatto \n"
-
-#: misc/mke2fs.c:360
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Scrittura delle tavole degli inode: "
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:405
#, fuzzy, c-format
msgid ""
"\n"
-"Could not write %d blocks in inode table starting at %u: %s\n"
+"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
-"Impossibile scrivere %d blocchi nella tavola degli inode iniziando da %d: %"
-"s\n"
+"Impossibile scrivere %d blocchi nella tavola degli inode iniziando da %d: "
+"%s\n"
+
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
+msgid "done \n"
+msgstr "fatto \n"
-#: misc/mke2fs.c:407
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "creando la directory root"
-#: misc/mke2fs.c:414
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "creando l'inode root"
-#: misc/mke2fs.c:428
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "impostando i permessi dell'inode root"
-#: misc/mke2fs.c:446
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "creando /lost+found"
-#: misc/mke2fs.c:453
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "cercando /lost+found"
-#: misc/mke2fs.c:466
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "espandendo /lost+found"
-#: misc/mke2fs.c:481
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "impostando l'inode del blocco difettoso"
-#: misc/mke2fs.c:508
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Fine memoria cancellando i settori %d-%d\n"
-#: misc/mke2fs.c:518
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Attenzione: impossibile leggere il blocco 0: %s\n"
-#: misc/mke2fs.c:534
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Attenzione: impossibile cancellare il settore %d: %s\n"
-#: misc/mke2fs.c:550
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "inizializzando il superblocco del journal"
-#: misc/mke2fs.c:556
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Azzeramento del device di journaling: "
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:591
#, fuzzy, c-format
-msgid "while zeroing journal device (block %u, count %d)"
+msgid "while zeroing journal device (block %llu, count %d)"
msgstr "azzerando il device di journaling (blocco %u, numero %d)"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "scrivendo il superblocco del journal"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"Il filesystem su %s è ora lungo %d blocchi.\n"
+"\n"
+
+#: misc/mke2fs.c:632
#, fuzzy, c-format
msgid ""
-"warning: %u blocks unused.\n"
+"warning: %llu blocks unused.\n"
"\n"
msgstr ""
"attenzione: %d blocchi inutilizzati.\n"
"\n"
-#: misc/mke2fs.c:606
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Etichetta del filesystem=%s\n"
-#: misc/mke2fs.c:607
-msgid "OS type: "
+#: misc/mke2fs.c:640
+#, fuzzy, c-format
+msgid "OS type: %s\n"
msgstr "Tipo SO: "
-#: misc/mke2fs.c:612
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Dimensione blocco=%u (log=%u)\n"
-#: misc/mke2fs.c:614
+#: misc/mke2fs.c:646
+#, fuzzy, c-format
+msgid "Cluster size=%u (log=%u)\n"
+msgstr "Dimensione blocco=%u (log=%u)\n"
+
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Dimensione frammento=%u (log=%u)\n"
-#: misc/mke2fs.c:616
+#: misc/mke2fs.c:652
#, c-format
-msgid "%u inodes, %u blocks\n"
+msgid "Stride=%u blocks, Stripe width=%u blocks\n"
+msgstr ""
+
+#: misc/mke2fs.c:654
+#, fuzzy, c-format
+msgid "%u inodes, %llu blocks\n"
msgstr "%u inode, %u blocchi\n"
-#: misc/mke2fs.c:618
-#, c-format
-msgid "%u blocks (%2.2f%%) reserved for the super user\n"
+#: misc/mke2fs.c:656
+#, fuzzy, c-format
+msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%u blocchi (%2.2f%%) riservati per l'utente root\n"
-#: misc/mke2fs.c:621
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Primo blocco dati=%u\n"
-#: misc/mke2fs.c:623
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, fuzzy, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Etichetta del filesystem=%s\n"
-#: misc/mke2fs.c:627
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u gruppi di blocchi\n"
-#: misc/mke2fs.c:629
+#: misc/mke2fs.c:669
#, fuzzy, c-format
msgid "%u block group\n"
msgstr "%u gruppo di blocchi\n"
-#: misc/mke2fs.c:630
+#: misc/mke2fs.c:672
+#, fuzzy, c-format
+msgid "%u blocks per group, %u clusters per group\n"
+msgstr "%u blocchi per gruppo, %u frammenti per gruppo\n"
+
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u blocchi per gruppo, %u frammenti per gruppo\n"
-#: misc/mke2fs.c:632
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u inode per gruppo\n"
-#: misc/mke2fs.c:639
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Etichetta del filesystem=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Backup del superblocco salvati nei blocchi: "
-#: misc/mke2fs.c:718
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, fuzzy, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "dimensione inode non valida - %s"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "dimensione inode non valida - %s"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
+#, fuzzy, c-format
+msgid "Invalid mmp_update_interval: %s\n"
+msgstr "modello di prova non valido: %s\n"
+
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Parametro di stride non valido.\n"
+
+#: misc/mke2fs.c:846
#, fuzzy, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Parametro di stride non valido.\n"
-#: misc/mke2fs.c:733
+#: misc/mke2fs.c:861
#, fuzzy, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Parametro di stride non valido.\n"
-#: misc/mke2fs.c:755
+#: misc/mke2fs.c:884
#, fuzzy, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Parametro di stride non valido.\n"
-#: misc/mke2fs.c:762
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
-#: misc/mke2fs.c:786
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, fuzzy, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Insieme di opzioni di mount non valido: %s\n"
+
+#: misc/mke2fs.c:976
+#, fuzzy, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "Parametro di stride non valido.\n"
+
+#: misc/mke2fs.c:987
#, fuzzy, c-format
msgid ""
"\n"
@@ -4025,11 +4708,21 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
+"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
+"\tdiscard\n"
+"\tnodiscard\n"
+"\tquotatype=<usr OR grp>\n"
"\n"
msgstr ""
"\n"
@@ -4042,7 +4735,7 @@ msgstr ""
"\tstride=lunghezza stride in blocchi>\n"
"\n"
-#: misc/mke2fs.c:824
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4050,150 +4743,172 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:856
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-#: misc/mke2fs.c:869 misc/tune2fs.c:353
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Set di opzioni del filesystem non valido: %s\n"
-#: misc/mke2fs.c:979
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
+#, c-format
+msgid "Invalid mount option set: %s\n"
+msgstr "Insieme di opzioni di mount non valido: %s\n"
+
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
-"Warning! Your mke2fs.conf file does not define the %s filesystem type.\n"
+"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
-#: misc/mke2fs.c:982
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:1177
+#: misc/mke2fs.c:1226
+#, fuzzy
+msgid "Aborting...\n"
+msgstr "Annullamento....\n"
+
+#: misc/mke2fs.c:1267
+#, c-format
+msgid ""
+"\n"
+"Warning: the fs_type %s is not defined in mke2fs.conf\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:1435
+#, fuzzy
+msgid "Couldn't allocate memory for new PATH.\n"
+msgstr "Impossibile allocare memoria per i tipi di filesystem\n"
+
+#: misc/mke2fs.c:1476
+#, c-format
+msgid "Couldn't init profile successfully (error: %ld).\n"
+msgstr ""
+
+#: misc/mke2fs.c:1509
#, fuzzy, c-format
msgid "invalid block size - %s"
msgstr "dimensione del blocco difettoso - %s"
-#: misc/mke2fs.c:1181
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
"Attenzione: la dimensione di blocco %d non è utilizzabile su molti sistemi.\n"
-#: misc/mke2fs.c:1197
+#: misc/mke2fs.c:1529
#, fuzzy, c-format
-msgid "invalid fragment size - %s"
-msgstr "dimensione del frammento non valida - %s"
+msgid "invalid cluster size - %s"
+msgstr "dimensione del blocco difettoso - %s"
-#: misc/mke2fs.c:1203
-#, c-format
-msgid "Warning: fragments not supported. Ignoring -f option\n"
-msgstr "Attenzione: frammenti non supportati. Opzione -f ignorata\n"
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr ""
-#: misc/mke2fs.c:1210
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Numero di blocchi per gruppo non valido"
-#: misc/mke2fs.c:1215
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "i blocchi per gruppo devono essere multipli di 8"
-#: misc/mke2fs.c:1223
+#: misc/mke2fs.c:1564
#, fuzzy
msgid "Illegal number for flex_bg size"
msgstr "Numero di blocchi non valido!\n"
-#: misc/mke2fs.c:1229
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr ""
-#: misc/mke2fs.c:1239
+#: misc/mke2fs.c:1580
#, fuzzy, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "tasso di inode non valido %s (min %d/max %d)"
-#: misc/mke2fs.c:1256
+#: misc/mke2fs.c:1590
+#, fuzzy, c-format
+msgid "invalid inode size - %s"
+msgstr "dimensione inode non valida - %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "nella malloc per bad_blocks_filename"
-#: misc/mke2fs.c:1265
+#: misc/mke2fs.c:1627
#, fuzzy, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "percentuale di blocchi riservati non valida - %s"
-#: misc/mke2fs.c:1283
+#: misc/mke2fs.c:1642
+#, fuzzy, c-format
+msgid "bad num inodes - %s"
+msgstr "dimensione inode non valida - %s"
+
+#: misc/mke2fs.c:1659
#, fuzzy, c-format
msgid "bad revision level - %s"
msgstr "versione non valida - %s\n"
-#: misc/mke2fs.c:1295
-#, fuzzy, c-format
-msgid "invalid inode size - %s"
-msgstr "dimensione inode non valida - %s"
+#: misc/mke2fs.c:1673
+#, fuzzy
+msgid "The -t option may only be used once"
+msgstr "-o può essere specificata solo una volta"
-#: misc/mke2fs.c:1315
-#, fuzzy, c-format
-msgid "bad num inodes - %s"
-msgstr "dimensione inode non valida - %s"
+#: misc/mke2fs.c:1681
+#, fuzzy
+msgid "The -T option may only be used once"
+msgstr "-o può essere specificata solo una volta"
-#: misc/mke2fs.c:1380 misc/mke2fs.c:2052
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "durante l'apertura del dispositivo di journaling %s\n"
-#: misc/mke2fs.c:1386
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
"Dimensione dei blocchi del device di journaling (%d) minore della dim minima "
"dei blocchi %d\n"
-#: misc/mke2fs.c:1392
+#: misc/mke2fs.c:1746
#, fuzzy, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Aggiunta del journal al device %s: "
-#: misc/mke2fs.c:1401
-#, c-format
-msgid "%d-byte blocks too big for system (max %d)"
-msgstr "blocchi di %d byte troppo grandi per il sistema (max %d)"
-
-#: misc/mke2fs.c:1405
-#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Attenzione: blocchi di %d bytes troppo grandi per il sistema (max %d), "
-"continuo comunque\n"
-
-#: misc/mke2fs.c:1413
+#: misc/mke2fs.c:1757
#, fuzzy, c-format
-msgid "invalid blocks count - %s"
+msgid "invalid blocks '%s' on device '%s'"
msgstr "numero dei blocchi non validi - %s"
-#: misc/mke2fs.c:1423
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "filesystem"
-#: misc/mke2fs.c:1459
-#, c-format
-msgid ""
-"%s: Size of device %s too big to be expressed in 32 bits\n"
-"\tusing a blocksize of %d.\n"
-msgstr ""
-
-#: misc/mke2fs.c:1468 resize/main.c:371
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "tentando di determinare la dimensione del filesystem"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4201,7 +4916,7 @@ msgstr ""
"Impossibile determinare la dimensione del device: bisogna\n"
"specificare la dimensione del filesystem\n"
-#: misc/mke2fs.c:1482
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4214,88 +4929,162 @@ msgstr ""
"\tdi fdisk, poiché una partizione modificata era occupata. Potrebbe essere\n"
"\tnecessario riavviare per rileggere la tabella delle partizioni.\n"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr "Il filesystem è più grande della dimensione apparente del device."
-#: misc/mke2fs.c:1506
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr ""
-#: misc/mke2fs.c:1542
-msgid "fs_types for mke2fs.conf resolution: "
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "provando a determinare la dimensione del settore hardware"
+
+#: misc/mke2fs.c:1887
+#, fuzzy
+msgid "while trying to determine physical sector size"
+msgstr "provando a determinare la dimensione del settore hardware"
+
+#: misc/mke2fs.c:1919
+#, fuzzy
+msgid "while setting blocksize; too small for device\n"
+msgstr "impostando l'inode del blocco difettoso"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
msgstr ""
-#: misc/mke2fs.c:1549
+#: misc/mke2fs.c:1948
#, c-format
+msgid ""
+"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
+"\tin 32 bits using a blocksize of %d.\n"
+msgstr ""
+
+#: misc/mke2fs.c:1964
+msgid "fs_types for mke2fs.conf resolution: "
+msgstr ""
+
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1556
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1568
-#, fuzzy, c-format
+#: misc/mke2fs.c:1991
+#, fuzzy
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
"\n"
"Dimensione del journal troppo grande per il filesystem.\n"
-#: misc/mke2fs.c:1586
+#: misc/mke2fs.c:2005
+#, fuzzy, c-format
+msgid "invalid reserved blocks percent - %lf"
+msgstr "percentuale di blocchi riservati non valida - %s"
+
+#: misc/mke2fs.c:2022
+msgid ""
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
+
+#: misc/mke2fs.c:2067
+#, c-format
+msgid "warning: Unable to get device geometry for %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:2070
+#, c-format
+msgid "%s alignment is offset by %lu bytes.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2072
+#, c-format
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2093
+#, c-format
+msgid "%d-byte blocks too big for system (max %d)"
+msgstr "blocchi di %d byte troppo grandi per il sistema (max %d)"
+
+#: misc/mke2fs.c:2097
#, c-format
msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Attenzione: blocchi di %d bytes troppo grandi per il sistema (max %d), "
+"continuo comunque\n"
+
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"They can not be both enabled simultaneously.\n"
msgstr ""
-#: misc/mke2fs.c:1603
-msgid "while trying to determine hardware sector size"
-msgstr "provando a determinare la dimensione del settore hardware"
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
-#: misc/mke2fs.c:1661
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
-#: misc/mke2fs.c:1670
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "conteggio dei blocchi per gruppo fuori dall'intervallo"
-#: misc/mke2fs.c:1685
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
-#: misc/mke2fs.c:1697
+#: misc/mke2fs.c:2217
#, fuzzy, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "dimensione dell'inode non valida: %d (min %d/max %d)"
-#: misc/mke2fs.c:1711
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr ""
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr ""
-#: misc/mke2fs.c:1731
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
-"\tfilesystem with %lu blocks, specify higher inode_ratio (-i)\n"
+"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
-#: misc/mke2fs.c:1828 misc/tune2fs.c:1462
-#, fuzzy, c-format
-msgid "while trying to delete %s"
-msgstr "provando a ridimensionare %s"
-
-#: misc/mke2fs.c:1837
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4303,40 +5092,72 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:1885
+#: misc/mke2fs.c:2397
+#, fuzzy
+msgid "while trying to setup undo file\n"
+msgstr ""
+"\n"
+"\tcercando di creare il file di journal"
+
+#: misc/mke2fs.c:2423
+#, fuzzy
+msgid "Discarding device blocks: "
+msgstr "Aggiunta del journal al device %s: "
+
+#: misc/mke2fs.c:2439
+msgid "failed - "
+msgstr ""
+
+#: misc/mke2fs.c:2561
#, fuzzy
msgid "while setting up superblock"
msgstr "impostando il superblocco"
-#: misc/mke2fs.c:1936
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "so sconosciuto - %s"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2717
+#, fuzzy
+msgid "Allocating group tables: "
+msgstr "Scrittura delle tavole degli inode: "
+
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "tentando di allocare le tabelle del filesystem"
-#: misc/mke2fs.c:2021
-#, c-format
-msgid "while zeroing block %u at end of filesystem"
+#: misc/mke2fs.c:2734
+#, fuzzy
+msgid ""
+"\n"
+"\twhile converting subcluster bitmap"
+msgstr "scrivendo la mappa dei bit del blocco"
+
+#: misc/mke2fs.c:2777
+#, fuzzy, c-format
+msgid "while zeroing block %llu at end of filesystem"
msgstr "azzerando il blocco %u alla fine del filesystem"
-#: misc/mke2fs.c:2034
+#: misc/mke2fs.c:2791
#, fuzzy
msgid "while reserving blocks for online resize"
msgstr "leggendo l'inode dei blocchi non validi"
-#: misc/mke2fs.c:2045 misc/tune2fs.c:477
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "journal"
-#: misc/mke2fs.c:2057
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Aggiunta del journal al device %s: "
-#: misc/mke2fs.c:2064
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4345,25 +5166,45 @@ msgstr ""
"\n"
"\tcercando di agigungere il journal al device %s"
-#: misc/mke2fs.c:2069 misc/mke2fs.c:2095 misc/tune2fs.c:506 misc/tune2fs.c:520
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "fatto\n"
-#: misc/mke2fs.c:2083
+#: misc/mke2fs.c:2834
+msgid "Skipping journal creation in super-only mode\n"
+msgstr ""
+
+#: misc/mke2fs.c:2845
#, fuzzy, c-format
msgid "Creating journal (%u blocks): "
msgstr "Creazione del journal (%d blocchi): "
-#: misc/mke2fs.c:2100
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tcercando di creare il journal"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
+msgid ""
+"\n"
+"Error while enabling multiple mount protection feature."
+msgstr ""
+
+#: misc/mke2fs.c:2871
#, c-format
+msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
"Scrittura delle informazioni dei superblocchi e dell'accounting del "
"filesystem: "
-#: misc/mke2fs.c:2105
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4371,8 +5212,7 @@ msgstr ""
"\n"
"Attenzione, problemi durante la scrittura dei superblocchi."
-#: misc/mke2fs.c:2108
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4380,12 +5220,11 @@ msgstr ""
"fatto\n"
"\n"
-#: misc/mklost+found.c:49
-#, c-format
+#: misc/mklost+found.c:50
msgid "Usage: mklost+found\n"
msgstr "Uso: mklost+found\n"
-#: misc/partinfo.c:39
+#: misc/partinfo.c:41
#, fuzzy, c-format
msgid ""
"Usage: %s device...\n"
@@ -4403,38 +5242,40 @@ msgstr ""
"\t%s /dev/hda?\n"
"\n"
-#: misc/partinfo.c:49
+#: misc/partinfo.c:51
#, fuzzy, c-format
msgid "Cannot open %s: %s"
msgstr "e2label: impossibile aprire %s\n"
-#: misc/partinfo.c:55
+#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
msgstr ""
-#: misc/partinfo.c:63
+#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
msgstr ""
-#: misc/partinfo.c:69
+#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr ""
-#: misc/tune2fs.c:96
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Eseguire e2fsck sul filesystem.\n"
-#: misc/tune2fs.c:103
+#: misc/tune2fs.c:121
#, fuzzy, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] \n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
@@ -4446,60 +5287,61 @@ msgstr ""
"montata]\n"
"\t[-O [^]caratteristica[,...]] [-T ultimo-controllo] [-U UUID] device\n"
-#: misc/tune2fs.c:188
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "cercando di aprire il journal esterno"
-#: misc/tune2fs.c:192
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s non è un dispositivo di journaling.\n"
-#: misc/tune2fs.c:207
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Superblocco del journal non trovato!\n"
-#: misc/tune2fs.c:219
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr "UUID del filesystem non trovato sul dispositivo di journaling.\n"
-#: misc/tune2fs.c:240
-msgid "Journal NOT removed\n"
-msgstr "Journal NON rimosso\n"
+#: misc/tune2fs.c:269
+msgid ""
+"Cannot locate journal device. It was NOT removed\n"
+"Use -f option to remove missing journal device.\n"
+msgstr ""
-#: misc/tune2fs.c:246
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Journal rimosso\n"
-#: misc/tune2fs.c:286
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "leggendo le mappe dei bit"
-#: misc/tune2fs.c:294
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "azzerando l'inode del journal"
-#: misc/tune2fs.c:305
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "scrivendo l'inode del journal"
-#: misc/tune2fs.c:320
-#, c-format
-msgid "Invalid mount option set: %s\n"
-msgstr "Insieme di opzioni di mount non valido: %s\n"
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
+msgid "(and reboot afterwards!)\n"
+msgstr ""
-#: misc/tune2fs.c:356
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr ""
-#: misc/tune2fs.c:362
+#: misc/tune2fs.c:425
#, fuzzy, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr ""
"Impostazione di data ed ora dell'ultimo controllo del filesystem a %s\n"
-#: misc/tune2fs.c:371
+#: misc/tune2fs.c:434
#, fuzzy
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
@@ -4508,7 +5350,7 @@ msgstr ""
"Il flag has_journal può essere azzerato quando il filesystem non\n"
"è montato o è montato solo in lettura.\n"
-#: misc/tune2fs.c:379
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4516,13 +5358,57 @@ msgstr ""
"Il flag needs_recovery è impostato. Eseguire e2fsck prima di azzerare\n"
"il flag has_journal.\n"
-#: misc/tune2fs.c:412
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Impostazione di data ed ora dell'ultimo controllo del filesystem a %s\n"
+
+#: misc/tune2fs.c:475
+#, fuzzy
+msgid ""
+"The multiple mount protection feature can't\n"
+"be set if the filesystem is mounted or\n"
+"read-only.\n"
+msgstr ""
+"Il flag has_journal può essere azzerato quando il filesystem non\n"
+"è montato o è montato solo in lettura.\n"
+
+#: misc/tune2fs.c:493
+#, c-format
+msgid "Multiple mount protection has been enabled with update interval %ds.\n"
+msgstr ""
+
+#: misc/tune2fs.c:502
+msgid ""
+"The multiple mount protection feature cannot\n"
+"be disabled if the filesystem is readonly.\n"
+msgstr ""
+
+#: misc/tune2fs.c:510
+#, fuzzy
+msgid "Error while reading bitmaps\n"
+msgstr "leggendo le mappe dei bit"
+
+#: misc/tune2fs.c:519
+#, c-format
+msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
+msgstr ""
+
+#: misc/tune2fs.c:524
+#, fuzzy
+msgid "while reading MMP block."
+msgstr "leggendo l'inode numero 1"
+
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-#: misc/tune2fs.c:423
+#: misc/tune2fs.c:567
#, fuzzy
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
@@ -4531,16 +5417,17 @@ msgstr ""
"Il flag has_journal può essere azzerato quando il filesystem non\n"
"è montato o è montato solo in lettura.\n"
-#: misc/tune2fs.c:451
-#, c-format
-msgid "(and reboot afterwards!)\n"
+#: misc/tune2fs.c:627
+msgid ""
+"\n"
+"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
-#: misc/tune2fs.c:472
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Il filesystem ha già un journal.\n"
-#: misc/tune2fs.c:490
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4549,21 +5436,21 @@ msgstr ""
"\n"
"\ttentando di aprire il journal in %s\n"
-#: misc/tune2fs.c:494
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Creando il journal per il device %s: "
-#: misc/tune2fs.c:502
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "aggiungendo un filesystem al journal in %s"
-#: misc/tune2fs.c:508
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Creazione dell'inode del journal: "
-#: misc/tune2fs.c:517
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -4571,86 +5458,117 @@ msgstr ""
"\n"
"\tcercando di creare il file di journal"
-#: misc/tune2fs.c:584
+#: misc/tune2fs.c:799
+#, fuzzy
+msgid "Couldn't allocate memory to parse quota options!\n"
+msgstr "Impossibile allocare memoria per fare il parsing delle opzioni raid!\n"
+
+#: misc/tune2fs.c:821
+msgid ""
+"\n"
+"Bad quota options specified.\n"
+"\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
+"\t[^]usrquota\n"
+"\t[^]grpquota\n"
+"\n"
+"\n"
+msgstr ""
+
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Impossibile comprendere il formato di data/ora: %s"
-#: misc/tune2fs.c:608 misc/tune2fs.c:621
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "numero di mount non validi - %s"
-#: misc/tune2fs.c:637
+#: misc/tune2fs.c:938
#, fuzzy, c-format
msgid "bad error behavior - %s"
msgstr "comportamento relativo ad un errore non valido - %s"
-#: misc/tune2fs.c:664
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "gid/nome gruppo non valido - %s"
-#: misc/tune2fs.c:697
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "intervallo non valido - %s"
-#: misc/tune2fs.c:725
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "percentuale di blocchi riservati non valida - %s"
-#: misc/tune2fs.c:740
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o può essere specificata solo una volta"
-#: misc/tune2fs.c:750
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O può essere specificata solo una volta"
-#: misc/tune2fs.c:760
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "numero di blocchi riservati non valido - %s"
-#: misc/tune2fs.c:789
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "uid/nome utente non valido - %s"
-#: misc/tune2fs.c:806
+#: misc/tune2fs.c:1114
#, fuzzy, c-format
msgid "bad inode size - %s"
msgstr "dimensione inode non valida - %s"
-#: misc/tune2fs.c:813
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr ""
-#: misc/tune2fs.c:900
+#: misc/tune2fs.c:1215
+#, c-format
+msgid "mmp_update_interval too big: %lu\n"
+msgstr ""
+
+#: misc/tune2fs.c:1220
+#, fuzzy, c-format
+msgid "Setting multiple mount protection update interval to %lu second\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Impostazione del numero massimo di mount a %d\n"
+msgstr[1] "Impostazione del numero massimo di mount a %d\n"
+
+#: misc/tune2fs.c:1243
#, fuzzy, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Insieme di opzioni di mount non valido: %s\n"
-#: misc/tune2fs.c:915
+#: misc/tune2fs.c:1258
#, fuzzy, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Parametro di stride non valido.\n"
-#: misc/tune2fs.c:930
+#: misc/tune2fs.c:1273
#, fuzzy, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Parametro di stride non valido.\n"
-#: misc/tune2fs.c:936
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr ""
-#: misc/tune2fs.c:944
-#, fuzzy, c-format
+#: misc/tune2fs.c:1298
+#, fuzzy
msgid ""
"\n"
"Bad options specified.\n"
@@ -4659,9 +5577,11 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tclear_mmp\n"
+"\thash_alg=<hash algorithm>\n"
+"\tmount_opts=<extended default mount options>\n"
"\tstride=<RAID per-disk chunk size in blocks>\n"
"\tstripe_width=<RAID stride*data disks in blocks>\n"
-"\thash_alg=<hash algorithm>\n"
"\ttest_fs\n"
"\t^test_fs\n"
msgstr ""
@@ -4675,11 +5595,50 @@ msgstr ""
"\tstride=lunghezza stride in blocchi>\n"
"\n"
-#: misc/tune2fs.c:1384 misc/tune2fs.c:1389 resize/resize2fs.c:760
+#: misc/tune2fs.c:1764
+#, fuzzy
+msgid "Failed to read inode bitmap\n"
+msgstr "leggendo le mappe dei bit"
+
+#: misc/tune2fs.c:1769
+#, fuzzy
+msgid "Failed to read block bitmap\n"
+msgstr "lettura delle mappe di bit inode e blocco"
+
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "blocchi da spostare"
-#: misc/tune2fs.c:1471
+#: misc/tune2fs.c:1789
+msgid "Failed to allocate block bitmap when increasing inode size\n"
+msgstr ""
+
+#: misc/tune2fs.c:1795
+msgid "Not enough space to increase inode size \n"
+msgstr ""
+
+#: misc/tune2fs.c:1800
+#, fuzzy
+msgid "Failed to relocate blocks during inode resize \n"
+msgstr "leggendo l'inode dei blocchi non validi"
+
+#: misc/tune2fs.c:1832
+msgid ""
+"Error in resizing the inode size.\n"
+"Run e2undo to undo the file system changes. \n"
+msgstr ""
+
+#: misc/tune2fs.c:1859
+#, fuzzy
+msgid "Couldn't allocate memory for tdb filename\n"
+msgstr "Impossibile allocare memoria per i tipi di filesystem\n"
+
+#: misc/tune2fs.c:1880
+#, fuzzy, c-format
+msgid "while trying to delete %s"
+msgstr "provando a ridimensionare %s"
+
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -4687,59 +5646,76 @@ msgid ""
"\n"
msgstr ""
-#: misc/tune2fs.c:1529
+#: misc/tune2fs.c:1957
#, c-format
-msgid "The inode size is already %d\n"
+msgid ""
+"MMP block magic is bad. Try to fix it by running:\n"
+"'e2fsck -f %s'\n"
msgstr ""
-#: misc/tune2fs.c:1534
+#: misc/tune2fs.c:1975
#, fuzzy, c-format
-msgid "Shrinking the inode size is not supported\n"
+msgid "The inode size is already %lu\n"
+msgstr "Impostazione del gid dei blocchi riservati a %lu\n"
+
+#: misc/tune2fs.c:1982
+#, fuzzy
+msgid "Shrinking inode size is not supported\n"
msgstr ""
"Impostazione di data ed ora dell'ultimo controllo del filesystem a %s\n"
-#: misc/tune2fs.c:1577
+#: misc/tune2fs.c:1987
+#, fuzzy, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "dimensione dell'inode non valida: %d (min %d/max %d)"
+
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Impostazione del numero massimo di mount a %d\n"
-#: misc/tune2fs.c:1583
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Impostazione del numero attuale di mount a %d\n"
-#: misc/tune2fs.c:1588
+#: misc/tune2fs.c:2045
#, fuzzy, c-format
msgid "Setting error behavior to %d\n"
msgstr "Impostazione del comportamento da errore a %d\n"
-#: misc/tune2fs.c:1593
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Impostazione del gid dei blocchi riservati a %lu\n"
-#: misc/tune2fs.c:1598
+#: misc/tune2fs.c:2055
+#, fuzzy, c-format
+msgid "interval between checks is too big (%lu)"
+msgstr "Impostazione dell'intervallo tra i controlli a %lu secondi\n"
+
+#: misc/tune2fs.c:2062
#, fuzzy, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Impostazione dell'intervallo tra i controlli a %lu secondi\n"
-#: misc/tune2fs.c:1605
+#: misc/tune2fs.c:2069
#, fuzzy, c-format
-msgid "Setting reserved blocks percentage to %g%% (%u blocks)\n"
+msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr ""
"Impostazione della percentuale di blocchi riservati a %lu (%u blocchi)\n"
-#: misc/tune2fs.c:1612
-#, c-format
-msgid "reserved blocks count is too big (%lu)"
+#: misc/tune2fs.c:2075
+#, fuzzy, c-format
+msgid "reserved blocks count is too big (%llu)"
msgstr "il numero di blocchi riservati è troppo alto (%lu)"
-#: misc/tune2fs.c:1618
-#, c-format
-msgid "Setting reserved blocks count to %lu\n"
+#: misc/tune2fs.c:2082
+#, fuzzy, c-format
+msgid "Setting reserved blocks count to %llu\n"
msgstr "Impostazione del numero di blocchi riservati a %lu\n"
-#: misc/tune2fs.c:1624
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -4747,78 +5723,150 @@ msgstr ""
"\n"
"Il filesystem ha già dei superblocchi sparsi.\n"
-#: misc/tune2fs.c:1631
+#: misc/tune2fs.c:2092
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
"Sparse superblock flag set. %s"
msgstr ""
-#: misc/tune2fs.c:1636
+# fuzzy
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
-msgstr ""
+"Clearing the sparse superblock flag not supported.\n"
+msgstr "impossibile impostarei i flag del superblocco a %s\n"
-#: misc/tune2fs.c:1643
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr ""
"Impostazione di data ed ora dell'ultimo controllo del filesystem a %s\n"
-#: misc/tune2fs.c:1649
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Impostazione dell'uid dei blocchi riservati a %lu\n"
-#: misc/tune2fs.c:1700
+#: misc/tune2fs.c:2154
+msgid "Error in using clear_mmp. It must be used with -f\n"
+msgstr ""
+
+#: misc/tune2fs.c:2172
+#, fuzzy
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"Il flag has_journal può essere azzerato quando il filesystem non\n"
+"è montato o è montato solo in lettura.\n"
+
+#: misc/tune2fs.c:2191
+#, fuzzy
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"Il flag has_journal può essere azzerato quando il filesystem non\n"
+"è montato o è montato solo in lettura.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Formato UUID non valido\n"
-#: misc/tune2fs.c:1712
+#: misc/tune2fs.c:2232
#, fuzzy
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"Il flag has_journal può essere azzerato quando il filesystem non\n"
"è montato o è montato solo in lettura.\n"
-#: misc/tune2fs.c:1719
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-#: misc/tune2fs.c:1731
-msgid ""
-"Error in resizing the inode size.\n"
-"Run e2undo to undo the file system changes. \n"
-msgstr ""
-
-#: misc/tune2fs.c:1735
+#: misc/tune2fs.c:2253
#, fuzzy, c-format
msgid "Setting inode size %lu\n"
msgstr "Impostazione del gid dei blocchi riservati a %lu\n"
-#: misc/tune2fs.c:1745
+#: misc/tune2fs.c:2256
+#, fuzzy
+msgid "Failed to change inode size\n"
+msgstr "durante l'apertura di %s"
+
+#: misc/tune2fs.c:2267
#, fuzzy, c-format
msgid "Setting stride size to %d\n"
msgstr "Impostazione del gid dei blocchi riservati a %lu\n"
-#: misc/tune2fs.c:1750
+#: misc/tune2fs.c:2272
#, fuzzy, c-format
msgid "Setting stripe width to %d\n"
msgstr "Impostazione del gid dei blocchi riservati a %lu\n"
-#: misc/util.c:72
+#: misc/tune2fs.c:2279
+#, fuzzy, c-format
+msgid "Setting extended default mount options to '%s'\n"
+msgstr "Impostazione del numero attuale di mount a %d\n"
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Procedere comunque? (s,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Procedere comunque? (s,n) "
-#: misc/util.c:93
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "numero di mount non validi - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "numero di mount non validi - %s"
+
+#: misc/util.c:135
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Impossibile fare stat di %s --- %s\n"
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "mappa degli inode dei file regolari"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "e2label: impossibile aprire %s\n"
-#: misc/util.c:96
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -4826,36 +5874,53 @@ msgstr ""
"\n"
"Sembra che il dispositivo non esista; è stato specificato correttamente?\n"
-#: misc/util.c:107
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s non è un device speciale a blocchi.\n"
-#: misc/util.c:136
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " contiene un filesystem con errori"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " contiene un filesystem con errori"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s è un device intero, non solo una partizione.\n"
-#: misc/util.c:158
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"mke2fs è stato forzato comunque. Si spera che /etc/mtab sia sbagliato.\n"
-#: misc/util.c:163
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "non farò un %s qui!\n"
-#: misc/util.c:170
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr ""
-#: misc/util.c:186
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr ""
"Impossibile allocare memoria per fare il parsing delle opzioni del journal!\n"
-#: misc/util.c:228
+#: misc/util.c:368
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Could not find journal device matching %s\n"
+msgstr "Impossibile trovare i magic numbers del superblocco del journal"
+
+#: misc/util.c:395
#, fuzzy
msgid ""
"\n"
@@ -4867,6 +5932,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -4886,7 +5952,7 @@ msgstr ""
"filesystem.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -4894,7 +5960,7 @@ msgstr ""
"\n"
"Filesystem troppo piccolo per un journal\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, fuzzy, c-format
msgid ""
"\n"
@@ -4905,7 +5971,7 @@ msgstr ""
"La dimensione specificata del journal è di %d blocchi, ma essa\n"
"dev'essere compresa tra 1024 e 102400 blocchi. Operazione annullata.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -4913,7 +5979,7 @@ msgstr ""
"\n"
"Dimensione del journal troppo grande per il filesystem.\n"
-#: misc/util.c:283
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -4923,27 +5989,152 @@ msgstr ""
"%g giorni, a seconda di quale venga prima. Usare tune2fs -c o -i per "
"cambiare.\n"
-#: misc/uuidgen.c:31
+#: misc/uuidd.c:48
+#, c-format
+msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
+msgstr ""
+
+#: misc/uuidd.c:50
+#, c-format
+msgid " %s [-r|t] [-n num] [-s socketpath]\n"
+msgstr ""
+
+#: misc/uuidd.c:52
+#, c-format
+msgid " %s -k\n"
+msgstr ""
+
+#: misc/uuidd.c:154
+#, fuzzy
+msgid "bad arguments"
+msgstr "%s: troppi parametri\n"
+
+#: misc/uuidd.c:172
+msgid "connect"
+msgstr ""
+
+#: misc/uuidd.c:191
+msgid "write"
+msgstr ""
+
+#: misc/uuidd.c:199
+msgid "read count"
+msgstr ""
+
+#: misc/uuidd.c:205
+#, fuzzy
+msgid "bad response length"
+msgstr "Parametro di stride non valido.\n"
+
+#: misc/uuidd.c:270
+#, c-format
+msgid "uuidd daemon already running at pid %s\n"
+msgstr ""
+
+#: misc/uuidd.c:278
+#, fuzzy, c-format
+msgid "Couldn't create unix stream socket: %s"
+msgstr "Impossibile comprendere il formato di data/ora: %s"
+
+#: misc/uuidd.c:307
+#, fuzzy, c-format
+msgid "Couldn't bind unix socket %s: %s\n"
+msgstr "Impossibile trovare il superblocco ext2"
+
+#: misc/uuidd.c:315
+#, fuzzy, c-format
+msgid "Couldn't listen on unix socket %s: %s\n"
+msgstr "Impossibile riconnettere %i: %m\n"
+
+#: misc/uuidd.c:353
+#, fuzzy, c-format
+msgid "Error reading from client, len = %d\n"
+msgstr "Errore durante la lettura dell'@i %i: %m\n"
+
+#: misc/uuidd.c:361
+#, c-format
+msgid "operation %d, incoming num = %d\n"
+msgstr ""
+
+#: misc/uuidd.c:380
+#, c-format
+msgid "Generated time UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:390
+#, c-format
+msgid "Generated random UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:399
+#, c-format
+msgid "Generated time UUID %s and subsequent UUID\n"
+msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:420
+#, c-format
+msgid "Generated %d UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:432
+#, fuzzy, c-format
+msgid "Invalid operation %d\n"
+msgstr "Versione EA non valida.\n"
+
+#: misc/uuidd.c:476 misc/uuidd.c:498
+#, c-format
+msgid "Bad number: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:533 misc/uuidd.c:562
+#, fuzzy, c-format
+msgid "Error calling uuidd daemon (%s): %s\n"
+msgstr "Errore creando la @d /@l (%s): %m\n"
+
+#: misc/uuidd.c:543
+#, c-format
+msgid "%s and subsequent UUID\n"
+msgid_plural "%s and subsequent %d UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:547
+msgid "List of UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:568
+#, c-format
+msgid "Unexpected reply length from server %d\n"
+msgstr ""
+
+#: misc/uuidd.c:585
+#, c-format
+msgid "Couldn't kill uuidd running at pid %d: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:591
+#, c-format
+msgid "Killed uuidd running at pid %d\n"
+msgstr ""
+
+#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
msgstr "Uso: %s [-r] [-t]\n"
-#: resize/extent.c:196
+#: resize/extent.c:202
#, fuzzy
msgid "# Extent dump:\n"
msgstr "# Dump esteso:\n"
-#: resize/extent.c:197
+#: resize/extent.c:203
#, c-format
-msgid "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n"
+msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr ""
-#: resize/extent.c:200
-#, c-format
-msgid "#\t\t %u -> %u (%d)\n"
-msgstr "#\t\t %u -> %u (%d)\n"
-
-#: resize/main.c:42
+#: resize/main.c:44
#, fuzzy, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -4952,187 +6143,1070 @@ msgstr ""
"Uso: %s [-d flag_di_debug] [-f] [-F] [-p] device [nuova-dimensione]\n"
"\n"
-#: resize/main.c:64
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Estensione della tavola degli inode"
-#: resize/main.c:67
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Rilocazione dei blocchi"
-#: resize/main.c:70
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Scansione della tavola degli inode"
-#: resize/main.c:73
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Aggiornamento dei riferimenti degli inode"
-#: resize/main.c:76
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Spostamento della tavola degli inode"
-#: resize/main.c:79
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Passo sconosciuto?!?"
-#: resize/main.c:82
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Inizio del passo %d (max = %lu)\n"
-#: resize/main.c:264
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+
+#: resize/main.c:272
#, fuzzy, c-format
msgid "while opening %s"
msgstr "avviando la scansione degli inode"
-#: resize/main.c:276
+#: resize/main.c:280
#, fuzzy, c-format
msgid "while getting stat information for %s"
msgstr "impostando la versione a %s"
-#: resize/main.c:337
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
+"Please run 'e2fsck -f %s' first.\n"
+"\n"
msgstr ""
+"Eseguire prima 'e2fsck -f %s'.\n"
+"\n"
-#: resize/main.c:345
+#: resize/main.c:342
#, fuzzy, c-format
-msgid "Estimated minimum size of the filesystem: %u\n"
+msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr ""
"%s è montato; impossibile ridimensionare un filesystem montato!\n"
"\n"
-#: resize/main.c:381
+#: resize/main.c:378
#, fuzzy, c-format
msgid "Invalid new size: %s\n"
msgstr "dimensione inode non valida - %s"
#: resize/main.c:394
+msgid "New size too large to be expressed in 32 bits\n"
+msgstr ""
+
+#: resize/main.c:402
+#, fuzzy, c-format
+msgid "New size smaller than minimum (%llu)\n"
+msgstr ""
+"Dimensione dei blocchi del device di journaling (%d) minore della dim minima "
+"dei blocchi %d\n"
+
+#: resize/main.c:408
#, fuzzy
msgid "Invalid stride length"
msgstr "Parametro di stride non valido.\n"
-#: resize/main.c:418
+#: resize/main.c:432
#, fuzzy, c-format
msgid ""
-"The containing partition (or device) is only %u (%dk) blocks.\n"
-"You requested a new size of %u blocks.\n"
+"The containing partition (or device) is only %llu (%dk) blocks.\n"
+"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
"La partizione (o device) contenente è solo di %d (%dk) blocchi.\n"
"E' stata richiesta una nuova dimensione di %d blocchi.\n"
"\n"
-#: resize/main.c:425
+#: resize/main.c:439
#, fuzzy, c-format
msgid ""
-"The filesystem is already %u blocks long. Nothing to do!\n"
+"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
"Il filesystem è già lungo %d blocchi. Nulla da fare!\n"
"\n"
-#: resize/main.c:436
-#, c-format
-msgid ""
-"Please run 'e2fsck -f %s' first.\n"
-"\n"
+#: resize/main.c:456
+#, fuzzy, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
-"Eseguire prima 'e2fsck -f %s'.\n"
+"Il filesystem su %s è ora lungo %d blocchi.\n"
"\n"
-#: resize/main.c:447
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "provando a ridimensionare %s"
-#: resize/main.c:452
+#: resize/main.c:468
+#, c-format
+msgid ""
+"Please run 'e2fsck -fy %s' to fix the filesystem\n"
+"after the aborted resize operation.\n"
+msgstr ""
+
+#: resize/main.c:474
#, fuzzy, c-format
msgid ""
-"The filesystem on %s is now %u blocks long.\n"
+"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
"Il filesystem su %s è ora lungo %d blocchi.\n"
"\n"
-#: resize/online.c:37
+#: resize/main.c:489
+#, fuzzy, c-format
+msgid "while trying to truncate %s"
+msgstr "tentando di fare lo stat di %s"
+
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Il @j esterno non supporta questo @f\n"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
-#: resize/online.c:41
-#, c-format
-msgid "On-line shrinking from %u to %u not supported.\n"
+#: resize/online.c:91
+#, fuzzy
+msgid "On-line shrinking not supported"
msgstr ""
+"Impostazione di data ed ora dell'ultimo controllo del filesystem a %s\n"
-#: resize/online.c:61
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr ""
-#: resize/online.c:68
+#: resize/online.c:125
+#, fuzzy
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "leggendo l'inode dei blocchi non validi"
+
+#: resize/online.c:132
+#, fuzzy
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Il @j esterno non supporta questo @f\n"
+
+#: resize/online.c:140
#, fuzzy, c-format
msgid "while trying to open mountpoint %s"
msgstr ""
"\n"
"\ttentando di aprire il journal in %s\n"
-#: resize/online.c:76
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr ""
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr ""
-#: resize/online.c:79
-#, fuzzy
-msgid "Kernel does not support online resizing"
-msgstr "Il @j esterno non supporta questo @f\n"
-
-#: resize/online.c:82
+#: resize/online.c:167 resize/online.c:187
#, fuzzy
msgid "While checking for on-line resizing support"
msgstr "leggendo l'inode dei blocchi non validi"
-#: resize/online.c:111
+#: resize/online.c:184
+#, fuzzy
+msgid "Kernel does not support online resizing"
+msgstr "Il @j esterno non supporta questo @f\n"
+
+#: resize/online.c:223
#, c-format
-msgid "Performing an on-line resize of %s to %u (%dk) blocks.\n"
+msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/online.c:121
+#: resize/online.c:233
#, fuzzy
msgid "While trying to extend the last group"
msgstr "cercando di aprire il journal esterno"
-#: resize/online.c:180
+#: resize/online.c:287
#, fuzzy, c-format
msgid "While trying to add group #%d"
msgstr "durante l'apertura di %s"
-#: resize/online.c:191
+#: resize/online.c:298
#, c-format
msgid ""
"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
"this system.\n"
msgstr ""
-#: resize/resize2fs.c:322
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr ""
-#: resize/resize2fs.c:755
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "blocchi riservati"
-#: resize/resize2fs.c:765
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr ""
-#: resize/resize2fs.c:1703
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "blocchi directory vuoti"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr ""
+#: lib/ext2fs/ext2_err.c:11
+msgid "EXT2FS Library version 1.42.10"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:12
+msgid "Wrong magic number for ext2_filsys structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:13
+msgid "Wrong magic number for badblocks_list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:14
+msgid "Wrong magic number for badblocks_iterate structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:15
+msgid "Wrong magic number for inode_scan structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:16
+msgid "Wrong magic number for io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:17
+msgid "Wrong magic number for unix io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:18
+msgid "Wrong magic number for io_manager structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:19
+msgid "Wrong magic number for block_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:20
+msgid "Wrong magic number for inode_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:21
+msgid "Wrong magic number for generic_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:22
+msgid "Wrong magic number for test io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:23
+msgid "Wrong magic number for directory block list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:24
+msgid "Wrong magic number for icount structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:25
+msgid "Wrong magic number for Powerquest io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:26
+msgid "Wrong magic number for ext2 file structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:27
+msgid "Wrong magic number for Ext2 Image Header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:28
+msgid "Wrong magic number for inode io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:29
+msgid "Wrong magic number for ext4 extent handle"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:30
+#, fuzzy
+msgid "Bad magic number in super-block"
+msgstr "lettura del superblocco del journal\n"
+
+#: lib/ext2fs/ext2_err.c:31
+msgid "Filesystem revision too high"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:32
+msgid "Attempt to write to filesystem opened read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:33
+#, fuzzy
+msgid "Can't read group descriptors"
+msgstr ", Descrittori di gruppo a "
+
+#: lib/ext2fs/ext2_err.c:34
+#, fuzzy
+msgid "Can't write group descriptors"
+msgstr ", Descrittori di gruppo a "
+
+#: lib/ext2fs/ext2_err.c:35
+msgid "Corrupt group descriptor: bad block for block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:36
+msgid "Corrupt group descriptor: bad block for inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:37
+msgid "Corrupt group descriptor: bad block for inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:38
+#, fuzzy
+msgid "Can't write an inode bitmap"
+msgstr "scrivendo le mappe di bit di inode"
+
+#: lib/ext2fs/ext2_err.c:39
+#, fuzzy
+msgid "Can't read an inode bitmap"
+msgstr "scrivendo le mappe di bit di inode"
+
+#: lib/ext2fs/ext2_err.c:40
+#, fuzzy
+msgid "Can't write a block bitmap"
+msgstr "lettura delle mappe di bit inode e blocco"
+
+#: lib/ext2fs/ext2_err.c:41
+#, fuzzy
+msgid "Can't read a block bitmap"
+msgstr "lettura delle mappe di bit inode e blocco"
+
+#: lib/ext2fs/ext2_err.c:42
+#, fuzzy
+msgid "Can't write an inode table"
+msgstr "scrivendo la tavola degli inode"
+
+#: lib/ext2fs/ext2_err.c:43
+#, fuzzy
+msgid "Can't read an inode table"
+msgstr "Scansione della tavola degli inode"
+
+#: lib/ext2fs/ext2_err.c:44
+msgid "Can't read next inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:45
+#, fuzzy
+msgid "Filesystem has unexpected block size"
+msgstr "Il filesystem è più grande della dimensione apparente del device."
+
+#: lib/ext2fs/ext2_err.c:46
+msgid "EXT2 directory corrupted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:47
+msgid "Attempt to read block from filesystem resulted in short read"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:48
+msgid "Attempt to write block to filesystem resulted in short write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:49
+msgid "No free space in the directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:50
+#, fuzzy
+msgid "Inode bitmap not loaded"
+msgstr ", mappa dei bit inode a "
+
+#: lib/ext2fs/ext2_err.c:51
+#, fuzzy
+msgid "Block bitmap not loaded"
+msgstr " Mappa dei bit di blocco a "
+
+#: lib/ext2fs/ext2_err.c:52
+#, fuzzy
+msgid "Illegal inode number"
+msgstr "Numero di blocchi non valido!\n"
+
+#: lib/ext2fs/ext2_err.c:53
+#, fuzzy
+msgid "Illegal block number"
+msgstr "Numero di blocchi non valido!\n"
+
+#: lib/ext2fs/ext2_err.c:54
+msgid "Internal error in ext2fs_expand_dir"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:55
+msgid "Not enough space to build proposed filesystem"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:56
+msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:57
+msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:58
+msgid "Illegal block number passed to ext2fs_test_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:59
+msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:60
+msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:61
+msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:62
+msgid "Attempt to fudge end of block bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:63
+msgid "Attempt to fudge end of inode bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:64
+#, fuzzy
+msgid "Illegal indirect block found"
+msgstr "lettura dei blocchi indiretti dell'inode %u"
+
+#: lib/ext2fs/ext2_err.c:65
+#, fuzzy
+msgid "Illegal doubly indirect block found"
+msgstr "lettura dei blocchi indiretti dell'inode %u"
+
+#: lib/ext2fs/ext2_err.c:66
+#, fuzzy
+msgid "Illegal triply indirect block found"
+msgstr "lettura dei blocchi indiretti dell'inode %u"
+
+#: lib/ext2fs/ext2_err.c:67
+#, fuzzy
+msgid "Block bitmaps are not the same"
+msgstr " Mappa dei bit di blocco a "
+
+#: lib/ext2fs/ext2_err.c:68
+#, fuzzy
+msgid "Inode bitmaps are not the same"
+msgstr ", mappa dei bit inode a "
+
+#: lib/ext2fs/ext2_err.c:69
+msgid "Illegal or malformed device name"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:70
+msgid "A block group is missing an inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:71
+msgid "The ext2 superblock is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:72
+msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:73
+msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:74
+msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:75
+msgid "Too many symbolic links encountered."
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:76
+msgid "The callback function will not handle this case"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:77
+msgid "The inode is from a bad block in the inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:78
+#, fuzzy
+msgid "Filesystem has unsupported feature(s)"
+msgstr "L'@h %i ha una versione dell'hash non supportata (%N)\n"
+
+#: lib/ext2fs/ext2_err.c:79
+#, fuzzy
+msgid "Filesystem has unsupported read-only feature(s)"
+msgstr "L'@h %i ha una versione dell'hash non supportata (%N)\n"
+
+#: lib/ext2fs/ext2_err.c:80
+msgid "IO Channel failed to seek on read or write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:81
+#, fuzzy
+msgid "Memory allocation failed"
+msgstr "Aerrore allocando"
+
+#: lib/ext2fs/ext2_err.c:82
+msgid "Invalid argument passed to ext2 library"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:83
+#, fuzzy
+msgid "Could not allocate block in ext2 filesystem"
+msgstr "Impossibile allocare memoria per i tipi di filesystem\n"
+
+#: lib/ext2fs/ext2_err.c:84
+#, fuzzy
+msgid "Could not allocate inode in ext2 filesystem"
+msgstr "Impossibile allocare memoria per i tipi di filesystem\n"
+
+#: lib/ext2fs/ext2_err.c:85
+msgid "Ext2 inode is not a directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:86
+msgid "Too many references in table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:87
+msgid "File not found by ext2_lookup"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:88
+msgid "File open read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:89
+#, fuzzy
+msgid "Ext2 directory block not found"
+msgstr "Blocco directory %d (#%d) vuoto nell'inode %d\n"
+
+#: lib/ext2fs/ext2_err.c:90
+msgid "Ext2 directory already exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:91
+msgid "Unimplemented ext2 library function"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:92
+msgid "User cancel requested"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:93
+msgid "Ext2 file too big"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:94
+#, fuzzy
+msgid "Supplied journal device not a block device"
+msgstr "Aggiunta del journal al device %s: "
+
+#: lib/ext2fs/ext2_err.c:95
+#, fuzzy
+msgid "Journal superblock not found"
+msgstr "Superblocco del journal non trovato!\n"
+
+#: lib/ext2fs/ext2_err.c:96
+msgid "Journal must be at least 1024 blocks"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:97
+msgid "Unsupported journal version"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:98
+#, fuzzy
+msgid "Error loading external journal"
+msgstr "cercando di aprire il journal esterno"
+
+#: lib/ext2fs/ext2_err.c:99
+#, fuzzy
+msgid "Journal not found"
+msgstr "Superblocco del journal non trovato!\n"
+
+#: lib/ext2fs/ext2_err.c:100
+msgid "Directory hash unsupported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:101
+#, fuzzy
+msgid "Illegal extended attribute block number"
+msgstr "aattributo esteso"
+
+#: lib/ext2fs/ext2_err.c:102
+msgid "Cannot create filesystem with requested number of inodes"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:103
+msgid "E2image snapshot not in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:104
+#, fuzzy
+msgid "Too many reserved group descriptor blocks"
+msgstr "<Inode del descrittore di gruppo>"
+
+#: lib/ext2fs/ext2_err.c:105
+msgid "Resize inode is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:106
+msgid "Tried to set block bmap with missing indirect block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:107
+msgid "TDB: Success"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:108
+msgid "TDB: Corrupt database"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:109
+msgid "TDB: IO Error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:110
+msgid "TDB: Locking error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:111
+msgid "TDB: Out of memory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:112
+msgid "TDB: Record exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:113
+msgid "TDB: Lock exists on other keys"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:114
+#, fuzzy
+msgid "TDB: Invalid parameter"
+msgstr "Parametro di stride non valido.\n"
+
+#: lib/ext2fs/ext2_err.c:115
+msgid "TDB: Record does not exist"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:116
+msgid "TDB: Write not permitted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:117
+msgid "Ext2fs directory block list is empty"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:118
+msgid "Attempt to modify a block mapping via a read-only block iterator"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:119
+msgid "Wrong magic number for ext4 extent saved path"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:120
+msgid "Wrong magic number for 64-bit generic bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:121
+msgid "Wrong magic number for 64-bit block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:122
+msgid "Wrong magic number for 64-bit inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:123
+msgid "Wrong magic number --- RESERVED_13"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:124
+msgid "Wrong magic number --- RESERVED_14"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:125
+msgid "Wrong magic number --- RESERVED_15"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:126
+msgid "Wrong magic number --- RESERVED_16"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:127
+msgid "Wrong magic number --- RESERVED_17"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:128
+msgid "Wrong magic number --- RESERVED_18"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:129
+msgid "Wrong magic number --- RESERVED_19"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:130
+msgid "Corrupt extent header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:131
+msgid "Corrupt extent index"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:132
+msgid "Corrupt extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:133
+msgid "No free space in extent map"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:134
+msgid "Inode does not use extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:135
+#, fuzzy
+msgid "No 'next' extent"
+msgstr "eelemento"
+
+#: lib/ext2fs/ext2_err.c:136
+msgid "No 'previous' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:137
+msgid "No 'up' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:138
+msgid "No 'down' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:139
+msgid "No current node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:140
+msgid "Ext2fs operation not supported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:141
+msgid "No room to insert extent in node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:142
+msgid "Splitting would result in empty node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:143
+#, fuzzy
+msgid "Extent not found"
+msgstr "/@l non trovata. "
+
+#: lib/ext2fs/ext2_err.c:144
+msgid "Operation not supported for inodes containing extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:145
+msgid "Extent length is invalid"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:146
+msgid "I/O Channel does not support 64-bit block numbers"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:147
+msgid "Can't check if filesystem is mounted due to missing mtab file"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:148
+msgid "Filesystem too large to use legacy bitmaps"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:149
+msgid "MMP: invalid magic number"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:150
+msgid "MMP: device currently active"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:151
+msgid "MMP: fsck being run"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:152
+msgid "MMP: block number beyond filesystem range"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:153
+msgid "MMP: undergoing an unknown operation"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:154
+#, fuzzy
+msgid "MMP: filesystem still in use"
+msgstr "dimensione filesystem non valida - %s"
+
+#: lib/ext2fs/ext2_err.c:155
+msgid "MMP: open with O_DIRECT failed"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:156
+#, fuzzy
+msgid "Block group descriptor size incorrect"
+msgstr "<Inode del descrittore di gruppo>"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+#, fuzzy
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ", mappa dei bit inode a "
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+#, fuzzy
+msgid "Superblock checksum does not match superblock"
+msgstr "Backup del superblocco salvati nei blocchi: "
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:11
+msgid "Profile version 0.0"
+msgstr ""
+
+#: e2fsck/prof_err.c:12
+msgid "Bad magic value in profile_node"
+msgstr ""
+
+#: e2fsck/prof_err.c:13
+#, fuzzy
+msgid "Profile section not found"
+msgstr "creando /lost+found"
+
+#: e2fsck/prof_err.c:14
+#, fuzzy
+msgid "Profile relation not found"
+msgstr "creando /lost+found"
+
+#: e2fsck/prof_err.c:15
+msgid "Attempt to add a relation to node which is not a section"
+msgstr ""
+
+#: e2fsck/prof_err.c:16
+msgid "A profile section header has a non-zero value"
+msgstr ""
+
+#: e2fsck/prof_err.c:17
+msgid "Bad linked list in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:18
+msgid "Bad group level in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:19
+msgid "Bad parent pointer in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:20
+msgid "Bad magic value in profile iterator"
+msgstr ""
+
+#: e2fsck/prof_err.c:21
+msgid "Can't set value on section node"
+msgstr ""
+
+#: e2fsck/prof_err.c:22
+msgid "Invalid argument passed to profile library"
+msgstr ""
+
+#: e2fsck/prof_err.c:23
+msgid "Attempt to modify read-only profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:24
+msgid "Profile section header not at top level"
+msgstr ""
+
+#: e2fsck/prof_err.c:25
+msgid "Syntax error in profile section header"
+msgstr ""
+
+#: e2fsck/prof_err.c:26
+msgid "Syntax error in profile relation"
+msgstr ""
+
+#: e2fsck/prof_err.c:27
+msgid "Extra closing brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:28
+msgid "Missing open brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:29
+msgid "Bad magic value in profile_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:30
+msgid "Bad magic value in profile_section_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:31
+msgid "Iteration through all top level section not supported"
+msgstr ""
+
+#: e2fsck/prof_err.c:32
+#, fuzzy
+msgid "Invalid profile_section object"
+msgstr "Set di opzioni del filesystem non valido: %s\n"
+
+#: e2fsck/prof_err.c:33
+msgid "No more sections"
+msgstr ""
+
+#: e2fsck/prof_err.c:34
+msgid "Bad nameset passed to query routine"
+msgstr ""
+
+#: e2fsck/prof_err.c:35
+msgid "No profile file open"
+msgstr ""
+
+#: e2fsck/prof_err.c:36
+msgid "Bad magic value in profile_file_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:37
+#, fuzzy
+msgid "Couldn't open profile file"
+msgstr "Impossibile clonare il file: %m\n"
+
+#: e2fsck/prof_err.c:38
+msgid "Section already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:39
+msgid "Invalid boolean value"
+msgstr ""
+
+#: e2fsck/prof_err.c:40
+#, fuzzy
+msgid "Invalid integer value"
+msgstr "Parametro di stride non valido.\n"
+
+#: e2fsck/prof_err.c:41
+msgid "Bad magic value in profile_file_data_t"
+msgstr ""
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Impossibile fare stat di %s --- %s\n"
+
+#~ msgid "<The ACL index inode>"
+#~ msgstr "<Inode dell'indice ACL>"
+
+#~ msgid "<The ACL data inode>"
+#~ msgstr "<Inode dei dati ACL>"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "%s è montato. "
+
+#~ msgid "bad block size - %s"
+#~ msgstr "dimensione del blocco difettoso - %s"
+
+#, fuzzy
+#~ msgid "invalid fragment size - %s"
+#~ msgstr "dimensione del frammento non valida - %s"
+
+#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
+#~ msgstr "Attenzione: frammenti non supportati. Opzione -f ignorata\n"
+
+#~ msgid "Journal NOT removed\n"
+#~ msgstr "Journal NON rimosso\n"
+
+#~ msgid "#\t\t %u -> %u (%d)\n"
+#~ msgstr "#\t\t %u -> %u (%d)\n"
+
#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
#~ msgstr "Il @S non ha il flag has_@j, ma ha il @j ext3 %s.\n"
@@ -5140,9 +7214,6 @@ msgstr ""
#~ msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
#~ msgstr "L'@h %i ha un livello di profondità (%N) troppo elevato\n"
-#~ msgid "while calling ext2fs_block_iterate"
-#~ msgstr "chiamando ext2fs_block_iterate"
-
#~ msgid "while calling iterator function"
#~ msgstr "chiamando la funzione iteratrice"
@@ -5174,12 +7245,6 @@ msgstr ""
#~ msgid "while retrying to write block bitmaps for %s"
#~ msgstr "riprovando a scrivere le mappe di bit di blocco per %s"
-#~ msgid "writing inode bitmaps"
-#~ msgstr "scrivendo le mappe di bit di inode"
-
-#~ msgid "invalid test_pattern: %s\n"
-#~ msgstr "modello di prova non valido: %s\n"
-
#, fuzzy
#~ msgid "Note: This is a byte-swapped filesystem\n"
#~ msgstr "Nota: Questo è un filesystem a byte scambiati\n"
@@ -5189,9 +7254,6 @@ msgstr ""
#~ msgstr ""
#~ "Attenzione: gli inode di %d byte non sono utilizzabili su molti sistemi\n"
-#~ msgid "bad filesystem size - %s"
-#~ msgstr "dimensione filesystem non valida - %s"
-
#~ msgid "Clone duplicate/bad blocks"
#~ msgstr "Clona i blocchi duplicati/non validi"
@@ -5227,9 +7289,6 @@ msgstr ""
#~ "\tea_ver=<versione_ea (1 o 2)\n"
#~ "\n"
-#~ msgid "Couldn't find ext2 superblock,"
-#~ msgstr "Impossibile trovare il superblocco ext2"
-
#~ msgid "done \n"
#~ msgstr "fatto \n"
@@ -5251,18 +7310,18 @@ msgstr ""
#~ msgid "startkb should be a number, not %s\n"
#~ msgstr "kb_inizio deve essere un numero, non %s\n"
-#~ msgid "startkb should be positive, not %Ld\n"
-#~ msgstr "kb_inizio deve essere positivo, non %Ld\n"
+#~ msgid "startkb should be positive, not %lld\n"
+#~ msgstr "kb_inizio deve essere positivo, non %lld\n"
-#~ msgid "starting at %Ld, with %d byte increments\n"
-#~ msgstr "inizio a %Ld, con incrementi di %d byte\n"
+#~ msgid "starting at %lld, with %d byte increments\n"
+#~ msgstr "inizio a %lld, con incrementi di %d byte\n"
#~ msgid ""
#~ "\n"
-#~ "%14Ld: finished with errno %d\n"
+#~ "%14lld: finished with errno %d\n"
#~ msgstr ""
#~ "\n"
-#~ "%14Ld: terminato con errore numero %d\n"
+#~ "%14lld: terminato con errore numero %d\n"
#~ msgid "(unknown os)"
#~ msgstr "(so sconosciuto)"
diff --git a/po/nl.gmo b/po/nl.gmo
index ab870533..e35b19ad 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index be0db94f..0cb998b4 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,10 +1,17 @@
# Dutch translations for e2fsprogs.
-# Copyright (C) 2011 Theodore Tso (msgids)
+# Copyright (C) 2013 Theodore Tso (msgids)
# This file is distributed under the same license as the e2fsprogs package.
#
-# Het niet-afbeelden wil niet lukken.
+# » Löslicher Kaffee ist am praktischsten. «
#
-# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010, 2011.
+# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010, 2011, 2012, 2013, 2014.
+#
+# Woordgebruik:
+# block -> blok
+# sector -> sector
+# (inode blijft onvertaald)
+# (extent blijft onvertaald)
+# (journal blijft onvertaald)
#
#. 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,
@@ -66,10 +73,10 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.42\n"
+"Project-Id-Version: e2fsprogs-1.42.9\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-11-29 16:03-0500\n"
-"PO-Revision-Date: 2011-12-19 22:18+0100\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2014-01-04 11:42+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
@@ -79,7 +86,7 @@ msgstr ""
"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Slecht blok %u ligt buiten bereik; genegeerd.\n"
@@ -92,11 +99,11 @@ msgstr "tijdens controle van de slechteblokken-inode"
msgid "while reading the bad blocks inode"
msgstr "tijdens lezen van de slechteblokken-inode"
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1239 e2fsck/unix.c:1324 misc/badblocks.c:1215
-#: misc/badblocks.c:1223 misc/badblocks.c:1237 misc/badblocks.c:1249
-#: misc/dumpe2fs.c:572 misc/e2image.c:1170 misc/e2image.c:1288
-#: misc/e2image.c:1301 misc/mke2fs.c:193 misc/tune2fs.c:1907 resize/main.c:308
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "tijdens openen van %s"
@@ -106,7 +113,7 @@ msgstr "tijdens openen van %s"
msgid "while trying popen '%s'"
msgstr "tijdens een popen() van %s"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "tijdens lezen van lijst van slechte blokken uit bestand"
@@ -114,10 +121,11 @@ msgstr "tijdens lezen van lijst van slechte blokken uit bestand"
msgid "while updating bad block inode"
msgstr "tijdens bijwerken van de inode van een slecht blok"
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr "Waarschuwing: ongeldig blok %u gevonden in inode van slecht blok. Gewist.\n"
+msgstr ""
+"Waarschuwing: ongeldig blok %u gevonden in inode van slecht blok. Gewist.\n"
#: e2fsck/ehandler.c:55
#, c-format
@@ -183,61 +191,67 @@ msgstr "Gebruik: %s schijfnaam\n"
#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
-msgstr "ioctl(BLKFLSBUF) wordt niet ondersteund! Kan buffers niet leegmaken.\n"
+msgstr ""
+"ioctl(BLKFLSBUF) wordt niet ondersteund! Kan buffers niet leegmaken.\n"
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Gebruik: %s [-F] [-I inodebufferblokken] apparaat\n"
-#: e2fsck/iscan.c:84 e2fsck/unix.c:902
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "tijdens openen van %s om deze leeg te maken"
-#: e2fsck/iscan.c:89 e2fsck/unix.c:908 resize/main.c:284
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "tijdens leegmaken van %s"
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1065
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr "tijdens openen van '%s'"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "tijdens openen voor inode-scan"
-#: e2fsck/iscan.c:130 misc/e2image.c:1083
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "tijdens halen van volgende inode"
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u inodes gescand.\n"
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "lezen van journal-superblok...\n"
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: geen geldig journal-superblok gevonden\n"
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: journal is te kort\n"
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: herstellen van journal...\n"
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr "%s: geen herstelling van journal bij alleen-lezen\n"
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "tijdens heropenen van %s"
@@ -407,63 +421,56 @@ msgstr "<gereserveerde inode 9>"
msgid "<Reserved inode 10>"
msgstr "<gereserveerde inode 10>"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "normaal bestand"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "map"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "byte-apparaat"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "blok-apparaat"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "benoemde pijp"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "symbolische koppeling"
-#: e2fsck/message.c:344 misc/uuidd.c:161
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "socket"
-#: e2fsck/message.c:346
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "onbekend bestandstype met modus 0%o"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr "indirect blok"
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr "dubbel-indirect blok"
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr "drievoudig-indirect blok"
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
msgstr "vertalerblok"
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "bloknummer"
@@ -471,104 +478,107 @@ msgstr "bloknummer"
msgid "multiply claimed inode map"
msgstr "kaart van meervoudig-geclaimde inodes"
-#: e2fsck/pass1b.c:608 e2fsck/pass1b.c:727
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
-msgstr "*interne fout*: kan geen 'dup_blk' voor %llu vinden\n"
+msgstr "**interne programmafout**: kan geen 'dup_blk' voor %llu vinden\n"
-#: e2fsck/pass1b.c:818
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "### teruggekeerd van clone_file_block()"
-#: e2fsck/pass1b.c:840
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
-msgstr "*interne fout*: kan de record van EA-blokken voor %llu niet opvragen"
+msgstr ""
+"**interne programmafout**: kan de record van EA-blokken voor %llu niet "
+"opvragen"
-#: e2fsck/pass1b.c:852
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
-msgstr "*interne fout*: kan de record van EA-inodes voor %u niet opvragen"
+msgstr ""
+"**interne programmafout**: kan de record van EA-inodes voor %u niet opvragen"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:777
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "tijdens lezen van mapblok"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "bitkaart van gebruikte inodes"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "bitkaart van mappen"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "bitkaart van normale bestanden"
-#: e2fsck/pass1.c:622
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "bitkaart van gebruikte blokken"
-#: e2fsck/pass1.c:684
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "tijdens starten van inode-scan"
-#: e2fsck/pass1.c:718
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "tijdens halen van volgende inode"
-#: e2fsck/pass1.c:1228
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Stap 1"
-#: e2fsck/pass1.c:1285
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "lezen van indirecte blokken van inode %u"
-#: e2fsck/pass1.c:1335
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "bitkaart van slechte inodes"
-#: e2fsck/pass1.c:1357
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "inode staat in kaart van slechte blokken"
-#: e2fsck/pass1.c:1377
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "imagic-inodekaart"
-#: e2fsck/pass1.c:1404
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr "kaart van meervoudig-geclaimde blokken"
-#: e2fsck/pass1.c:1504
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "kaart van blokken met uitgebreide kenmerken"
-#: e2fsck/pass1.c:2252
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr "%6lu(%c): verwachtte %6lu, kreeg fysiek %6lu (blokkenaantal %lld)\n"
-#: e2fsck/pass1.c:2613
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "blok-bitkaart"
-#: e2fsck/pass1.c:2619
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "inode-bitkaart"
-#: e2fsck/pass1.c:2625
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "inodetabel"
-#: e2fsck/pass2.c:278
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Stap 2"
-#: e2fsck/pass2.c:800
+#: e2fsck/pass2.c:805
msgid "Can not continue."
msgstr "Kan niet verdergaan."
@@ -576,19 +586,19 @@ msgstr "Kan niet verdergaan."
msgid "inode done bitmap"
msgstr "bitkaart van behandelde inodes"
-#: e2fsck/pass3.c:85
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Piekgeheugengebruik"
-#: e2fsck/pass3.c:135
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Stap 3"
-#: e2fsck/pass3.c:321
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "bitkaart van inode-lusdetectie"
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Stap 4"
@@ -777,21 +787,25 @@ msgstr ""
"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
-#. @-expanded: filesystem. If the device is valid and it really contains an ext2\n
+#. @-expanded: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
#: e2fsck/problem.c:122
-#, c-format
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -805,7 +819,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -818,7 +832,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:138
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -829,18 +843,18 @@ msgstr ""
"fragmentgrootte die verschilt van de blokgrootte.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "Superblok: blokken_per_groep = %b, zou %c moeten zijn.\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "Superblok: eerste_gegevens_blok = %b, zou %c moeten zijn.\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -848,7 +862,7 @@ msgstr ""
"Bestandssysteem heeft geen UUID; er wordt eentje aangemaakt.\n"
"\n"
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -866,50 +880,50 @@ msgstr ""
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:169
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%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:174
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "Fout tijdens bepalen van de grootte van fysiek apparaat: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "Inodetal in superblok is %i, zou %j moeten zijn.\n"
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "De Hurd ondersteunt de bestandstypenfunctie niet.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "Superblok heeft een ongeldig journal (inode %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr ""
"Het externe journal heeft meerdere bestandssysteem-gebruikers;\n"
"dit wordt niet ondersteund.\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Kan geen extern journal vinden.\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "Het externe journal heeft een slecht superblok.\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "Het externe journal ondersteunt dit bestandssysteem niet.\n"
@@ -917,92 +931,100 @@ msgstr "Het externe journal ondersteunt dit bestandssysteem niet.\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:213
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-"Het superblok van het journal is van een onbekend en niet-ondersteund type %N.\n"
-"Vermoedelijk gebruikt u een ouder 'e2fsck'-programma dat deze journal-indeling\n"
-"niet ondersteunt. Het kan ook zijn dat het journal-superblok beschadigd is.\n"
+"Het superblok van het journal is van een onbekend en niet-ondersteund type "
+"%N.\n"
+"Vermoedelijk gebruikt u een ouder 'e2fsck'-programma dat deze journal-"
+"indeling\n"
+"niet ondersteunt. Het kan ook zijn dat het journal-superblok beschadigd "
+"is.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
msgstr "Het superblok van het journal is beschadigd.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr "Journal-vlag in superblok is niet gezet, maar er is wel een journal %s.\n"
+msgstr ""
+"Journal-vlag in superblok is niet gezet, maar er is wel een journal %s.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr "Reddingsvlag in superblok is gezet, maar er is geen journal.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr "Reddingsvlag in superblok is niet gezet, maar het journal bevat gegevens.\n"
+msgstr ""
+"Reddingsvlag in superblok is niet gezet, maar het journal bevat gegevens.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Journal wissen"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:246 e2fsck/problem.c:690
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
msgstr "Bestandssysteem is een versie 0, maar heeft functievlag(gen) gezet. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
msgid "%s @o @i %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 %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "Ongeldig blok %B (%b) gevonden in verweesde inode %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "Reeds-gewist blok %B (%b) gevonden in verweesde inode %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "Ongeldige verweesde inode %i in superblok.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "Ongeldige inode %i in lijst van verweesde inodes.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "Journal-superblok heeft een onbekende alleen-lezen-functievlag gezet.\n"
+msgstr ""
+"Journal-superblok heeft een onbekende alleen-lezen-functievlag gezet.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "Journal-superblok heeft een onbekende en incompatibele functievlag gezet.\n"
+msgstr ""
+"Journal-superblok heeft een onbekende en incompatibele functievlag gezet.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:286
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "Journal-versie wordt niet ondersteund door deze e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1013,7 +1035,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1025,7 +1047,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:301
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1036,12 +1058,12 @@ msgstr ""
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
msgstr "Journal toch afspelen"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
msgstr ""
"Reservekopieën van het superblok kennen geen reddingsvlag;\n"
@@ -1049,7 +1071,7 @@ msgstr ""
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1059,7 +1081,7 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:322
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1068,18 +1090,20 @@ msgstr ""
"maar 's_reserved_gdt_blocks' is %N; zou nul moeten zijn. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr "Functie 'resize_inode' is uitgeschakeld, maar de 'resize'-inode is niet nul. "
+msgstr ""
+"Functie 'resize_inode' is uitgeschakeld, maar de 'resize'-inode is niet "
+"nul. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr "Ongeldige 'resize'-inode. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1089,7 +1113,7 @@ msgstr ""
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1098,14 +1122,14 @@ msgstr ""
" in de toekomst (nu = %T).\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr "De superblokhint voor een extern superblok dient %X te zijn. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
@@ -1113,220 +1137,238 @@ msgstr ""
"Toevoegen van 'dirhash'-hint aan bestandssysteem.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:357
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
-msgstr "Groepsbeschrijver %g heeft een ongeldige controlesom. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
+msgstr ""
+"Van groepsbeschrijver %g is de controlesom %04x, zou %04y moeten zijn. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr "Groepsbeschrijver %g is gemarkeerd als ongeïnitialiseerd zonder functies.\n"
-
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:367
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr "Groepsbeschrijver %g heeft een ongeïnitialiseerde blok-bitkaart maar de inode-bitkaart is in gebruik.\n"
+msgstr ""
+"Groepsbeschrijver %g is gemarkeerd als ongeïnitialiseerd zonder functies.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr "Groepsbeschrijver %g heeft een ongeldig aantal (%b) ongebruikte inodes. "
+msgstr ""
+"Groepsbeschrijver %g heeft een ongeldig aantal (%b) ongebruikte inodes. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr "Blok-bitkaart van laatste groepsbeschrijver is ongeïnitialiseerd. "
-#: e2fsck/problem.c:382
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr "Journal-transactie %i is beschadigd; het afspelen is afgebroken.\n"
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr "De functievlag 'test_fs' is gezet (en ext4 is beschikbaar). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:391
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
"Laatste aankoppelingstijd ligt volgens het superblok in de toekomst.\n"
-" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist ingesteld.) "
+" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist "
+"ingesteld.) "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:397
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
"Laatste schrijftijd ligt volgens het superblok in de toekomst.\n"
-" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist ingesteld.) "
+" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist "
+"ingesteld.) "
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
msgstr "Een of meer groepsbeschrijvers hebben een ongeldige controlesom. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:405
msgid "Setting free @is count to %j (was %i)\n"
msgstr "Het aantal vrije inodes is op %j gezet (was %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:410
msgid "Setting free @bs count to %c (was %b)\n"
msgstr "Het aantal vrije blokken is op %c gezet (was %b)\n"
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-#: e2fsck/problem.c:418
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
-msgstr ""
-"De quota-inodes worden verborgen.\n"
-"\n"
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr "De quota-inode %i (%Q) wordt verborgen.\n"
#. @-expanded: superblock has invalid MMP block.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:420
msgid "@S has invalid MMP block. "
msgstr "Superblok heeft ongeldig MMP-blok. "
#. @-expanded: superblock has invalid MMP magic.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:425
msgid "@S has invalid MMP magic. "
msgstr "Superblok heeft ongeldig magisch getal voor MMP. "
-#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr "ext2fs_open2(): %m\n"
+
#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr "ext2fs_check_desc(): %m\n"
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+"Superblok van 64-bits bestandssystemen heeft extents nodig om gehele schijf "
+"te kunnen bereiken. "
+
+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Stap 1: Controle van inodes, blokken, en groottes\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:439
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "De hoofd-inode is geen map. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
-msgstr "De verwijderingstijd van de hoofd-inode is niet nul (waarschijnlijk veroorzaakt door een oude mke2fs). "
+msgstr ""
+"De verwijderingstijd van de hoofd-inode is niet nul (waarschijnlijk "
+"veroorzaakt door een oude mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:449
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "Gereserveerde inode %i %Q heeft een ongeldige modus. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "De verwijderingstijd van verwijderde inode %i is nul. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "Inode %i is in gebruik, maar heeft een ingevulde verwijderingstijd. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "Inode %i is een map met lengte nul. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
-msgstr "De blok-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
+msgstr ""
+"De blok-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
-msgstr "De inode-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
+msgstr ""
+"De inode-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr "De inodetabel van groep %g botst bij %b met een bestandssysteemblok.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr "De blok-bitkaart %b van groep %g is ongeldig. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr "De inode-bitkaart %b van groep %g is ongeldig. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "Inode %i, 'i_size' is %Is, zou %N moeten zijn. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "Inode %i, 'i_blocks' is %Ib, zou %N moeten zijn. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
msgstr "Ongeldig blok %B (%b) in inode %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr "Blok %B (%b) overlapt metadata van bestandssysteem in inode %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "Inode %i bevat ongeldig(e) blok(ken). "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Te veel ongeldige blokken in inode %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
msgstr "Ongeldig blok %B (%b) in slechteblokken-inode. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "Slechteblokken-inode bevat ongeldig(e) blok(ken). "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "Een dubbel of slecht blok is in gebruik!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr "Slecht blok %b is in gebruik als indirect blok voor de slechteblokken-inode. "
+msgstr ""
+"Slecht blok %b is in gebruik als indirect blok voor de slechteblokken-"
+"inode. "
#. @-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:544
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1340,18 +1382,19 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:551
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
"\n"
-"Als het blok echt slecht is, kan het bestandssysteem niet gerepareerd worden.\n"
+"Als het blok echt slecht is, kan het bestandssysteem niet gerepareerd "
+"worden.\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:556
+#: e2fsck/problem.c:568
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"
@@ -1362,122 +1405,129 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "Het primaire superblok (%b) staat in de lijst van slechte blokken.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Een groepsbeschrijversblok (%b) staat in de lijst van slechte blokken.\n"
+msgstr ""
+"Een groepsbeschrijversblok (%b) staat in de lijst van slechte blokken.\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:573
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Waarschuwing: groep %g heeft een slecht superblok (%b).\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr "Waarschuwing: groep %g bevat 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:584
+#: e2fsck/problem.c:596
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:590
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
-msgstr "Fout tijdens reserveren van %N aaneengsloten blokken in groep %g voor %s: %m\n"
+msgstr ""
+"Fout tijdens reserveren van %N aaneengsloten blokken in groep %g voor %s: "
+"%m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "Fout tijdens reserveren van buffer voor verplaatsen van %s.\n"
# src/delegate.c:368
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Bezig met verplaatsen van groep %g's %s van %b naar %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Bezig met verplaatsen van groep %g's %s naar %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Waarschuwing: kan blok %b van %s niet lezen: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Waarschuwing: kan blok %b van %s niet schrijven: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:620 e2fsck/problem.c:1455
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "Fout tijdens reserveren van inode-bitkaart (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:625
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "Fout tijdens reserveren van blok-bitkaart (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr "Fout tijdens reserveren van 'icount'-link-informatie: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "Fout tijdens reserveren van blokreeks voor map: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Fout tijdens scannen van inodes (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr "Fout tijdens langslopen van blokken van inode %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr "Fout tijdens opslaan van inodetal (inode=%i, aantal=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr "Fout tijdens opslaan van mapblokkeninformatie (inode=%i, blok=%b, aantal=%N): %m\n"
+msgstr ""
+"Fout tijdens opslaan van mapblokkeninformatie (inode=%i, blok=%b, aantal="
+"%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:661
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Fout tijdens lezen van inode %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "Inode %i heeft de imagic-vlag gezet. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1487,149 +1537,160 @@ msgstr ""
"of de alleen-toevoegenvlag gezet (inode %i). "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:680
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr "Inode %i heeft de compressievlag gezet op een bestandssysteem zonder compressie-ondersteuning. "
+msgstr ""
+"Inode %i heeft de compressievlag gezet op een bestandssysteem zonder "
+"compressie-ondersteuning. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr "Speciale inode %i (apparaat/socket/fifo) heeft niet lengte nul. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "Journal-inode is niet in gebruik, maar bevat gegevens. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "Journal is geen normaal bestand. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "Inode %i was deel van de lijst van verweesde inodes. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:711
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "Inodes gevonden die deel waren van een beschadigde lijst van verweesde inodes. "
+msgstr ""
+"Inodes gevonden die deel waren van een beschadigde lijst van verweesde "
+"inodes. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "Fout tijdens reserveren van 'refcount'-structuur (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
-msgstr "Fout tijdens lezen van blok %b met uitgebreide kenmerken voor inode %i. "
+msgstr ""
+"Fout tijdens lezen van blok %b met uitgebreide kenmerken voor inode %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "Inode %i bevat een slecht blok %b met uitgebreide kenmerken. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "Fout tijdens lezen van blok %b met uitgebreide kenmerken: %m "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
-msgstr "Blok %b met uitgebreide kenmerken heeft verwijzingstal %r, zou %N moeten zijn. "
+msgstr ""
+"Blok %b met uitgebreide kenmerken heeft verwijzingstal %r, zou %N moeten "
+"zijn. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "Fout tijdens schrijven van blok %b met uitgebreide kenmerken: %m "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr "Blok %b met uitgebreide kenmerken heeft h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "Fout tijdens reserveren van blok %b met uitgebreide kenmerken. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr "Blok %b met uitgebreide kenmerken is beschadigd (reserveringsoverlap). "
+msgstr ""
+"Blok %b met uitgebreide kenmerken is beschadigd (reserveringsoverlap). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "Blok %b met uitgebreide kenmerken is beschadigd (ongeldige naam). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "Blok %b met uitgebreide kenmerken is beschadigd (ongeldige waarde). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "Inode %i is te groot. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:775
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
msgstr "Blok %B (%b) maakt map te groot. "
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
msgstr "Blok %B (%b) maakt bestand te groot. "
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
msgstr "Blok %B (%b) maakt symbolische koppeling te groot. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr "Inode %i heeft de 'INDEX_FL'-vlag gezet op een bestandssysteem zonder 'htree'-ondersteuning.\n"
+msgstr ""
+"Inode %i heeft de 'INDEX_FL'-vlag gezet op een bestandssysteem zonder "
+"'htree'-ondersteuning.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "Inode %i heeft de 'INDEX_FL'-vlag gezet maar het is geen map.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "Inode %i van 'htree'-map heeft een ongeldige wortelknoop.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
-msgstr "Inode %i van 'htree'-map gebruikt 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:810
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr "Inode %i van 'htree'-map gebruikt een incompatibele wortelknoopvlag.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "Inode %i van 'htree'-map heeft een te grote boomdiepte (%N).\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
@@ -1638,55 +1699,62 @@ msgstr ""
"is met de metagegevens van het bestandssysteem. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:826
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "Aanmaken van 'resize'-inode is mislukt: %m"
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "Inode %i heeft een ongeldige extra grootte (%IS).\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
-msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige naamlengte (%N).\n"
+msgstr ""
+"Een uitgebreid kenmerk in inode %i heeft een ongeldige naamlengte (%N).\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige waardeoffset (%N).\n"
+msgstr ""
+"Een uitgebreid kenmerk in inode %i heeft een ongeldige waardeoffset (%N).\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldig waardeblok (%N, moet 0 zijn).\n"
+msgstr ""
+"Een uitgebreid kenmerk in inode %i heeft een ongeldig waardeblok (%N, moet 0 "
+"zijn).\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige waardegrootte (%N).\n"
+msgstr ""
+"Een uitgebreid kenmerk in inode %i heeft een ongeldige waardegrootte (%N).\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
-msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige hash-waarde (%N).\n"
+msgstr ""
+"Een uitgebreid kenmerk in inode %i heeft een ongeldige hash-waarde (%N).\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr "Inode %i is gemarkeerd als een %It, maar lijkt feitelijk een map te zijn.\n"
+msgstr ""
+"Inode %i is gemarkeerd als een %It, maar lijkt feitelijk een map te zijn.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
-msgstr "Fout tijdens doorlezen van extents-boom in inode %i: %m\n"
+msgstr "Fout tijdens doorlezen van 'extents'-boom in inode %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1696,97 +1764,127 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:877
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
msgstr ""
-"Inode %i heeft een ongeldige extent\n"
+"Inode %i heeft een ongeldige 'extent'\n"
" (logisch blok %c, ongeldig fysiek blok %b, lengte %N)\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
-"Inode %i heeft een ongeldige extent\n"
+"Inode %i heeft een ongeldige 'extent'\n"
" (logisch blok %c, fysiek blok %b, ongeldige lengte %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr "Inode %i heeft de 'EXTENTS_FL'-vlag gezet op een bestandssysteem zonder 'htree'-ondersteuning.\n"
+msgstr ""
+"Inode %i heeft de 'EXTENTS_FL'-vlag gezet op een bestandssysteem zonder "
+"'htree'-ondersteuning.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr "Inode %i heeft extent-opmaak, maar superblok heeft EXTENTS-functievlag niet gezet.\n"
+msgstr ""
+"Inode %i heeft extent-opmaak, maar superblok heeft EXTENTS-functievlag niet "
+"gezet.\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
-msgstr "Inode %i heeft extent-opmaak, maar heeft 'EXTENT_FL'-vlag niet gezet.\n"
+msgstr ""
+"Inode %i heeft 'extent'-opmaak, maar heeft 'EXTENT_FL'-vlag niet gezet.\n"
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr "Snelle symbolische koppeling %i heeft 'EXTENT_FL'-vlag gezet. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
-"Inode %i heeft extents die niet op volgorde liggen\n"
+"Inode %i heeft 'extents' die niet op volgorde liggen\n"
" (ongeldig logisch blok %c, fysiek blok %b, lengte %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:911
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr "Inode %i heeft een ongeldige 'extent'-knoop (blk %b, lblk %c)\n"
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:915
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr "Inode %i zou niet de 'EOFBLOCKS_FL'-vlag gezet moeten hebben (grootte %Is, lblk %r)\n"
-
#. @-expanded: Error converting subcluster block bitmap: %m\n
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
msgstr "Fout tijdens converteren van subclusterblokken-bitkaart: %m\n"
#. @-expanded: quota inode is not regular file.
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
msgid "@q @i is not regular file. "
msgstr "Quota-inode is geen normaal bestand. "
#. @-expanded: quota inode is not in use, but contains data.
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
msgid "@q @i is not in use, but contains data. "
msgstr "Quota-inode is niet in gebruik, maar bevat gegevens. "
#. @-expanded: quota inode is visible to the user.
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
msgid "@q @i is visible to the user. "
msgstr "Quota-inode is zichtbaar voor de gebruiker. "
#. @-expanded: The bad block inode looks invalid.
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
msgid "The bad @b @i looks @n. "
msgstr "De slechteblokken-inode lijkt ongeldig. "
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"Inode %i heeft een 'extent' met lengte nul\n"
+" (ongeldig logisch blok %c, fysiek blok %b)\n"
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+"Inwendig 'extent'-knoopniveau %N van inode %i:\n"
+"Logisch begin %b komt niet overeen met logisch begin %c op volgende niveau. "
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"Inode %i: einde van 'extent' overschrijdt toegestane waarde\n"
+" (logisch blok %c, fysiek blok %b, lengte %N)\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:948
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1798,46 +1896,49 @@ msgstr ""
"Stap 1B: Opnieuw zoeken naar meervoudig-geclaimde blokken\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:954
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "Meervoudig-geclaimd blok (of blokken) in inode %i:"
-#: e2fsck/problem.c:969
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Fout tijdens scannen van inodes (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "Fout tijdens reserveren van vervangende inode-bitkaart: %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr "Fout tijdens langslopen van blokken van inode %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:984 e2fsck/problem.c:1299
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr "Fout tijdens bijstellen van verwijzingstal van blok %b met uitgebreide kenmerken (inode %i): %m\n"
+msgstr ""
+"Fout tijdens bijstellen van verwijzingstal van blok %b met uitgebreide "
+"kenmerken (inode %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:989
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr "Stap 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:995
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Stap 1D: Verzoenen van meervoudig-geclaimde blokken\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
@@ -1846,18 +1947,18 @@ msgstr ""
" bevat %r meervoudig-geclaimd(e) blok(ken), gedeeld met %N bestand(en):\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:1006
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (inode %i, wijzigingstijd %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<metagegevens van bestandssysteem>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1867,7 +1968,7 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
@@ -1875,315 +1976,322 @@ msgstr ""
"Meervoudig-geclaimde blokken zijn al gekloond of opnieuw toegekend.\n"
"\n"
-#: e2fsck/problem.c:1034
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "Kan bestand niet klonen: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Stap 2: Controle van mappenstructuur\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr "Ongeldig inodenummer voor '.' in map-inode %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "@E heeft een ongeldig inodenummer: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr "@E bevat een verwijderde of ongebruikte inode %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "@E is een koppeling naar '.' "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "@E verwijst naar een inode (%Di) in een slecht blok.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "@E is een koppeling naar map %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "@E is een koppeling naar de hoofd-inode.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "@E bevat ongeldige tekens in de naam.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "Ontbrekende '.' in map-inode %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "Ontbrekende '..' in map-inode %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr "Eerste item '%Dn' (inode=%Di) in map-inode %i (%p) moet '.' zijn.\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "Tweede item '%Dn' (inode=%Di) in map-inode %i moet '..' zijn.\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\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:1110
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\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:1115
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\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:1120
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\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:1125
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "'i_fsize' @F is %N, moet nul zijn.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "Inode %i (%Q) heeft een ongeldige modus (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "Map-inode %i, blok %B, positie %N: map is beschadigd\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "Map-inode %i, blok %B, positie %N: bestandsnaam is te lang\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "Map-inode %i bevat een ongereserveerd blok %B. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "Item '.' in map-inode %i eindigt niet op NULL.\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "Item '..' in map-inode %i eindigt niet op NULL.\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "Inode %i (%Q) is een ongeldig byte-apparaat.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "Inode %i (%Q) is een ongeldig blok-apparaat.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "@E is een duplicaat-'.'-item.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "@E is een duplicaat-'..'-item.\n"
-#: e2fsck/problem.c:1180 e2fsck/problem.c:1480
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
-msgstr "*Interne fout*: kan 'dir_info' voor %i niet vinden.\n"
+msgstr "**Interne programmafout**: kan 'dir_info' voor %i niet vinden.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "@E heeft een 'rec_len' van %Dr, zou %N moeten zijn.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "Fout tijdens reserveren van 'icount'-structuur: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Fout tijdens langslopen van mapblokken: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Fout tijdens lezen van mapblok %b (inode %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Fout tijdens schrijven van mapblok %b (inode %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "Fout tijdens reserveren van nieuw mapblok voor inode %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Fout tijdens vrijgeven van inode %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "Mapitem voor '.' in %p (%i) is groot.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "Inode %i (%Q) is een ongeldige FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "Inode %i (%Q) is een ongeldige socket.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "Bestandstype van @E wordt op %N gezet.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "@E heeft een ongeldig bestandstype (%Dt, zou %N moeten zijn).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "@E heeft een ingevuld bestandstype.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "@E heeft een naam met lengte nul.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "Symbolische koppeling %Q (inode %i) is ongeldig.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "Blok van uitgebreide kenmerken @F is ongeldig (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr "Bestandssysteem bevat grote bestanden, maar heeft in het superblok niet de 'large-file'-vlag gezet.\n"
+msgstr ""
+"Bestandssysteem bevat grote bestanden, maar heeft in het superblok niet de "
+"'large-file'-vlag gezet.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
msgstr "Probleem in 'htree'-map-inode %d: naar %B wordt niet verwezen.\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
msgstr "Probleem in 'htree'-map-inode %d: naar %B wordt twee keer verwezen.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
-msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige minimum hash.\n"
+msgstr ""
+"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige minimum hash.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
-msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige maximum hash.\n"
+msgstr ""
+"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige maximum hash.\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "Ongeldige 'htree'-map-inode %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "Probleem in 'htree'-map-inode %d (%q): ongeldig bloknummer %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1304
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "Probleem in 'htree'-map-inode %d: de wortelknoop is ongeldig.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
-msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige limiet (%N).\n"
+msgstr ""
+"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige limiet (%N).\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldig aantal (%N).\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
-msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeordende hash-tabel.\n"
+msgstr ""
+"Probleem in 'htree'-map-inode %d: %B heeft een ongeordende hash-tabel.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
-msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige diepte (%N).\n"
+msgstr ""
+"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige diepte (%N).\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "Dubbel item '%Dn' in %p (%i) gevonden. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2195,7 +2303,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2206,116 +2314,121 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "'i_blocks_hi' @F is %N, moet nul zijn.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "Onverwacht blok in 'htree'-map-inode %d (%q)\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr "@E verwijst naar inode %Di in groep %g die gemarkeerd is als _INODE_UNINIT.\n"
+msgstr ""
+"@E verwijst naar inode %Di in groep %g die gemarkeerd is als _INODE_UNINIT.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "@E verwijst naar inode %Di in het gebied met ongebruikte inodes van groep %g.\n"
+msgstr ""
+"@E verwijst naar inode %Di in het gebied met ongebruikte inodes van groep "
+"%g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr "'i_file_acl' @F is %N, moet nul zijn.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Stap 3: Controle van verbindingen tussen mappen\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "Hoofd-inode is niet gereserveerd. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "Geen ruimte meer in /lost+found. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "Onverbonden map-inode %i (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/lost+found niet gevonden. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "'..' in %Q (%i) is %P (%j), moet %q (%d) zijn.\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
-msgstr "Beschadigde of niet-bestaande /lost+found. Kan inode niet herverbinden.\n"
+msgstr ""
+"Beschadigde of niet-bestaande /lost+found. Kan inode niet herverbinden.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "Kan /lost+found niet uitbreiden: %m\n"
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "Kan inode %i niet herverbinden: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "Fout tijdens zoeken van /lost+found: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\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:1425
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\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:1430
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\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:1435
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr "ext2fs_write_dir_block(): %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:1440
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Fout tijdens bijwerken van inodetal van inode %i.\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2326,85 +2439,86 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
"\n"
msgstr ""
-"Kan ouderverwijzing van inode %i niet herstellen: kan de oudermap niet vinden.\n"
+"Kan ouderverwijzing van inode %i niet herstellen: kan de oudermap niet "
+"vinden.\n"
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1460
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Fout tijdens maken van hoofdmap (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Fout tijdens maken van /lost+found-map (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "De hoofd-inode is geen map. Gestopt.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "Kan niet verder zonder een hoofd-inode.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1485
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/lost+found (inode %i) is geen map\n"
-#: e2fsck/problem.c:1492
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Stap 3A: Optimalisatie van mappen\n"
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Maken van 'dirs_to_hash-iterator' is mislukt: %m\n"
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Optimaliseren van map %q (%d) is mislukt: %m\n"
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Optimaliseren van mappen: "
-#: e2fsck/problem.c:1524
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Stap 4: Controle van verwijzingsaantallen\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "Onverbonden inode %i met lengte nul. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "Onverbonden inode %i.\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "Verwijzingsaantal van inode %i is %Il, zou %N moeten zijn. "
#. @-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:1543
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2417,140 +2531,151 @@ msgstr ""
"Deze horen hetzelfde te zijn!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1553
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Stap 5: Controle van groepssamenvattingen\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "Opvulling aan het eind van inode-bitkaart is niet gezet. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "Opvulling aan het eind van blok-bitkaart is niet gezet. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "Blok-bitkaart-verschillen: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1588
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "Inode-bitkaart-verschillen: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1608
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Verkeerd aantal vrije inodes voor groep #%g (%i, geteld=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Verkeerd aantal mappen voor groep #%g (%i, geteld=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "Verkeerd aantal inodes (%i, geteld=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr "Verkeerd aantal blokken voor groep #%g (%b, geteld=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "Verkeerd aantal blokken (%b, geteld=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1633
-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"
+#: e2fsck/problem.c:1659
+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"
-#: e2fsck/problem.c:1639
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
-msgstr "*Interne fout*: einde van bitmap is gefoezeld (%N)\n"
+msgstr "**Interne programmafout**: einde van bitmap is gefoezeld (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Fout tijdens kopiëren naar vervangende inode-bitkaart: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr "Fout tijdens kopiëren naar vervangende blok-bitkaart: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1674
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr "Blok(ken) van groep %g in gebruik, maar groep is gemarkeerd als BLOCK_UNINIT\n"
+msgstr ""
+"Blok(ken) van groep %g in gebruik, maar groep is gemarkeerd als "
+"BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr "Inode(s) van groep %g in gebruik, maar groep is gemarkeerd als INODE_UNINIT\n"
+msgstr ""
+"Inode(s) van groep %g in gebruik, maar groep is gemarkeerd als INODE_UNINIT\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1686
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
msgstr "Journal heraanmaken"
-#: e2fsck/problem.c:1805
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr "Quota-informatie bijwerken voor quotatype %N"
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Onbekende foutcode (0x%x)!\n"
-#: e2fsck/problem.c:1905
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "GENEGEERD"
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Gebruikt geheugen: %d, verlopen tijd: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "grootte van inode is %d\n"
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "tijdens start van inode-scan"
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "tijdens uitvoering van inode-scan"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "tijdens aanroep van ext2fs_block_iterate() voor inode %d"
-#: e2fsck/super.c:210
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "tijdens aanroep van ext2fs_adjust_ea_refcount2() voor inode %d"
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Afkappen"
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Wissen"
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2564,15 +2689,15 @@ msgstr ""
" [-l|-L slechte_blokkenbestand] [-P procesinode-grootte]\n"
" apparaat\n"
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
@@ -2583,8 +2708,7 @@ msgstr ""
" -c Op slechte blokken controleren en deze aan lijst toevoegen.\n"
" -f Een controle afdwingen, ook als het bestandssysteem schoon is.\n"
-#: e2fsck/unix.c:89
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2597,169 +2721,172 @@ msgstr ""
" -b superblok Dit superblok gebruiken.\n"
" -B blokgrootte Deze blokgrootte gebruiken bij zoeken naar superblok.\n"
" -j extern_journal Dit externe journal gebruiken.\n"
-" -l slechte_blokkenbestand Deze lijst aan de slechte_blokkenlijst toevoegen.\n"
+" -l slechte_blokkenbestand Deze lijst aan de slechte_blokkenlijst "
+"toevoegen.\n"
" -L slechte_blokkenbestand Deze slechte_blokkenlijst gebruiken.\n"
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
-msgstr "%s: %u/%u bestanden (%0d.%d%% niet-aaneengesloten), %llu/%llu blokken\n"
+msgstr ""
+"%s: %u/%u bestanden (%0d.%d%% niet-aaneengesloten), %llu/%llu blokken\n"
-#: e2fsck/unix.c:139
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u inode gebruikt (%2.2f%%)\n"
+"%12u inode gebruikt (%2.2f%% van %u)\n"
msgstr[1] ""
"\n"
-"%8u inodes gebruikt (%2.2f%%)\n"
+"%12u inodes gebruikt (%2.2f%% van %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u niet-aaneengesloten bestand (%0d.%d%%)\n"
-msgstr[1] "%8u niet-aaneengesloten bestanden (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u niet-aaneengesloten bestand (%0d.%d%%)\n"
+msgstr[1] "%12u niet-aaneengesloten bestanden (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u niet-aaneengesloten map (%0d.%d%%)\n"
-msgstr[1] "%8u niet-aaneengesloten mappen (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u niet-aaneengesloten map (%0d.%d%%)\n"
+msgstr[1] "%12u niet-aaneengesloten mappen (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " aantal inodes met indirecte blokken: %u enkel, %u dubbel, %u triple\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr ""
+" aantal inodes met indirecte blokken: %u enkel, %u dubbel, %u "
+"triple\n"
-#: e2fsck/unix.c:158
-#, c-format
-msgid " Extent depth histogram: "
-msgstr " Extents-dieptehistogram: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Extents-dieptehistogram: "
-#: e2fsck/unix.c:167
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu blok gebruikt (%2.2f%%)\n"
-msgstr[1] "%8llu blokken gebruikt (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu blok gebruikt (%2.2f%% van %llu)\n"
+msgstr[1] "%12llu blokken gebruikt (%2.2f%% van %llu)\n"
-#: e2fsck/unix.c:170
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u slecht blok\n"
-msgstr[1] "%8u slechte blokken\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u slecht blok\n"
+msgstr[1] "%12u slechte blokken\n"
-#: e2fsck/unix.c:172
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u groot bestand\n"
-msgstr[1] "%8u grote bestanden\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u groot bestand\n"
+msgstr[1] "%12u grote bestanden\n"
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u normaal bestand\n"
+"%12u normaal bestand\n"
msgstr[1] ""
"\n"
-"%8u normale bestanden\n"
+"%12u normale bestanden\n"
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u map\n"
-msgstr[1] "%8u mappen\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u map\n"
+msgstr[1] "%12u mappen\n"
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u byte-apparaat\n"
-msgstr[1] "%8u byte-apparaten\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u byte-apparaat\n"
+msgstr[1] "%12u byte-apparaten\n"
-#: e2fsck/unix.c:181
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u blok-apparaat\n"
-msgstr[1] "%8u blok-apparaten\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u blok-apparaat\n"
+msgstr[1] "%12u blok-apparaten\n"
-#: e2fsck/unix.c:183
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
-msgstr[1] "%8u fifo's\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
+msgstr[1] "%12u fifo's\n"
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u koppeling\n"
-msgstr[1] "%8u koppelingen\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u koppeling\n"
+msgstr[1] "%12u koppelingen\n"
-#: e2fsck/unix.c:188
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolische koppeling"
-msgstr[1] "%8u symbolische koppelingen"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolische koppeling"
+msgstr[1] "%12u symbolische koppelingen"
-#: e2fsck/unix.c:190
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] " (%u snelle koppeling)\n"
msgstr[1] " (%u snelle koppelingen)\n"
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u socket\n"
-msgstr[1] "%8u sockets\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
+msgstr[1] "%12u sockets\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u bestand\n"
-msgstr[1] "%8u bestanden\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u bestand\n"
+msgstr[1] "%12u bestanden\n"
-#: e2fsck/unix.c:209 misc/badblocks.c:984 misc/tune2fs.c:1978 misc/util.c:147
-#: resize/main.c:251
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "tijdens bepalen of %s aangekoppeld is."
-#: e2fsck/unix.c:227
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
-msgstr "WAARSCHUWING: %s is aangekoppeld!\n"
+msgid "Warning! %s is %s.\n"
+msgstr "Waarschuwing! %s is %s.\n"
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "Partitie %s is aangekoppeld. "
+msgid "%s is %s.\n"
+msgstr "%s is %s.\n"
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2767,8 +2894,7 @@ msgstr ""
"Kan niet doorgaan. Gestopt.\n"
"\n"
-#: e2fsck/unix.c:235
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2782,79 +2908,79 @@ msgstr ""
" Als u doorgaat **ZAL** dit tot **ZWARE** beschadigingen leiden.\n"
"\n"
-#: e2fsck/unix.c:239
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Wilt u echt doorgaan"
-#: e2fsck/unix.c:241
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "De controle is afgebroken.\n"
-#: e2fsck/unix.c:323
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " bevat een bestandssysteem met fouten"
-#: e2fsck/unix.c:325
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " is niet goed ontkoppeld"
-#: e2fsck/unix.c:327
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
-msgstr " het primaire superblok heeft andere functievlaggen gezet dan de reserveblokken"
+msgstr ""
+" het primaire superblok heeft andere functievlaggen gezet dan de "
+"reserveblokken"
-#: e2fsck/unix.c:331
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " is %u keer aangekoppeld geweest zonder controle"
-#: e2fsck/unix.c:338
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
msgstr " is schijnbaar het laatst gecontroleerd in de toekomst"
-#: e2fsck/unix.c:344
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " is gedurende %u dagen niet gecontroleerd"
-#: e2fsck/unix.c:353
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", gedwongen controle.\n"
-#: e2fsck/unix.c:386
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: schoon, %u/%u bestanden, %llu/%llu blokken"
-#: e2fsck/unix.c:404
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (controle is uitgesteld; computer loopt op accu)"
-#: e2fsck/unix.c:407
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (controle bij volgende aankoppeling)"
-#: e2fsck/unix.c:409
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (controle na %ld aankoppelingen)"
-#: e2fsck/unix.c:559
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "FOUT: kan /dev/null niet openen (%s)\n"
-#: e2fsck/unix.c:628
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Ongeldige versie van uitgebreide kenmerken.\n"
-#: e2fsck/unix.c:649
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Onbekende uitgebreide optie: %s\n"
-#: e2fsck/unix.c:674
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2863,48 +2989,47 @@ msgstr ""
"Syntaxfout in 'e2fsck'-configuratiebestand (%s, regel #%d)\n"
" %s\n"
-#: e2fsck/unix.c:743
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Fout tijdens valideren van bestandsdesriptor %d: %s\n"
-#: e2fsck/unix.c:747
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr "Ongeldige completeringsinformatie voor bestandsdescriptor."
-#: e2fsck/unix.c:762
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Slechts één van de opties -a, -p, -n of -y mag worden opgegeven."
-#: e2fsck/unix.c:783
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
-msgstr "De optie '-t' wordt niet ondersteund door deze versie van e2fsck.\n"
+msgstr "Optie '-t' wordt niet ondersteund door deze versie van e2fsck.\n"
-#: e2fsck/unix.c:814 e2fsck/unix.c:886 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Kan apparaat '%s' niet vinden."
-#: e2fsck/unix.c:865
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
-msgstr "De opties '-n' en '-D' gaan niet samen."
+msgstr "Opties '-n' en '-D' gaan niet samen."
-#: e2fsck/unix.c:870
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
-msgstr "De opties '-n' en '-c' gaan niet samen."
+msgstr "Opties '-n' en '-c' gaan niet samen."
-#: e2fsck/unix.c:875
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
msgstr "De opties '-n' en '-l' of '-L' gaan niet samen."
-#: e2fsck/unix.c:915
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "De opties '-c' en '-l' of '-L' kunnen niet samen gebruikt worden.\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
@@ -2913,7 +3038,7 @@ msgstr ""
"E2FSCK_JBD_DEBUG -- \"%s\" is geen geheel getal\n"
"\n"
-#: e2fsck/unix.c:972
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2924,11 +3049,20 @@ msgstr ""
"Ongeldig niet-numeriek argument van '-%c': \"%s\"\n"
"\n"
-#: e2fsck/unix.c:1074 e2fsck/unix.c:1079
+#: e2fsck/unix.c:1129
+#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+"Het MMP-interval is %u seconden, en de totale wachttijd is %u seconden. "
+"Even geduld...\n"
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
msgstr "tijdens controleren van MMP-blok"
-#: e2fsck/unix.c:1081 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
@@ -2936,46 +3070,49 @@ msgstr ""
"Als u zeker weet dat het bestandssysteem nergens gebruikt wordt,\n"
"geef dan deze opdracht: 'tune2fs -f -E clear_mmp {apparaat}'\n"
-#: e2fsck/unix.c:1130
-#, c-format
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Fout: de ext2fs-bibliotheek is te oud!\n"
-#: e2fsck/unix.c:1138
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "tijdens programma-initialisatie"
-#: e2fsck/unix.c:1149
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr " gebruik makend van %s, %s\n"
-#: e2fsck/unix.c:1161
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "voor interactieve reparaties is een terminal vereist"
-#: e2fsck/unix.c:1200
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s reservekopieblokken worden bekeken...\n"
# Gebruik van '--' in deze en volgende string is opzettelijk;
# één van deze strings wordt ingevuld voor de tweede %s hierboven.
-#: e2fsck/unix.c:1202
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Superblok is ongeldig --"
-#: e2fsck/unix.c:1203
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Groepsbeschrijvers zien er slecht uit --"
-#: e2fsck/unix.c:1215
+#: e2fsck/unix.c:1312
+#, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s tijdens gebruik van de reservekopieblokken"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: er wordt teruggevallen op het eerste superblok\n"
-#: e2fsck/unix.c:1242
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2985,33 +3122,31 @@ msgstr ""
"(Of het superblok is beschadigd.)\n"
"\n"
-#: e2fsck/unix.c:1248
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "Is dit misschien een partitie met lengte nul?\n"
-#: e2fsck/unix.c:1250
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
-msgstr "U dient %s-toegang tot het bestandssyteem te hebben, of root te zijn.\n"
+msgstr ""
+"U dient %s-toegang tot het bestandssyteem te hebben, of root te zijn.\n"
-#: e2fsck/unix.c:1255
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "Mogelijk een niet-bestaand apparaat of een swap-apparaat?\n"
-#: e2fsck/unix.c:1257
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr "Is bestandssysteem exclusief aangekoppeld of geopend door een ander programma?\n"
+msgstr ""
+"Is bestandssysteem exclusief aangekoppeld of geopend door een ander "
+"programma?\n"
-#: e2fsck/unix.c:1260
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr "Mogelijk een niet-bestaand apparaat?\n"
-#: e2fsck/unix.c:1263
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -3019,109 +3154,98 @@ msgstr ""
"De schijf is schrijfbeveiligd. Gebruik de optie '-n' om een\n"
"alleen-lezencontrole van het apparaat uit te voeren.\n"
-#: e2fsck/unix.c:1327
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Installeer een nieuwere versie van e2fsck!"
-#: e2fsck/unix.c:1373
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "tijdens controle van het ext3-journal van %s"
-#: e2fsck/unix.c:1384
-#, c-format
-msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+#: e2fsck/unix.c:1489
+msgid ""
+"Warning: skipping journal recovery because doing a read-only filesystem "
+"check.\n"
msgstr ""
"Waarschuwing: afspelen van journal wordt overgeslagen\n"
"omdat een alleen-lezencontrole uitgevoerd wordt.\n"
-#: e2fsck/unix.c:1397
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "Kan superblokvlaggen van %s niet zetten.\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "tijdens afspelen van het ext3-journal van %s"
-#: e2fsck/unix.c:1428
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
-msgstr "Bestandssysteem %s heeft functies ingeschakeld die niet ondersteund worden:"
+msgstr ""
+"Bestandssysteem %s heeft functies ingeschakeld die niet ondersteund worden:"
-#: e2fsck/unix.c:1444
-msgid "Warning: compression support is experimental.\n"
-msgstr "Waarschuwing: compressie-ondersteuning is nog experimenteel.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s: Waarschuwing: compressie-ondersteuning is nog experimenteel.\n"
-#: e2fsck/unix.c:1449
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"Deze 'e2fsck' is niet gecompileerd met 'htree'-ondersteuning,\n"
-"maar het bestandssysteem %s bevat 'htree'-mappen.\n"
-
-#: e2fsck/unix.c:1502
-msgid "while reading bad blocks inode"
-msgstr "tijdens lezen van slechteblokken-inode"
+"%s: Deze 'e2fsck' is niet gecompileerd met 'htree'-ondersteuning,\n"
+" maar het bestandssysteem %s bevat 'htree'-mappen.\n"
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1605
#, c-format
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s: %s tijdens lezen van slechteblokken-inode\n"
+
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Dit ziet er niet goed uit, maar we zullen doorgaan...\n"
-#: e2fsck/unix.c:1543
-msgid "Couldn't determine journal size"
-msgstr "Kan journal-grootte niet bepalen"
-
-#: e2fsck/unix.c:1546
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Aanmaken van journal (%d blokken): "
-#: e2fsck/unix.c:1553 misc/mke2fs.c:2535
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-" tijdens aanmaken van journal"
-
-#: e2fsck/unix.c:1556
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " voltooid.\n"
-#: e2fsck/unix.c:1557
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
"\n"
-"*** journal is opnieuw aangemaakt -- het bestandssysteem is nu weer ext3 ***\n"
+"*** journal is opnieuw aangemaakt -- het bestandssysteem is nu weer ext3 "
+"***\n"
-#: e2fsck/unix.c:1569
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "E2fsck wordt opnieuw gestart vanaf het begin...\n"
-#: e2fsck/unix.c:1573
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "tijdens wissen van de context"
-#: e2fsck/unix.c:1580
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: 'e2fsck' is geannuleerd.\n"
-#: e2fsck/unix.c:1585
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "afgebroken"
-#: e2fsck/unix.c:1597 e2fsck/util.c:66
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -3130,12 +3254,12 @@ msgstr ""
"\n"
"%s: ***** BESTANDSSYSTEEM IS VERANDERD *****\n"
-#: e2fsck/unix.c:1600
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** HERSTART UW SYSTEEM *****\n"
-#: e2fsck/unix.c:1608 e2fsck/util.c:72
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -3146,47 +3270,47 @@ msgstr ""
"%s: ********** WAARSCHUWING: bestandssysteem bevat nog fouten **********\n"
"\n"
-#: e2fsck/unix.c:1648
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr "tijdens zetten van controlesom van blokgroep"
-#: e2fsck/util.c:160 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "jJyY"
-#: e2fsck/util.c:161
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:175
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<j>"
-#: e2fsck/util.c:177
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:179
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (j/n)"
-#: e2fsck/util.c:194
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "geannuleerd!\n"
# src/main.c:417 src/main.c:418 src/main.c:483 src/main.c:484 src/main.c:489
# src/main.c:490 src/main.c:574
-#: e2fsck/util.c:209
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "ja\n"
# src/main.c:417 src/main.c:418 src/main.c:432 src/main.c:483 src/main.c:484
# src/main.c:489 src/main.c:490 src/main.c:574
-#: e2fsck/util.c:211
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "nee\n"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3195,7 +3319,7 @@ msgstr ""
"%s? nee\n"
"\n"
-#: e2fsck/util.c:225
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3204,38 +3328,38 @@ msgstr ""
"%s? ja\n"
"\n"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "yes"
msgstr "ja"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "no"
msgstr "nee"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps(): ongeldige bitkaartblokken voor %s"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "lezen van inode- en blok-bitkaarten"
-#: e2fsck/util.c:253
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "tijdens herlezen van bitkaarten voor %s"
-#: e2fsck/util.c:265
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "schrijven van blok- en inode-bitkaarten"
-#: e2fsck/util.c:270
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr "tijdens herschrijven van blok- en inode-bitkaarten voor %s"
-#: e2fsck/util.c:282
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3248,145 +3372,154 @@ msgstr ""
"%s: ONVERWACHTE INCONSISTENTIE; voer 'fsck' met de hand uit\n"
" (dat wil zeggen: zonder de opties '-a' of '-p').\n"
-#: e2fsck/util.c:363
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Gebruikt geheugen: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:367
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr "Gebruikt geheugen: %lu, "
-#: e2fsck/util.c:374
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "tijd: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:379
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "verlopen tijd: %6.3f\n"
-#: e2fsck/util.c:413 e2fsck/util.c:427
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr "tijdens lezen van inode %lu in %s"
-#: e2fsck/util.c:441 e2fsck/util.c:454
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr "tijdens schrijven van inode %lu in %s"
-#: e2fsck/util.c:603
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "tijdens reserveren van nulmakingsbuffer"
-#: e2fsck/util.c:755
-msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
-msgstr "ONVERWACHTE INCONSISTENTIE: het bestandssysteem wordt gewijzigd terwijl 'fsck' uitgevoerd wordt.\n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+"ONVERWACHTE INCONSISTENTIE: het bestandssysteem wordt gewijzigd terwijl "
+"'fsck' uitgevoerd wordt.\n"
#: misc/badblocks.c:69
msgid "done \n"
msgstr "voltooid \n"
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
"Gebruik: %s [-b blokgrootte] [-i invoerbestand] [-o uitvoerbestand]\n"
-" [-c aantal_blokken_tegelijk] [-d vertragingsfactor_tussen_leesacties]\n"
+" [-c aantal_blokken_tegelijk] [-d "
+"vertragingsfactor_tussen_leesacties]\n"
" [-e maximum_aantal_slechte_blokken] [-p aantal_controles]\n"
" [-t testpatroon [-t testpatroon [...]]] [-fnsvw]\n"
" apparaat [eindblok [beginblok]]\n"
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-"%s: De opties '-n' en '-w' gaan niet samen.\n"
+"%s: Opties '-n' en '-w' gaan niet samen.\n"
"\n"
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr "%6.2f%% gedaan, %s verlopen (%d/%d/%d fouten)"
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Test wordt uitgevoerd met dit willekeurige patroon: "
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Test wordt uitgevoerd met patroon 0x"
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "tijdens 'seek'"
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "Vreemde waarde (%ld) bij leespoging\n"
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "tijdens leegmaken van de buffers"
-#: misc/badblocks.c:489 misc/badblocks.c:750
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
-msgstr "tijdens voorbereiding van het langslopen van de lijst met slechte blokken"
+msgstr ""
+"tijdens voorbereiding van het langslopen van de lijst met slechte blokken"
-#: misc/badblocks.c:503 misc/badblocks.c:603 misc/badblocks.c:760
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "tijdens reserveren van buffers"
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Controleren van blokken %lu tot %lu\n"
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Zoeken naar slechte blokken in alleen-lezen-modus\n"
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Zoeken naar slechte blokken (alleen-lezen-test): "
-#: misc/badblocks.c:529 misc/badblocks.c:635 misc/badblocks.c:677
-#: misc/badblocks.c:823
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr "Te veel slechte blokken -- controle is afgebroken\n"
-#: misc/badblocks.c:610
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Zoeken naar slechte blokken in lezen-en-schrijven-modus\n"
-#: misc/badblocks.c:612 misc/badblocks.c:773
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Van blok %lu tot %lu\n"
-#: misc/badblocks.c:667
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Lezen en vergelijken: "
-#: misc/badblocks.c:772
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
-msgstr "Zoeken naar slechte blokken in niet-destructieve lezen-en-schrijven-modus\n"
+msgstr ""
+"Zoeken naar slechte blokken in niet-destructieve lezen-en-schrijven-modus\n"
-#: misc/badblocks.c:778
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr "Zoeken naar slechte blokken (niet-destructieve lezen-en-schrijven-test)\n"
+msgstr ""
+"Zoeken naar slechte blokken (niet-destructieve lezen-en-schrijven-test)\n"
-#: misc/badblocks.c:785
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3394,95 +3527,104 @@ msgstr ""
"\n"
"Interrupt ontvangen, bezig met opschonen...\n"
-#: misc/badblocks.c:868
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "tijdens schrijven van testpatroon, blok %lu"
-#: misc/badblocks.c:989 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s is aangekoppeld; "
-#: misc/badblocks.c:991
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"maar 'badblocks' wordt gedwongen uitgevoerd.\n"
"Hoop dat /etc/mtab onjuist is.\n"
-#: misc/badblocks.c:996
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "het is niet veilig om 'badblocks' uit te voeren!\n"
-#: misc/badblocks.c:1001 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s wordt blijkbaar gebruikt door het systeem; "
-#: misc/badblocks.c:1004
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "maar 'badblocks' wordt gedwongen uitgevoerd.\n"
-#: misc/badblocks.c:1024
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "ongeldige %s: %s"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "kan geen geheugen reserveren voor testpatroon -- %s"
-#: misc/badblocks.c:1164
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr "In alleen-lezen-modus mag slechts één testpatroon gegeven worden"
-#: misc/badblocks.c:1170
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "In alleen-lezen-modus is een willekeurig testpatroon niet toegestaan"
-#: misc/badblocks.c:1184
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
msgstr "Kan de apparaatgrootte niet bepalen; geef de grootte handmatig op.\n"
-#: misc/badblocks.c:1190
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "tijdens bepalen van apparaatgrootte"
-#: misc/badblocks.c:1195
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "laatste blok"
-#: misc/badblocks.c:1201
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "eerste blok"
-#: misc/badblocks.c:1204
+#: misc/badblocks.c:1209
+#, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "ongeldig beginblok: %llu -- moet kleiner dan %llu zijn"
+
+#: misc/badblocks.c:1216
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
-msgstr "ongeldig beginblok: %lu -- moet kleiner dan %lu zijn"
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "ongeldig beginblok: %llu -- moet een 32-bits waarde zijn"
-#: misc/badblocks.c:1260
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "tijdens opstellen van lijst van slechte blokken in geheugen"
-#: misc/badblocks.c:1275
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr "invoerbestand heeft ongeldige opmaak"
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "tijdens toevoegen aan lijst van slechte blokken in geheugen"
-#: misc/badblocks.c:1299
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Controle is voltooid; %u slechte blokken gevonden (%d/%d/%d fouten).\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Gebruik: %s [-RVf] [-+=AacDdeijsSu] [-v versie] bestanden...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Gebruik: %s [-RVf] [-+=AaCcDdeijsSu] [-v VERSIE] BESTAND...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "ongeldige versie: %s\n"
@@ -3497,87 +3639,91 @@ msgstr "tijdens opvragen van de status van %s"
msgid "while reading flags on %s"
msgstr "tijdens lezen van vlaggen op %s"
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr "Het uitzetten van de 'extent'-functievlag wordt niet ondersteund op %s"
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "Vlaggen van %s gezet als "
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "tijdens zetten van vlaggen op %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Versie van %s gezet als %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "tijdens zetten van versie op %s"
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Kan geen padvariabele reserveren in chattr_dir_proc()"
-#: misc/chattr.c:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "'=' gaat niet samen met '-' en '+'\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "Gebruik '-v', '=', '-' of '+'.\n"
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr "Gebruik: %s [-bfhixV] [-o superblock=<nummer>] [-o blocksize=<getal>] apparaat\n"
+msgstr ""
+"Gebruik: %s [-bfhixV] [-o superblock=<nummer>] [-o blocksize=<getal>] "
+"apparaat\n"
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
msgstr "blokken"
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
msgstr "clusters"
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Groep %lu: (Blokken "
-#: misc/dumpe2fs.c:194
+#: misc/dumpe2fs.c:205
#, c-format
-msgid " Checksum 0x%04x, unused inodes %u\n"
-msgstr " Controlesom 0x%04x, ongebruikte inodes %u\n"
+msgid " Checksum 0x%04x"
+msgstr " Controlesom is 0x%04x"
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr " (0x%04x WERD VERWACHT)"
+
+#: misc/dumpe2fs.c:208
+#, c-format
+msgid ", unused inodes %u\n"
+msgstr ", %u ongebruikte inodes\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s superblok op "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Primair"
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Reservekopie"
-#: misc/dumpe2fs.c:204
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Groepsbeschrijvers op "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3585,20 +3731,19 @@ msgstr ""
"\n"
" Blokken voor groepsbeschrijverstabel gereserveerd op "
-#: misc/dumpe2fs.c:215
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Groepsbeschrijver op "
-#: misc/dumpe2fs.c:221
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Blok-bitkaart op "
-#: misc/dumpe2fs.c:225
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", Inode-bitkaart op "
-#: misc/dumpe2fs.c:229
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3606,7 +3751,7 @@ msgstr ""
"\n"
" Inodetabel op "
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
@@ -3615,50 +3760,53 @@ msgstr ""
"\n"
" %u vrije %s, %u vrije inodes, %u mappen%s"
-#: misc/dumpe2fs.c:242
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u ongebruikte inodes\n"
-#: misc/dumpe2fs.c:245
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Vrije blokken: "
-#: misc/dumpe2fs.c:256
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Vrije inodes: "
-#: misc/dumpe2fs.c:287
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "tijdens printen van lijst van slechte blokken"
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Slechte blokken: %u"
-#: misc/dumpe2fs.c:320 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "tijdens lezen van journal-inode"
-#: misc/dumpe2fs.c:326
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr "tijdens openen van journal-inode"
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr "tijdens lezen van journal-superblok"
-#: misc/dumpe2fs.c:342
-#, c-format
+#: misc/dumpe2fs.c:364
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Magisch getal van journal-superblok is ongeldig!\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr "Journal-functies: "
-#: misc/dumpe2fs.c:355
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Grootte van journal: "
-#: misc/dumpe2fs.c:366
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
@@ -3669,15 +3817,20 @@ msgstr ""
"Journal-sequentie: 0x%08x\n"
"Begin van journal: %u\n"
-#: misc/dumpe2fs.c:385 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr "Journal-foutmnummer: %d\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "tijdens lezen van journal-superblok"
-#: misc/dumpe2fs.c:393
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Kan magische getallen van journal-superblok niet vinden"
-#: misc/dumpe2fs.c:397
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3696,27 +3849,26 @@ msgstr ""
"Begin van journal: %u\n"
"Aantal journal-gebruikers: %u\n"
-#: misc/dumpe2fs.c:410
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Journal-gebruikers: %s\n"
-#: misc/dumpe2fs.c:426 misc/mke2fs.c:663 misc/tune2fs.c:1137
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Kan geen geheugen reserveren om opties te ontleden!\n"
-#: misc/dumpe2fs.c:452
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Ongeldig superblok opgegeven: %s\n"
-#: misc/dumpe2fs.c:467
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Ongeldige blokgrootte opgegeven: %s\n"
-#: misc/dumpe2fs.c:478
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3732,25 +3884,24 @@ msgstr ""
"\n"
"Ongeldige optie opgegeven: %s\n"
"\n"
-"Uitgebreide opties worden gescheiden door komma's,\n"
+"Uitgebreide opties worden gescheiden door komma's;\n"
"hun argument wordt voorafgegaan door een '='-teken.\n"
"\n"
"Geldige uitgebreide opties zijn:\n"
" superblock=<superbloknummer>\n"
" blocksize=<blokgrootte>\n"
-#: misc/dumpe2fs.c:538 misc/mke2fs.c:1521
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tgebruik makend van %s\n"
-#: misc/dumpe2fs.c:574 misc/e2image.c:1290 misc/tune2fs.c:1923
-#: resize/main.c:310
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Kan geen geldig bestandssysteem-superblok vinden.\n"
-#: misc/dumpe2fs.c:599
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3759,40 +3910,267 @@ msgstr ""
"\n"
"%s: %s: fout tijdens lezen van bitkaarten: %s\n"
-#: misc/e2image.c:87
+#: misc/e2image.c:101
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Gebruik: %s [-rsIQ] apparaat imagebestand\n"
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
+msgstr "Gebruik: %s [-r|-Q] [-fr] apparaat imagebestand\n"
-#: misc/e2image.c:135
+#: misc/e2image.c:103
#, c-format
+msgid " %s -I device image-file\n"
+msgstr " %s -I apparaat imagebestand\n"
+
+#: misc/e2image.c:104
+#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+" %s -ra [-cfnp] [-o bronpositie] [-O doelpositie] bron-bs [doel-"
+"bs]\n"
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+msgid "while allocating buffer"
+msgstr "tijdens reserveren van buffer"
+
+#: misc/e2image.c:174
+#, c-format
+msgid "Writing block %llu\n"
+msgstr "Schrijven van blok %llu\n"
+
+#: misc/e2image.c:188
+#, c-format
+msgid "error writing block %llu"
+msgstr "fout tijdens schrijven van blok %llu"
+
+#: misc/e2image.c:191
+#, fuzzy
+msgid "error in generic_write()"
+msgstr "fout in write()"
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
msgstr "Fout: header-grootte is groter dan wrt_size\n"
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
msgstr "Kan geen header-buffer reserveren.\n"
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "tijdens schrijven van superblok"
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "tijdens aanmaken van inodetabel"
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "tijdens schrijven van blok-bitkaart"
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "tijdens schrijven van inode-bitkaart"
-#: misc/e2image.c:1322
+#: misc/e2image.c:502
+#, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Beschadigd mapblok %llu: onjuiste 'rec_len' (%d)\n"
+
+#: misc/e2image.c:514
+#, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Beschadigd mapblok %llu: onjuiste 'name_len' (%d)\n"
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%llu / %llu blokken (%d%%)"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr "Kopiëren van "
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+"Nu stoppen zal het bestandssysteem vernietigen; onderbreek opnieuw als u het "
+"zeker weet.\n"
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr " nog %s bij %.2f MB/s"
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, c-format
+msgid "error reading block %llu"
+msgstr "fout tijdens lezen van blok %llu"
+
+#: misc/e2image.c:715
+#, fuzzy, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr "%llu / %llu blokken (%d%%)"
+
+#: misc/e2image.c:719
+#, fuzzy, c-format
+msgid "at %.2f MB/s"
+msgstr " nog %s bij %.2f MB/s"
+
+#: misc/e2image.c:755
+msgid "while allocating l1 table"
+msgstr "tijdens reserveren van l1-tabel"
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr "tijdens reserveren van l2-cache"
+
+# XXX "while putting"??
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+"Waarschuwing: er zitten nog tabellen in de cache terwijl deze opgeslagen "
+"wordt;\n"
+"er zullen gegevens verloren gaan, dus de image kan ongeldig zijn.\n"
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr "tijdens reserveren van 'ext2_qcow2_image'"
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr "tijdens initialiseren van 'ext2_qcow2_image'"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+"**Programmafout**: meerdere opeenvolgende 'refcount'-blokken aangemaakt!\n"
+
+#: misc/e2image.c:1269
+msgid "while allocating block bitmap"
+msgstr "tijdens reserveren van blok-bitkaart"
+
+# XXX maybe 'scrambled'?
+#: misc/e2image.c:1278
+msgid "while allocating scramble block bitmap"
+msgstr "tijdens reserveren van gehusselde blok-bitkaart"
+
+#: misc/e2image.c:1285
+msgid "Scanning inodes...\n"
+msgstr "Scannen van inodes...\n"
+
+#: misc/e2image.c:1297
+msgid "Can't allocate block buffer"
+msgstr "Kan geen blokbuffer reserveren"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, c-format
+msgid "while iterating over inode %u"
+msgstr "tijdens iteratie over inode %u"
+
+# XXX uppercase QCOW2, add space
+#: misc/e2image.c:1381
+#, fuzzy
+msgid "Raw and qcow2 images cannot be installed"
+msgstr "'raw'- en QCOW2-images kunnen niet geïnstalleerd worden"
+
+#: misc/e2image.c:1403
+msgid "error reading bitmaps"
+msgstr "fout tijdens lezen van bitkaarten"
+
+#: misc/e2image.c:1415
+msgid "while opening device file"
+msgstr "tijdens openen van apparaatbestand"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "tijdens aanmaken van inodetabel"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr "Optie '-a' kan alleen gebruikt worden met 'raw'- of QCOW2-images."
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr "Posities zijn alleen toegestaan met 'raw'-images."
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr "Verplaatsingsmodus is alleen toegestaan met 'raw'-images."
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr "Verplaatsingsmodus vereist 'all-data'-modus"
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr "controle op aankoppeling"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+"\n"
+"Het draaien van 'e2image' op een schrijfbaar aangekoppeld bestandssysteem\n"
+"kan resulteren in een inconsistente image die onbruikbaar is voor "
+"debugging.\n"
+"Gebruik optie '-f' als u dit echt wilt doen.\n"
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr "Een QCOW2-image kan niet naar standaarduitvoer geschreven worden.\n"
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr "Image (%s) is gecomprimeerd.\n"
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr "Image (%s) is versleuteld.\n"
+
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr "tijdens converteren van een qcow2-image (%s) naar een raw-imagebestand (%s)"
+msgstr ""
+"tijdens converteren van een qcow2-image (%s) naar een raw-imagebestand (%s)"
+
+#: misc/e2image.c:1639
+msgid "The -c option only supported in raw mode\n"
+msgstr "Optie '-c' wordt alleen ondersteund in 'raw'-modus.\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr ""
+"Optie '-c' wordt niet ondersteund bij schrijven naar standaarduitvoer.\n"
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr "tijdens reserveren van 'check_buf'"
+
+# XXX add 'is' before 'only'
+#: misc/e2image.c:1657
+msgid "The -p option only supported in raw mode\n"
+msgstr "Optie '-p' wordt alleen ondersteund in 'raw'-modus.\n"
+
+#: misc/e2image.c:1667
+#, fuzzy, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr "Er waren %d blokken die reeds de te kopiëren gegevens bevatten.\n"
#: misc/e2label.c:58
#, c-format
@@ -3814,7 +4192,7 @@ msgstr "e2label: fout tijdens lezen van superblok\n"
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: dit is geen ext2-bestandssysteem\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2073
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Waarschuwing: label is te lang, wordt afgekapt.\n"
@@ -3829,7 +4207,7 @@ msgstr "e2label: kan niet opnieuw 'seek' doen naar superblok\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: fout tijdens schrijven van superblok\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Gebruik: e2label apparaat [nieuw_label]\n"
@@ -3851,11 +4229,14 @@ msgstr "Lezen van transactiegegevens is mislukt: %s\n"
#: misc/e2undo.c:70
#, c-format
msgid "The file system Mount time didn't match %u\n"
-msgstr "aankoppelingstijd van bestandssysteem komt niet overeen met %u uit transactiebestand\n"
+msgstr ""
+"aankoppelingstijd van bestandssysteem komt niet overeen met %u uit "
+"transactiebestand\n"
#: misc/e2undo.c:89
msgid "The file system UUID didn't match \n"
-msgstr "UUID's van bestandssysteem en uit transactiebestand komen niet overeen\n"
+msgstr ""
+"UUID's van bestandssysteem en uit transactiebestand komen niet overeen\n"
#: misc/e2undo.c:163
#, c-format
@@ -3886,17 +4267,17 @@ msgstr "Een transactie met grootte %zd is afgespeeld op locatie %llu.\n"
msgid "Failed write %s\n"
msgstr "Schrijven is mislukt: %s\n"
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "WAARSCHUWING: kan %s niet openen: %s\n"
-#: misc/fsck.c:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "WAARSCHUWING: foute indeling op regel %d van %s\n"
-#: misc/fsck.c:371
+#: misc/fsck.c:370
msgid ""
"WARNING: Your /etc/fstab does not contain the fsck passno\n"
"\tfield. I will kludge around things for you, but you\n"
@@ -3908,37 +4289,37 @@ msgstr ""
" de eerstvolgende gelegenheid toe dienen te voegen.\n"
"\n"
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: niet gevonden\n"
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: wait: geen dochterprocessen meer?!?\n"
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Waarschuwing: %s voor apparaat %s werd beëindigd met signaal %d.\n"
-#: misc/fsck.c:623
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: de status is %x, dit zou nooit voor mogen komen.\n"
-#: misc/fsck.c:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "Afgesloten met %s (afsluitwaarde %d).\n"
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: Fout %d tijdens uitvoering van fsck.%s voor %s\n"
-#: misc/fsck.c:743
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3946,43 +4327,46 @@ msgstr ""
"Óf geen óf alle bestandsssysteemsoorten bij optie -t\n"
"dienen voorafgegaan te worden door 'no' of '!'.\n"
-#: misc/fsck.c:762
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "Kan geen geheugen reserveren voor bestandssysteemsoorten.\n"
-#: misc/fsck.c:885
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
msgstr ""
"%s: ongeldige regel in /etc/fstab wordt overgeslagen:\n"
"zesde veld van 'bind'-aankoppeling is niet nul (fsck-volgnummer)\n"
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: kan %s niet controleren: fsck.%s niet gevonden\n"
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Alle bestandssystemen worden gecontroleerd.\n"
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--wachten-- (volgnummer %d)\n"
-#: misc/fsck.c:1079
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
"Gebruik: fsck [-AMNPRTV] [-C [descriptor]] [-t bestandssysteemsoort]\n"
" [bestandssysteemopties] [bestandssysteem...]\n"
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: te veel apparaten\n"
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: te veel argumenten\n"
@@ -4002,56 +4386,63 @@ msgstr "Tijdens lezen van vlaggen op %s"
msgid "While reading version on %s"
msgstr "Tijdens lezen van versie op %s"
-#: misc/mke2fs.c:116
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
"Gebruik: %s [-b blokgrootte] [-c|-l bestandsnaam] [-C clustergrootte]\n"
-" [-g blokken_per_groep] [-G metagroepgrootte] [-i bytes_per_inode]\n"
-" [-I inode-grootte] [-J journal-opties] [-L label] [-N aantal_inodes]\n"
-" [-m percentage_gereserveerde_blokken] [-M laatste_aankoppelingspunt]\n"
-" [-o naam_van_aanmakende_besturingssyteem] [-O functie[,...]]\n"
-" [-r bestandssysteemversie] [-T bestandssysteemtype] [-U UUID]\n"
-" [-E uitgebreide_optie[,...]] [-jnqvFKSV] apparaat [aantal_blokken]\n"
-
-#: misc/mke2fs.c:218
+" [-g blokken_per_groep] [-G flexgroepgrootte] [-i bytes_per_inode]\n"
+" [-I inode-grootte] [-J journal-opties] [-L label] [-N "
+"aantal_inodes]\n"
+" [-m percentage_gereserveerde_blokken] [-M "
+"laatste_aankoppelingspunt]\n"
+" [-o naam_van_aanmakende_besturingssyteem] [-O functie[,...]] [-U "
+"UUID]\n"
+" [-r bestandssysteemversie] [-t bestandssysteemsoort] [-T "
+"gebruikstype]\n"
+" [-E uitgebreide_optie[,...]] [-jnqvDFKSV] apparaat "
+"[aantal_blokken]\n"
+
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Uitgevoerde opdracht is: %s\n"
-#: misc/mke2fs.c:222
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "tijdens uitvoering van '%s'"
-#: misc/mke2fs.c:229
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "tijdens verwerken van de gemaakte lijst van slechte blokken"
-#: misc/mke2fs.c:256
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
-msgstr "Blok %d in het primaire superblok of de groepsbeschrijvers is slecht.\n"
+msgstr ""
+"Blok %d in het primaire superblok of de groepsbeschrijvers is slecht.\n"
-#: misc/mke2fs.c:258
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Blokken %u tot en met %u moeten goed zijn\n"
"om een bestandssysteem aan te kunnen maken.\n"
-#: misc/mke2fs.c:261
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Gestopt...\n"
-#: misc/mke2fs.c:281
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -4062,15 +4453,15 @@ msgstr ""
"beginnend bij blok %u, bevat slechte blokken.\n"
"\n"
-#: misc/mke2fs.c:300
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "tijdens het markeren van slechte blokken (als zijnde in gebruik)"
-#: misc/mke2fs.c:317
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Schrijven van inodetabellen: "
-#: misc/mke2fs.c:338
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
@@ -4079,72 +4470,78 @@ msgstr ""
"\n"
"Kan %d blokken in inodetabel niet schrijven, beginnend bij %llu: %s\n"
-#: misc/mke2fs.c:352 misc/mke2fs.c:2170 misc/mke2fs.c:2422
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
msgstr "voltooid \n"
-#: misc/mke2fs.c:363
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "tijdens aanmaken van hoofdmap"
-#: misc/mke2fs.c:370
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "tijdens lezen van hoofd-inode"
-#: misc/mke2fs.c:384
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "tijdens zetten van eigenaar van hoofd-inode"
-#: misc/mke2fs.c:402
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "tijdens aanmaken van /lost+found"
-#: misc/mke2fs.c:409
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "tijdens zoeken van /lost+found"
-#: misc/mke2fs.c:422
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "tijdens uitbreiden van /lost+found"
-#: misc/mke2fs.c:437
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "tijdens zetten van slechteblokken-inode"
-#: misc/mke2fs.c:464
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Onvoldoende geheugen tijdens wissen van sectoren %d-%d.\n"
-#: misc/mke2fs.c:474
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Waarschuwing: kan blok 0 niet lezen: %s\n"
-#: misc/mke2fs.c:490
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Waarschuwing: kan sector %d niet wissen: %s\n"
-#: misc/mke2fs.c:506
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "tijdens initialiseren van het journal-superblok"
-#: misc/mke2fs.c:514
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Nulmaken van journal-apparaat: "
-#: misc/mke2fs.c:526
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "tijdens nulmaken van journal-apparaat (blok %llu, nummer %d)"
-#: misc/mke2fs.c:544
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "tijdens schrijven van journal-superblok"
-#: misc/mke2fs.c:559
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"Van grootte veranderen van bestandssysteem op %s naar %llu blokken (van "
+"%dK).\n"
+
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
@@ -4153,124 +4550,165 @@ msgstr ""
"Waarschuwing: %llu ongebruikte blokken.\n"
"\n"
-#: misc/mke2fs.c:564
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Bestandssysteemlabel=%s\n"
-#: misc/mke2fs.c:567
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr "Soort besturingssysteem: %s\n"
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Blokgrootte=%u (log=%u)\n"
-#: misc/mke2fs.c:573
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Clustergrootte=%u (log=%u)\n"
-#: misc/mke2fs.c:577
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Fragmentgrootte=%u (log=%u)\n"
-#: misc/mke2fs.c:579
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "'stride'=%u blokken, 'stripe'-breedte=%u blokken\n"
-#: misc/mke2fs.c:581
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u inodes, %llu blokken\n"
-#: misc/mke2fs.c:583
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu blokken (%2.2f%%) gereserveerd voor systeembeheer\n"
-#: misc/mke2fs.c:586
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Eerste gegevensblok=%u\n"
-#: misc/mke2fs.c:588
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr "Hoofdmap-eigenaar=%u:%u\n"
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximum aantal bestandssysteemblokken=%lu\n"
-#: misc/mke2fs.c:592
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u blokgroepen\n"
-#: misc/mke2fs.c:594
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u blokgroep\n"
-#: misc/mke2fs.c:597
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u blokken per groep, %u clusters per groep\n"
-#: misc/mke2fs.c:600
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u blokken per groep, %u fragmenten per groep\n"
# src/main.c:425
-#: misc/mke2fs.c:602
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u inodes per groep\n"
-#: misc/mke2fs.c:609
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Bestandssysteemlabel=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Superblokreservekopieën opgeslagen in blokken: "
-#: misc/mke2fs.c:688 misc/tune2fs.c:1165
+# XXX manpage does not mention -O 64bit
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr "%s vereist '-O 64bit'\n"
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr "'%s' moet vóór 'resize=%u' staan\n"
+
+#: misc/mke2fs.c:783
+#, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "Ongeldige 'desc_size': '%s'\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "Ongeldige nieuwe grootte: %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
-msgstr "Ongeldig mmp_update_interval: %s\n"
+msgstr "Ongeldig 'mmp_update_interval': %s\n"
-#: misc/mke2fs.c:702
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Ongeldig superblok opgegeven: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Ongeldig argument van 'stride': %s\n"
-#: misc/mke2fs.c:717
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Ongeldig argument van 'stripe_width': %s\n"
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Ongeldig argument van 'resize': %s\n"
-#: misc/mke2fs.c:747
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr "De maximum grootte moet groter zijn dan de huidige bestandssysteemgrootte.\n"
+msgstr ""
+"De maximum grootte moet groter zijn dan de huidige bestandssysteemgrootte.\n"
-#: misc/mke2fs.c:771
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
-msgstr "Live vergroten of verkleinen is niet mogelijk op een bestandssysteem van versie 0.\n"
+msgstr ""
+"Live vergroten of verkleinen is niet mogelijk op een bestandssysteem van "
+"versie 0.\n"
-#: misc/mke2fs.c:809
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Ongeldige hoofdmap-eigenaar: '%s'\n"
+
+#: misc/mke2fs.c:976
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Ongeldig argument van 'quotatype': %s\n"
-#: misc/mke2fs.c:820
-#, c-format
+#: misc/mke2fs.c:987
+#, fuzzy, c-format
msgid ""
"\n"
"Bad option(s) specified: %s\n"
@@ -4279,11 +4717,17 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -4293,21 +4737,25 @@ msgstr ""
"\n"
"Ongeldige optie opgegeven: %s\n"
"\n"
-"Uitgebreide opties worden gescheiden door komma's,\n"
+"Uitgebreide opties worden gescheiden door komma's;\n"
"hun argument wordt voorafgegaan door een '='-teken.\n"
"\n"
"Geldige uitgebreide opties zijn:\n"
-" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/geschreven>\n"
-" stripe_width=<aantal blokken per stripe> (meestal stride × aantal schijven)\n"
+" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/"
+"geschreven>\n"
+" stripe_width=<aantal blokken per stripe> (meestal stride × aantal "
+"schijven)\n"
" resize=<maximum grootte van bestandssysteem in blokken>\n"
" lazy_itable_init=<0 voor uitschakelen, 1 voor inschakelen>\n"
" lazy_journal_init=<0 voor uitschakelen, 1 voor inschakelen>\n"
+" root_uid=<UID van hoofdmap>\n"
+" root_gid=<GID van hoofdmap>\n"
" test_fs\n"
" discard\n"
" nodiscard\n"
" quotatype=<usr OF grp>\n"
-#: misc/mke2fs.c:840
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4318,7 +4766,7 @@ msgstr ""
"Waarschuwing: 'stripe'-breedte %u is geen even veelvoud van 'stride' %u.\n"
"\n"
-#: misc/mke2fs.c:879
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4328,17 +4776,17 @@ msgstr ""
" %s\n"
# Dit gaat over het argument van optie -O.
-#: misc/mke2fs.c:892 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Ongeldige bestandssysteemfunctie: %s\n"
-#: misc/mke2fs.c:904 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Ongeldige aankoppelingsoptie: %s\n"
-#: misc/mke2fs.c:1042
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
@@ -4347,8 +4795,7 @@ msgstr ""
"\n"
"Uw mke2fs.conf definieert geen bestandssysteemtype %s.\n"
-#: misc/mke2fs.c:1046
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
@@ -4356,12 +4803,11 @@ msgstr ""
"U dient waarschijnlijk een nieuwer mke2fs.conf-bestand te installeren.\n"
"\n"
-#: misc/mke2fs.c:1050
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr "Gestopt...\n"
-#: misc/mke2fs.c:1090
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4372,122 +4818,128 @@ msgstr ""
"Waarschuwing: bestandssysteemtype %s is niet gedefinieerd in mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1248
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Kan geen geheugen reserveren voor nieuwe PATH.\n"
-#: misc/mke2fs.c:1289
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Initialiseren van profile is mislukt (fout: %ld).\n"
-#: misc/mke2fs.c:1329
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "ongeldige blokgrootte: %s"
-#: misc/mke2fs.c:1333
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
-msgstr "Waarschuwing: blokgrootte %d is op de meeste systemen niet bruikbaar.\n"
+msgstr ""
+"Waarschuwing: blokgrootte %d is op de meeste systemen niet bruikbaar.\n"
-#: misc/mke2fs.c:1349
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
msgstr "ongeldige clustergrootte: %s"
-#: misc/mke2fs.c:1358
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr "'optie '-R' is verouderd; gebruik '-E'"
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Ongeldig aantal blokken per groep"
-#: misc/mke2fs.c:1363
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "argument van -g (blokken per groep) is geen veelvoud van 8"
-#: misc/mke2fs.c:1371
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Ongeldig getal voor metagroepgrootte"
-#: misc/mke2fs.c:1377
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "Metagroepgrootte moet een macht van 2 zijn"
-#: misc/mke2fs.c:1387
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "ongeldige inodeverhouding %s (min %d / max %d)"
-#: misc/mke2fs.c:1397
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgid "invalid inode size - %s"
+msgstr "ongeldige grootte van inode: %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
msgstr ""
"Waarschuwing: optie '-K' is verouderd en zou u niet meer moeten gebruiken;\n"
"gebruik in plaats daarvan de uitgebreide optie '-E nodiscard'.\n"
-#: misc/mke2fs.c:1411
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "onvoldoende geheugen in bad_blocks_filename()"
-#: misc/mke2fs.c:1421
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "ongeldig percentage gereserveerde blokken: %s"
# lib/prange.c:299 lib/prange.c:316
-#: misc/mke2fs.c:1439
-#, c-format
-msgid "bad revision level - %s"
-msgstr "ongeldig versienummer: %s"
-
-#: misc/mke2fs.c:1451
+#: misc/mke2fs.c:1642
#, c-format
-msgid "invalid inode size - %s"
-msgstr "ongeldige grootte van inode: %s"
+msgid "bad num inodes - %s"
+msgstr "ongeldig aantal inodes: %s"
# lib/prange.c:299 lib/prange.c:316
-#: misc/mke2fs.c:1471
+#: misc/mke2fs.c:1659
#, c-format
-msgid "bad num inodes - %s"
-msgstr "ongeldig aantal inodes: %s"
+msgid "bad revision level - %s"
+msgstr "ongeldig versienummer: %s"
-#: misc/mke2fs.c:1488
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
msgstr "Optie '-t' mag slechts één keer gegeven worden"
-#: misc/mke2fs.c:1496
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
msgstr "Optie '-T' mag slechts één keer gegeven worden"
-#: misc/mke2fs.c:1546 misc/mke2fs.c:2490
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "tijdens openen van journal-apparaat %s\n"
-#: misc/mke2fs.c:1552
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
-msgstr "Blokgrootte %d van journal-apparaat is kleiner dan minimum blokgrootte %d.\n"
+msgstr ""
+"Blokgrootte %d van journal-apparaat is kleiner dan minimum blokgrootte %d.\n"
-#: misc/mke2fs.c:1558
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Blokgrootte van het journal-apparaat wordt gebruikt: %d\n"
-#: misc/mke2fs.c:1569
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "ongeldige blokken '%s' op apparaat '%s'"
-#: misc/mke2fs.c:1579
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "bestandssysteem"
-#: misc/mke2fs.c:1592 resize/main.c:379
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "tijdens bepalen van grootte van bestandssysteem"
-#: misc/mke2fs.c:1598
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4495,7 +4947,7 @@ msgstr ""
"Kan de grootte van het apparaat niet bepalen;\n"
"u dient zelf de grootte van het bestandssysteem aan te geven.\n"
-#: misc/mke2fs.c:1605
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4508,16 +4960,35 @@ msgstr ""
" in-gebruik-zijn van een gewijzigde partitie. Mogelijk dient u uw\n"
" computer te herstarten om de juiste partitietabel te verkrijgen.\n"
-#: misc/mke2fs.c:1622
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr "Bestandssysteem is groter dan de schijnbare apparaatgrootte."
-#: misc/mke2fs.c:1642
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "Verwerken van lijst met bestandssysteemsoorten is mislukt\n"
-#: misc/mke2fs.c:1696
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "tijdens bepalen van de hardware-sectorgrootte"
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr "tijdens bepalen van de fysieke sectorgrootte"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr "tijdens instellen van de blokgrootte; te klein voor apparaat\n"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+"Waarschuwing: de gegeven blokgrootte %d is kleiner dan de fysieke "
+"sectorgrootte %d van het apparaat\n"
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
@@ -4526,113 +4997,134 @@ msgstr ""
"%s: De grootte (0x%llx blokken) van apparaat %s kan niet uitgedrukt\n"
" worden in 32 bits bij een blokgrootte van %d.\n"
-#: misc/mke2fs.c:1712
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
msgstr "Lijst met bestandssysteemsoorten voor mke2fs.conf: "
-#: misc/mke2fs.c:1719
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
-msgstr "Extra functies worden niet ondersteund op een bestandssysteem van versie 0.\n"
+msgstr ""
+"Extra functies worden niet ondersteund op een bestandssysteem van versie 0.\n"
-#: misc/mke2fs.c:1726
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
-msgstr "Schaarse superblokken zijn niet mogelijk op een bestandssysteem van versie 0.\n"
+msgstr ""
+"Schaarse superblokken zijn niet mogelijk op een bestandssysteem van versie "
+"0.\n"
-#: misc/mke2fs.c:1738
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr "Een journal is niet mogelijk op een bestandssysteem van versie 0.\n"
-#: misc/mke2fs.c:1752
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "ongeldig percentage gereserveerde blokken: %lf"
-#: misc/mke2fs.c:1768
-#, c-format
+# XXX option should '-O extent', singular
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-"De functies 'resize_inode' en 'meta_bg' gaan niet samen.\n"
-"Ze kunnen niet beide ingeschakeld worden.\n"
+"Extents MOETEN ingeschakeld zijn voor een 64-bits bestandssysteem.\n"
+"Geef optie '-O extent' om dit te doen.\n"
-#: misc/mke2fs.c:1785
-msgid "while trying to determine hardware sector size"
-msgstr "tijdens bepalen van de hardware-sectorgrootte"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr "De clustergrootte mag niet kleiner zijn dan de blokgrootte.\n"
-#: misc/mke2fs.c:1791
-msgid "while trying to determine physical sector size"
-msgstr "tijdens bepalen van de fysieke sectorgrootte"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr "het opgeven van een clustergrootte vereist de 'bigalloc'-functie"
-#: misc/mke2fs.c:1824
-msgid "while setting blocksize; too small for device\n"
-msgstr "tijdens instellen van de blokgrootte; te klein voor apparaat\n"
-
-#: misc/mke2fs.c:1829
-#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr "Waarschuwing: de gegeven blokgrootte %d is kleiner dan de fysieke sectorgrootte %d van het apparaat\n"
-
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "Waarschuwing: kan logische schijfopbouw van %s niet verkrijgen.\n"
-#: misc/mke2fs.c:1863
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Uitlijning van %s is %lu bytes verschoven.\n"
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2072
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
msgstr ""
"Dit kan zeer slechte prestaties tot gevolg hebben;\n"
"(her)partitionering wordt aanbevolen.\n"
-#: misc/mke2fs.c:1876
+#: misc/mke2fs.c:2093
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "Blokken van %d bytes zijn te groot voor dit systeem (max %d)."
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:2097
#, 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 ""
"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:1915
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr "Kan 'bigalloc'-functie niet ondersteunen zonder 'extents'-functie"
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"De functies 'resize_inode' en 'meta_bg' gaan niet samen.\n"
+"Ze kunnen niet beide ingeschakeld worden.\n"
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+"\n"
+"Waarschuwing: de 'bigalloc'-functie is nog in ontwikkeling.\n"
+"Zie https://ext4.wiki.kernel.org/index.php/Bigalloc voor meer informatie.\n"
+"\n"
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
-msgstr "het reserveren van blokken voor bestandssysteemvergroting wordt niet ondersteund op een niet-schaars bestandssysteem"
+msgstr ""
+"het reserveren van blokken voor bestandssysteemvergroting wordt niet "
+"ondersteund op een niet-schaars bestandssysteem"
-#: misc/mke2fs.c:1924
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "teller van blokken-per-groep ligt buiten het toegestane bereik"
-#: misc/mke2fs.c:1939
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr "De functie 'flex_bg' is niet ingeschakeld, dus de metagroepgrootte mag niet opgegeven worden"
+msgstr ""
+"De functie 'flex_bg' is niet ingeschakeld, dus de metagroepgrootte mag niet "
+"opgegeven worden"
-#: misc/mke2fs.c:1951
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "ongeldige inode-grootte %d (min %d / max %d)"
-#: misc/mke2fs.c:1969
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "te veel inodes (%llu) -- inodeverhouding verhogen?"
-#: misc/mke2fs.c:1976
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "te veel inodes (%llu) -- geef minder dan 2^32 op"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
@@ -4644,7 +5136,7 @@ msgstr ""
" geef een hogere bytes-per-inodeverhouding op (-i),\n"
" of verklein het aantal inodes (-N).\n"
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4656,42 +5148,43 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2123
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
msgstr "tijdens aanmaken van 'undo'-bestand\n"
-#: misc/mke2fs.c:2149
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
msgstr "Verwerpen van blokken: "
-#: misc/mke2fs.c:2165
+#: misc/mke2fs.c:2439
msgid "failed - "
msgstr "is mislukt - "
-#: misc/mke2fs.c:2270
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "tijdens aanmaken van superblok"
-#: misc/mke2fs.c:2279
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr "Verwerping is gelukt en zal nullen retourneren -- wissen van inode-tabel wordt overgeslagen\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+"Verwerping is gelukt en zal nullen retourneren -- wissen van inode-tabel "
+"wordt overgeslagen\n"
-#: misc/mke2fs.c:2362
+# XXX uppercase OS
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "onbekend besturingssysteem: %s"
-#: misc/mke2fs.c:2414
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr "Reserveren van groepstabellen: "
-#: misc/mke2fs.c:2418
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "tijdens reserveren van bestandssysteemtabellen"
-#: misc/mke2fs.c:2427
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
@@ -4699,25 +5192,25 @@ msgstr ""
"\n"
" tijdens converteren van subcluster-bitkaart"
-#: misc/mke2fs.c:2459
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "tijdens nulmaken van blok %llu aan het eind van het bestandssysteem"
-#: misc/mke2fs.c:2472
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "tijdens reserveren van uitbreidingsblokken"
-#: misc/mke2fs.c:2483 misc/tune2fs.c:640
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "journal"
-#: misc/mke2fs.c:2495
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Toevoegen van journal aan apparaat %s: "
-#: misc/mke2fs.c:2502
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4726,44 +5219,48 @@ msgstr ""
"\n"
" tijdens toevoegen van journal aan apparaat %s"
-#: misc/mke2fs.c:2507 misc/mke2fs.c:2539 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "voltooid\n"
-#: misc/mke2fs.c:2516
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr "Aanmaken van journal wordt overgeslagen wegens optie '-S'.\n"
-#: misc/mke2fs.c:2527
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Aanmaken van journal (%u blokken): "
-#: misc/mke2fs.c:2546 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+" tijdens aanmaken van journal"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
"\n"
-"Fout tijdens inschakelen van MMP (bescherming tegen meervoudige aankoppelingen)."
+"Fout tijdens inschakelen van MMP (bescherming tegen meervoudige "
+"aankoppelingen)."
-#: misc/mke2fs.c:2551
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
msgstr ""
"Bescherming tegen meervoudige aankoppelingen is ingeschakeld\n"
"met een bijwerkingsinterval van %d seconden.\n"
-#: misc/mke2fs.c:2564
-#, c-format
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Schrijven van superblokken en bestandssysteem-metagegevens: "
-#: misc/mke2fs.c:2571
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4771,8 +5268,7 @@ msgstr ""
"\n"
"Waarschuwing: problemen tijdens schrijven van superblokken."
-#: misc/mke2fs.c:2573
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4781,7 +5277,6 @@ msgstr ""
"\n"
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
msgstr "Gebruik: mklost+found\n"
@@ -4821,48 +5316,52 @@ msgstr "Kan grootte van %s niet bepalen: %s"
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s: kop=%3d sec=%3d cil=%4d begin=%8d grootte=%8lu einde=%8d\n"
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Controleer het bestandssysteem met 'e2fsck'.\n"
-#: misc/tune2fs.c:116
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
"Gebruik: %s [-c maximum_aantal_aankoppelingen] [-C aankoppelingental]\n"
-" [-e gedrag_bij_fouten] [-E uitgebreide_optie[,...]] [-f] [-g groep]\n"
+" [-e gedrag_bij_fouten] [-E uitgebreide_optie[,...]] [-f] [-g "
+"groep]\n"
" [-i interval[d|w|m]] [-j] [-J journal-opties] [-l] [-L label]\n"
-" [-m percentage_gereserveerde_blokken] [-M laatste_aankoppelingspunt]\n"
+" [-m percentage_gereserveerde_blokken] [-M "
+"laatste_aankoppelingspunt]\n"
" [-o [^]aankoppelingsopties[,...]] [-O [^]functie[,...]]\n"
" [-p MMP-bijwerkingsinterval] [-r aantal_gereserveerde_blokken]\n"
" [-T tijdstip_van_laatste_controle] [-u gebruiker] [-U UUID]\n"
-" [-I nieuwe_inode-grootte] apparaat\n"
+" [-I nieuwe_inode-grootte] [-Q quota-opties] apparaat\n"
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "tijdens openen van extern journal"
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s: is geen journal-apparaat.\n"
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Geen journal-superblok gevonden!\n"
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr "UUID van bestandssysteem niet gevonden op journal-apparaat.\n"
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
@@ -4870,38 +5369,37 @@ msgstr ""
"Kan journal-apparaat niet lokaliseren. Het is NIET verwijderd.\n"
"Gebruik optie '-f' om het ontbrekende journal-apparaat te verwijderen.\n"
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Journal is verwijderd.\n"
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "tijdens lezen van bitkaarten"
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "tijdens wissen van journal-inode"
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "tijdens schrijven van journal-inode"
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
msgstr "(En herstart daarna uw computer!)\n"
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr "Het uitschakelen van bestandssysteemfunctie '%s' is niet mogelijk.\n"
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr "Het inschakelen van bestandssysteemfunctie '%s' is niet mogelijk.\n"
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4909,7 +5407,7 @@ msgstr ""
"De journal-vlag mag alleen gewist worden wanneer het bestandssysteem\n"
"ontkoppeld is of aangekoppeld als alleen-lezen.\n"
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4917,7 +5415,16 @@ msgstr ""
"De reddingsvlag van het journal is gezet.\n"
"Voer eerst 'e2fsck' uit, voordat u de journal-vlag wist.\n"
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Het veranderen van de inode-grootte is niet mogelijk voor\n"
+"bestandssystemen met ingeschakelde 'flex_bg'-functievlag.\n"
+
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
@@ -4927,14 +5434,14 @@ msgstr ""
"niet ingeschakeld worden als het bestandssysteem\n"
"aangekoppeld of alleen-lezen is.\n"
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
msgstr ""
"Bescherming tegen meervoudige aankoppelingen is ingeschakeld\n"
"met een bijwerkingsinterval van %d seconden.\n"
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
@@ -4943,20 +5450,20 @@ msgstr ""
"niet uitgeschakeld worden als het bestandssysteem\n"
"alleen-lezen is.\n"
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
msgstr "Fout tijdens lezen van bitkaarten\n"
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
msgstr "Magisch getal in MMP-blok klopt niet -- verwacht: %x, gevonden: %x\n"
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
msgstr "tijdens lezen van MMP-blok"
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
@@ -4964,7 +5471,7 @@ msgstr ""
"Het uitschakelen van bestandssysteemfunctie 'flex_bg' zou het\n"
"bestandssysteem inconsistent maken.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4972,7 +5479,7 @@ msgstr ""
"De 'huge_file'-functievlag mag alleen gewist worden wanneer het\n"
"bestandssysteem ontkoppeld is of aangekoppeld als alleen-lezen.\n"
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
@@ -4980,11 +5487,11 @@ msgstr ""
"\n"
"Waarschuwing: '^quota'-optie overstijgt '-Q'-argumenten.\n"
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Het bestandssysteem heeft al een journal.\n"
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4993,21 +5500,21 @@ msgstr ""
"\n"
" tijdens openen van journal op %s\n"
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Aanmaken van journal op apparaat %s: "
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "tijdens toevoegen van bestandssysteem aan journal op %s"
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Aanmaken van journal-inode: "
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -5015,16 +5522,17 @@ msgstr ""
"\n"
" tijdens aanmaken van journal-inode"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr "Kan geen geheugen reserveren om quota-opties te ontleden!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
@@ -5039,99 +5547,99 @@ msgstr ""
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Kan datum/tijd-specificatie niet ontleden: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "onjuist aankoppelingenaantal: %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "onjuist argument van -e (gedrag bij een fout): %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "onjuiste GID of groepsnaam: %s"
# lib/prange.c:299 lib/prange.c:316
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "onjuist interval: %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "onjuiste verhouding (%s) voor gereserveerde blokken"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "Optie '-o' mag slechts één keer gegeven worden"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "Optie '-o' mag slechts één keer gegeven worden"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "onjuist aantal gereserveerde blokken: %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "onjuiste UID of gebruikersnaam: %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "ongeldige grootte van inode: %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Inode-grootte moet een macht van 2 zijn -- niet %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "MMP-bijwerkingsinterval is te groot: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
msgstr[0] "Het MMP-bijwerkingsinterval is op %lu seconde gezet\n"
msgstr[1] "Het MMP-bijwerkingsinterval is op %lu seconden gezet\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Ongeldig argument van 'stride': %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Ongeldig argument van 'stripe_width': %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Ongeldig hash-algoritme: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Het standaard-hash-algoritme is op %s (%d) gezet\n"
-#: misc/tune2fs.c:1257
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -5151,43 +5659,47 @@ msgstr ""
"\n"
"Ongeldige optie opgegeven.\n"
"\n"
-"Uitgebreide opties worden gescheiden door komma's,\n"
+"Uitgebreide opties worden gescheiden door komma's;\n"
"hun argument wordt voorafgegaan door een '='-teken.\n"
"\n"
"Geldige uitgebreide opties zijn:\n"
" clear_mmp\n"
" hash_alg=<hash-algoritme>\n"
" mount_opts=<uitgebreide standaard aankoppelingsopties>\n"
-" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/geschreven>\n"
-" stripe_width=<aantal blokken per stripe> (meestal stride × aantal schijven)\n"
+" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/"
+"geschreven>\n"
+" stripe_width=<aantal blokken per stripe> (meestal stride × aantal "
+"schijven)\n"
" test_fs\n"
" ^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
msgstr "Lezen van inode-bitkaart is mislukt\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
msgstr "Lezen van blok-bitkaart is mislukt\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "te verplaatsen blokken"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr "Reserveren van blok-bitkaart tijdens inode-grootteverandering is mislukt.\n"
+msgstr ""
+"Reserveren van blok-bitkaart tijdens inode-grootteverandering is mislukt.\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr "Er is onvoldoende ruimte om de inode-grootte te vergroten. \n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
-msgstr "Herplaatsen van blokken tijdens inode-grootteverandering is mislukt. \n"
+msgstr ""
+"Herplaatsen van blokken tijdens inode-grootteverandering is mislukt. \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
@@ -5195,16 +5707,16 @@ msgstr ""
"Fout tijdens veranderen van de inode-grootte.\n"
"Voer 'e2undo' uit om de bestandssysteemwijzigingen ongedaan te maken. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Kan geen geheugen reserveren voor 'tdb'-bestandsnaam\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
msgstr "tijdens verwijderen van %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -5216,7 +5728,7 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
@@ -5226,62 +5738,66 @@ msgstr ""
"Probeer het te repareren met:\n"
" e2fsck -f %s\n"
-#: misc/tune2fs.c:1936
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr "De inode-grootte is al %lu\n"
-#: misc/tune2fs.c:1942
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
+msgstr "Het verkleinen van de inode-grootte wordt niet ondersteund.\n"
+
+#: misc/tune2fs.c:1987
#, c-format
-msgid "Shrinking the inode size is not supported\n"
-msgstr "Het verkleinen van de inode-grootte is niet mogelijk.\n"
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "ongeldige inode-grootte %lu (max %d)\n"
-#: misc/tune2fs.c:1989
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Het maximum aantal aankoppelingen is op %d gezet\n"
-#: misc/tune2fs.c:1995
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Het huidige aantal aankoppelingen is op %d gezet\n"
-#: misc/tune2fs.c:2000
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Gedrag bij fouten is op %d gezet\n"
-#: misc/tune2fs.c:2005
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "GID van gereserveerde blokken is op %lu gezet\n"
-#: misc/tune2fs.c:2010
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "interval tussen controles is te groot (%lu)"
-#: misc/tune2fs.c:2017
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Interval tussen controles is op %lu seconden gezet\n"
-#: misc/tune2fs.c:2024
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Percentage gereserveerde blokken is op %g%% gezet (%llu blokken)\n"
-#: misc/tune2fs.c:2030
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "aantal gereserveerde blokken is te groot (%llu)"
-#: misc/tune2fs.c:2037
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Het aantal gereserveerde blokken is op %llu gezet\n"
-#: misc/tune2fs.c:2043
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -5289,7 +5805,17 @@ msgstr ""
"\n"
"Het bestandssysteem is al zuinig met superblokken.\n"
-#: misc/tune2fs.c:2050
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Het veranderen van de inode-grootte is niet mogelijk voor\n"
+"bestandssystemen met ingeschakelde 'flex_bg'-functievlag.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -5298,45 +5824,53 @@ msgstr ""
"\n"
"De zuinig-met-superblokkenvlag is aangezet. %s"
-#: misc/tune2fs.c:2055
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
"Het uitzetten van de zuinig-met-superblokkenvlag is niet mogelijk.\n"
-#: misc/tune2fs.c:2063
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Tijd van laatste controle is op %s gezet\n"
-#: misc/tune2fs.c:2069
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "UID van gereserveerde blokken is op %lu gezet\n"
-#: misc/tune2fs.c:2101
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr "Fout in gebruik van 'clear_mmp'. Het moet samengaan met '-f'.\n"
-#: misc/tune2fs.c:2119
-msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr ""
"De quota-functie mag alleen gewijzigd worden wanneer het bestandssysteem\n"
"ontkoppeld is.\n"
-#: misc/tune2fs.c:2152
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"De UUID mag alleen gewijzigd worden wanneer het bestandssysteem ontkoppeld "
+"is.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Onjuiste UUID-indeling\n"
-#: misc/tune2fs.c:2165
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"De inode-grootte mag alleen gewijzigd worden wanneer het bestandssysteem\n"
"ontkoppeld is.\n"
-#: misc/tune2fs.c:2173
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
@@ -5344,41 +5878,80 @@ msgstr ""
"Het veranderen van de inode-grootte is niet mogelijk voor\n"
"bestandssystemen met ingeschakelde 'flex_bg'-functievlag.\n"
-#: misc/tune2fs.c:2186
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "De inode-groote is op %lu gezet\n"
-#: misc/tune2fs.c:2189
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
msgstr "Het veranderen van de inode-grootte is mislukt. \n"
-#: misc/tune2fs.c:2200
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr "De 'stride'-lengte is op %d gezet\n"
-#: misc/tune2fs.c:2205
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "De 'stripe'-breedte is op %d gezet\n"
-#: misc/tune2fs.c:2212
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "De uitgebreide standaard aankoppelingsopties zijn op '%s' gezet\n"
-#: misc/util.c:74
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Toch doorgaan? (j,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Toch doorgaan? (j,n) "
-#: misc/util.c:89
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "onjuist aankoppelingenaantal: %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "onjuist aankoppelingenaantal: %s"
+
+#: misc/util.c:135
+#, c-format
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Kan de status van %s niet opvragen -- %s\n"
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "normaal bestand"
-#: misc/util.c:92
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "Kan %s niet openen: %s"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -5386,34 +5959,44 @@ msgstr ""
"\n"
"Het apparaat bestaat blijkbaar niet; heeft u het juist opgegeven?\n"
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s is geen blok-apparaat.\n"
-#: misc/util.c:132
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " bevat een bestandssysteem met fouten"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " bevat een bestandssysteem met fouten"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s is het hele apparaat, niet slechts een partitie!\n"
-#: misc/util.c:154
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "'mke2fs' wordt gedwongen uitgevoerd. Hoop dat /etc/mtab onjuist is.\n"
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "zal hier geen %s maken!\n"
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "'mke2fs' wordt gedwongen uitgevoerd.\n"
-#: misc/util.c:182
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr "Kan geen geheugen reserveren om journal-opties te ontleden!\n"
-#: misc/util.c:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
@@ -5422,7 +6005,8 @@ msgstr ""
"\n"
"Kan geen journal-apparaat vinden dat overeenkomt met %s\n"
-#: misc/util.c:228
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5433,6 +6017,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -5450,7 +6035,7 @@ msgstr ""
"De grootte van het journal is minimaal 1024 en maximaal 10240000 blokken.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -5458,7 +6043,7 @@ msgstr ""
"\n"
"Bestandssysteem is te klein voor een journal.\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5469,7 +6054,7 @@ msgstr ""
"De gevraagde journal-afmeting is %d blokken; maar deze dient\n"
"tussen de 1024 en de 10.240.000 blokken te liggen. Gestopt.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -5477,7 +6062,7 @@ msgstr ""
"\n"
"Journal-afmeting is te groot voor bestandssysteem.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -5597,7 +6182,6 @@ msgstr[0] "%s en één opvolgende UUID\n"
msgstr[1] "%s en %d opvolgende UUID's\n"
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
msgstr "Lijst van UUID's:\n"
@@ -5630,7 +6214,7 @@ msgstr "# (debug) Extent dump:\n"
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "# (debug)\tNum=%llu Size=%llu, Cursor=%llu, Sorted=%llu\n"
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -5639,55 +6223,59 @@ msgstr ""
"Gebruik: %s [-d debugvlaggen] [-fFMpP] apparaat [nieuwe_grootte]\n"
"\n"
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Uitbreiden van inodetabel"
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Verplaatsen van blokken"
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Scannen van inodetabel"
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Bijwerken van inode-verwijzingen"
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Verplaatsen van inodetabel"
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Onbekende stap?!?"
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Begin van stap %d (max = %lu)\n"
-#: resize/main.c:263
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+"\n"
+"Het van grootte veranderen van een 'bigalloc'-bestandssysteem is nog\n"
+"onvoldoende getest. Doorgaan is geheel voor eigen risico! Gebruik\n"
+"de dwangoptie als u toch door wilt gaan.\n"
+"\n"
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "tijdens openen van %s"
-#: resize/main.c:275
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "tijdens opvragen van status van %s"
-#: resize/main.c:336
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: De functie 'flex_bg' zonder de functie 'resize_inode'\n"
-" wordt door 'resize2fs' niet ondersteund.\n"
-
-#: resize/main.c:349 resize/main.c:457
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
@@ -5696,30 +6284,31 @@ msgstr ""
"Voer eerst 'e2fsck -f %s' uit.\n"
"\n"
-#: resize/main.c:353
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Geschatte minimum grootte van het bestandssysteem: %llu\n"
-#: resize/main.c:389
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Ongeldige nieuwe grootte: %s\n"
-#: resize/main.c:397
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
-msgstr "Nieuwe grootte is te groot om uitgedrukt te kunnen worden in 32 bits.\n"
+msgstr ""
+"Nieuwe grootte is te groot om uitgedrukt te kunnen worden in 32 bits.\n"
-#: resize/main.c:409
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Nieuwe grootte is kleiner dan minimum (%llu).\n"
-#: resize/main.c:415
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr "Ongeldige lengte voor 'stride'"
-#: resize/main.c:439
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
@@ -5730,7 +6319,7 @@ msgstr ""
"U vroeg om een nieuwe grootte van %llu blokken.\n"
"\n"
-#: resize/main.c:446
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
@@ -5739,17 +6328,19 @@ msgstr ""
"Het bestandssysteem is al %llu blokken groot. Er is niets te doen!\n"
"\n"
-#: resize/main.c:461
+#: resize/main.c:456
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
-msgstr "Van grootte veranderen van bestandssysteem op %s naar %llu blokken (van %dK).\n"
+msgstr ""
+"Van grootte veranderen van bestandssysteem op %s naar %llu blokken (van "
+"%dK).\n"
-#: resize/main.c:470
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "tijdens veranderen van de grootte van %s"
-#: resize/main.c:473
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
@@ -5758,7 +6349,7 @@ msgstr ""
"Voer 'e2fsck -fy %s' uit om het bestandssysteem\n"
"te repareren na de afgebroken grootteverandering.\n"
-#: resize/main.c:479
+#: resize/main.c:474
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
@@ -5767,91 +6358,120 @@ msgstr ""
"Het bestandssysteem op %s is nu %llu blokken groot.\n"
"\n"
-#: resize/main.c:494
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
msgstr "tijdens inkorten van %s"
-#: resize/online.c:40
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "De kernel ondersteunt het live vergroten/verkleinen niet"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
"Bestandssysteem op %s is aangekoppeld op %s;\n"
"het vergroten/verkleinen zal live gedaan moeten worden.\n"
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
msgstr "Het live krimpen wordt niet ondersteund"
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr "Bestandssysteem ondersteunt live vergroten/verkleinen niet"
-#: resize/online.c:70
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Niet genoeg gereserveerde GDT-blokken om grootte te kunnen veranderen"
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+"De kernel ondersteunt het vergroten/verkleinen van\n"
+"een bestandssysteem met deze afmetingen niet"
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "tijdens openen van aankoppelingspunt %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr "Oude interface voor grootteverandering is gevraagd.\n"
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "Toegang geweigerd voor het vergroten/verkleinen van bestandssysteem"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "Tijdens controle op ondersteuning voor live vergroten/verkleinen"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr ""
-"De kernel ondersteunt het vergroten/verkleinen van\n"
-"een bestandssysteem met deze afmetingen niet"
-
-#: resize/online.c:119
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
msgstr "De kernel ondersteunt het live vergroten/verkleinen niet"
-#: resize/online.c:152
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr "Uitvoeren van live verandering van %s naar %llu blokken (van %dK).\n"
-#: resize/online.c:162
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr "Tijdens uitbreiden van de laatste groep"
-#: resize/online.c:216
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr "Tijdens toevoegen van groep #%d"
-#: resize/online.c:227
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
msgstr ""
"Bestandssysteem op %s is aangekoppled op %s;\n"
"op dit systeem is live vergroten/verkleinen niet mogelijk.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "aantal inodes (%llu) moet kleiner zijn dan %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "gereserveerde blokken"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "blokken voor metagegevens"
-#: resize/resize2fs.c:1735
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "blokken voor metagegevens"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Zou nooit mogen gebeuren: de 'resize'-inode is beschadigd!\n"
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42-WIP"
-msgstr "EXT2FS-bibliotheek versie 1.42-WIP"
+#, fuzzy
+msgid "EXT2FS Library version 1.42.10"
+msgstr "EXT2FS-bibliotheek versie 1.42.9"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
@@ -5935,7 +6555,8 @@ msgstr "Bestandssysteemrevisie is te hoog"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Poging tot schrijven naar bestandssysteem dat geopend is voor alleen-lezen"
+msgstr ""
+"Poging tot schrijven naar bestandssysteem dat geopend is voor alleen-lezen"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
@@ -5966,11 +6587,11 @@ msgid "Can't read an inode bitmap"
msgstr "Kan een inode-bitkaart niet lezen"
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
+msgid "Can't write a block bitmap"
msgstr "Kan een blok-bitkaart niet schrijven"
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
+msgid "Can't read a block bitmap"
msgstr "Kan een blok-bitkaart niet lezen"
#: lib/ext2fs/ext2_err.c:42
@@ -6027,7 +6648,8 @@ msgstr "**Interne programmafout** in ext2fs_expand_dir()"
#: lib/ext2fs/ext2_err.c:55
msgid "Not enough space to build proposed filesystem"
-msgstr "Er is onvoldoende ruimte om het voorgestelde bestandssysteem te creëren"
+msgstr ""
+"Er is onvoldoende ruimte om het voorgestelde bestandssysteem te creëren"
#: lib/ext2fs/ext2_err.c:56
msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
@@ -6059,7 +6681,8 @@ msgstr "Poging om het eind van blok-bitkaart voorbij het echte eind te smurfen"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr "Poging om het eind van inode-bitkaart voorbij het echte eind te smurfen"
+msgstr ""
+"Poging om het eind van inode-bitkaart voorbij het echte eind te smurfen"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
@@ -6432,6 +7055,50 @@ msgstr "MMP: bestandssysteem is nog in gebruik"
msgid "MMP: open with O_DIRECT failed"
msgstr "MMP: openen met 'O_DIRECT' is mislukt"
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr "Grootte van blokgroepsbeschrijver is onjuist"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr "Controlesom van inode komt niet overeen met inode"
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr "Controlesom van inode-bitkaart komt niet overeen met bitkaart"
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr "Controlesom van extent-blok komt niet overeen met extent-blok"
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr "Map-blok heeft geen ruimte voor een controlesom"
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr "Controlesom van map-blok komt niet overeen met map-blok"
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr "Controlesom van uitgebreidekenmerken-blok komt niet overeen met blok"
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr "Controlesom van superblok komt niet overeen met superblok"
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr "Ongeldig controlesom-algoritme"
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr "Controlesom van MMP-blok komt niet overeen met MMP-blok"
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr "Ext2-bestand bestaat al"
+
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
msgstr "Profile versie 0.0"
@@ -6450,7 +7117,8 @@ msgstr "Profile-relatie niet gevonden"
#: e2fsck/prof_err.c:15
msgid "Attempt to add a relation to node which is not a section"
-msgstr "Poging tot het toevoegen van een relatie aan een knoop die geen sectie is"
+msgstr ""
+"Poging tot het toevoegen van een relatie aan een knoop die geen sectie is"
#: e2fsck/prof_err.c:16
msgid "A profile section header has a non-zero value"
@@ -6557,6 +7225,54 @@ msgstr "Ongeldig geheel getal"
msgid "Bad magic value in profile_file_data_t"
msgstr "Ongeldig magisch getal in 'profile_file_data_t'"
+#~ msgid ""
+#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/"
+#~ "s \n"
+#~ msgstr ""
+#~ "\b\b\b\b\b\b\b\b\b\b\b\b\bEr zijn %llu / %llu blokken gekopieerd (%llu%%) "
+#~ "in %s bij %.2f MB/s \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Warning: the quota feature is still under development\n"
+#~ "See https://ext4.wiki.kernel.org/index.php/Quota for more information\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Waarschuwing: de 'quota'-functie is nog in ontwikkeling.\n"
+#~ "Zie https://ext4.wiki.kernel.org/index.php/Quota voor meer informatie.\n"
+#~ "\n"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Kan de status van %s niet opvragen -- %s\n"
+
+#~ msgid "Clearing extent flag not supported on %s"
+#~ msgstr ""
+#~ "Het uitzetten van de 'extent'-functievlag wordt niet ondersteund op %s"
+
+#~ msgid ""
+#~ "%s: The combination of flex_bg and\n"
+#~ "\t!resize_inode features is not supported by resize2fs.\n"
+#~ msgstr ""
+#~ "%s: De functie 'flex_bg' zonder de functie 'resize_inode'\n"
+#~ " wordt door 'resize2fs' niet ondersteund.\n"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "Partitie %s is aangekoppeld. "
+
+#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
+#~ msgstr ""
+#~ "Groepsbeschrijver %g heeft een ongeïnitialiseerde blok-bitkaart maar de "
+#~ "inode-bitkaart is in gebruik.\n"
+
+#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
+#~ msgstr ""
+#~ "Inode %i zou niet de 'EOFBLOCKS_FL'-vlag gezet moeten hebben (grootte "
+#~ "%Is, lblk %r)\n"
+
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "Kan journal-grootte niet bepalen"
+
#~ msgid "Missing indirect block not present"
#~ msgstr "Ontbrekend indirect blok is afwezig"
@@ -6573,7 +7289,9 @@ msgstr "Ongeldig magisch getal in 'profile_file_data_t'"
#~ msgstr "ongeldige fragmentgrootte: %s"
#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
-#~ msgstr "Waarschuwing: fragmenten worden niet ondersteund; optie '-f' wordt genegeerd\n"
+#~ msgstr ""
+#~ "Waarschuwing: fragmenten worden niet ondersteund; optie '-f' wordt "
+#~ "genegeerd\n"
#~ msgid "Calling BLKDISCARD from %llu to %llu "
#~ msgstr "Aanroepen van BLKDISCARD van %llu tot %llu "
@@ -6585,13 +7303,16 @@ msgstr "Ongeldig magisch getal in 'profile_file_data_t'"
#~ msgstr "Journal is NIET verwijderd.\n"
#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
-#~ msgstr "Superblok heeft journal-vlag niet gezet, maar heeft wel een ext3-journal %s.\n"
+#~ msgstr ""
+#~ "Superblok heeft journal-vlag niet gezet, maar heeft wel een ext3-journal "
+#~ "%s.\n"
#~ msgid "Error while deleting extent: %m\n"
#~ msgstr "Fout tijdens verwijderen van extent: %m\n"
#~ msgid "Recreate journal to make the filesystem ext3 again?\n"
-#~ msgstr "Het journal heraanmaken om het bestandssysteem weer ext3 te maken?\n"
+#~ msgstr ""
+#~ "Het journal heraanmaken om het bestandssysteem weer ext3 te maken?\n"
#~ msgid "bad block size - %s"
#~ msgstr "ongeldige blokgrootte: %s"
@@ -6602,9 +7323,6 @@ msgstr "Ongeldig magisch getal in 'profile_file_data_t'"
#~ msgid "%s failed for %s: %s\n"
#~ msgstr "%s is mislukt voor %s: %s\n"
-#~ msgid "open"
-#~ msgstr "Openen"
-
#~ msgid "HDIO_GETGEO ioctl"
#~ msgstr "Opvragen van geometrie"
@@ -6612,10 +7330,9 @@ msgstr "Ongeldig magisch getal in 'profile_file_data_t'"
#~ msgstr "Opvragen van grootte"
#~ msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
-#~ msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige hashwaarde (%N, moet 0 zijn).\n"
-
-#~ msgid "while calling ext2fs_block_iterate"
-#~ msgstr "tijdens aanroep van ext2fs_block_iterate()"
+#~ msgstr ""
+#~ "Een uitgebreid kenmerk in inode %i heeft een ongeldige hashwaarde (%N, "
+#~ "moet 0 zijn).\n"
#~ msgid "while calling iterator function"
#~ msgstr "tijdens aanroep van iterator-functie"
@@ -6630,7 +7347,8 @@ msgstr "Ongeldig magisch getal in 'profile_file_data_t'"
#~ msgstr "tijdens schrijven van inodetabel (groep %d)"
#~ msgid "Pass 0: Doing byte-swap of filesystem\n"
-#~ msgstr "Stap 0: Omwisseling van hoge en lage bytes in hele bestandssysteem\n"
+#~ msgstr ""
+#~ "Stap 0: Omwisseling van hoge en lage bytes in hele bestandssysteem\n"
#~ msgid ""
#~ "%s: the filesystem must be freshly checked using fsck\n"
@@ -6676,4 +7394,5 @@ msgstr "Ongeldig magisch getal in 'profile_file_data_t'"
#~ "\n"
#~ msgid "Warning: %d-byte inodes not usable on older systems\n"
-#~ msgstr "Waarschuwing: inodes van %d bytes zijn onbruikbaar op oudere systemen\n"
+#~ msgstr ""
+#~ "Waarschuwing: inodes van %d bytes zijn onbruikbaar op oudere systemen\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 3ef0fcf0..902cd53c 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index aa161193..d53e694c 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,7 +1,7 @@
# Polish translation for e2fsprogs.
-# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Theodore Tso (msgids)
+# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Theodore Tso (msgids)
# This file is distributed under the same license as the e2fsprogs package.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2011.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2013.
#
#. 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,
@@ -63,85 +63,88 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42\n"
+"Project-Id-Version: e2fsprogs 1.42.9\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-11-29 16:03-0500\n"
-"PO-Revision-Date: 2011-12-20 17:33+0100\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2014-01-03 20:08+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Wadliwy blok %u poza zakresem - zignorowany.\n"
#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
-msgstr "podczas sprawdzania poprawno¶ci i-wêz³a wadliwych bloków"
+msgstr "podczas sprawdzania poprawności i-węzła wadliwych bloków"
#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
-msgstr "podczas odczytu i-wêz³a wadliwych bloków"
+msgstr "podczas odczytu i-węzła wadliwych bloków"
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1239 e2fsck/unix.c:1324 misc/badblocks.c:1215
-#: misc/badblocks.c:1223 misc/badblocks.c:1237 misc/badblocks.c:1249
-#: misc/dumpe2fs.c:572 misc/e2image.c:1170 misc/e2image.c:1288
-#: misc/e2image.c:1301 misc/mke2fs.c:193 misc/tune2fs.c:1907 resize/main.c:308
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
-msgstr "podczas próby otworzenia %s"
+msgstr "podczas próby otworzenia %s"
#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
-msgstr "podczas próby popen '%s'"
+msgstr "podczas próby popen '%s'"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
-msgstr "podczas wczytywania z pliku listy wadliwych bloków"
+msgstr "podczas wczytywania z pliku listy wadliwych bloków"
#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
-msgstr "podczas uaktualniania i-wêz³a wadliwego bloku"
+msgstr "podczas uaktualniania i-węzła wadliwego bloku"
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr "Uwaga: znaleziono niedopuszczalny blok %u w i-wê¼le wadliwego bloku. Wyczyszczono.\n"
+msgstr ""
+"Uwaga: znaleziono niedopuszczalny blok %u w i-węźle wadliwego bloku. "
+"Wyczyszczono.\n"
#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
-msgstr "B³±d przy odczycie bloku %lu (%s) podczas %s. "
+msgstr "BÅ‚Ä…d przy odczycie bloku %lu (%s) podczas %s. "
#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
-msgstr "B³±d przy odczycie bloku %lu (%s). "
+msgstr "BÅ‚Ä…d przy odczycie bloku %lu (%s). "
#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
-msgstr "Zignorowaæ b³±d"
+msgstr "Zignorować błąd"
#: e2fsck/ehandler.c:62
msgid "Force rewrite"
-msgstr "Wymusiæ ponowny zapis"
+msgstr "Wymusić ponowny zapis"
#: e2fsck/ehandler.c:104
#, c-format
msgid "Error writing block %lu (%s) while %s. "
-msgstr "B³±d przy zapisie bloku %lu (%s) podczas %s. "
+msgstr "BÅ‚Ä…d przy zapisie bloku %lu (%s) podczas %s. "
#: e2fsck/ehandler.c:107
#, c-format
msgid "Error writing block %lu (%s). "
-msgstr "B³±d przy zapisie bloku %lu (%s). "
+msgstr "BÅ‚Ä…d przy zapisie bloku %lu (%s). "
#: e2fsck/emptydir.c:57
msgid "empty dirblocks"
@@ -154,89 +157,95 @@ msgstr "pusta mapa katalogu"
#: e2fsck/emptydir.c:98
#, c-format
msgid "Empty directory block %u (#%d) in inode %u\n"
-msgstr "Pusty blok katalogu %u (#%d) w i-wê¼le %u\n"
+msgstr "Pusty blok katalogu %u (#%d) w i-węźle %u\n"
#: e2fsck/extend.c:22
#, c-format
msgid "%s: %s filename nblocks blocksize\n"
-msgstr "%s: %s nazwa_pliku liczba_bloków rozmiar_bloku\n"
+msgstr "%s: %s nazwa_pliku liczba_bloków rozmiar_bloku\n"
#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
-msgstr "Niedopuszczalna liczba bloków!\n"
+msgstr "Niedopuszczalna liczba bloków!\n"
#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
-msgstr "Nie mo¿na przydzieliæ bufora bloku (rozmiar=%d)\n"
+msgstr "Nie można przydzielić bufora bloku (rozmiar=%d)\n"
#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
-msgstr "Sk³adnia: %s dysk\n"
+msgstr "Składnia: %s dysk\n"
#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
-msgstr "ioctl BLKFLSBUF nie obs³ugiwany! Nie mo¿na opró¿niæ buforów.\n"
+msgstr "ioctl BLKFLSBUF nie obsługiwany! Nie można opróżnić buforów.\n"
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
-msgstr "Sk³adnia: %s [-F] [-I bloki_bufora_i-wêz³ów] urz±dzenie\n"
+msgstr "Składnia: %s [-F] [-I bloki_bufora_i-węzłów] urządzenie\n"
-#: e2fsck/iscan.c:84 e2fsck/unix.c:902
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
-msgstr "podczas otwierania %s w celu opró¿nienia"
+msgstr "podczas otwierania %s w celu opróżnienia"
-#: e2fsck/iscan.c:89 e2fsck/unix.c:908 resize/main.c:284
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
-msgstr "podczas próby opró¿nienia %s"
+msgstr "podczas próby opróżnienia %s"
+
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr "podczas próby otwarcia '%s'"
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1065
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
-msgstr "podczas otwierania obrazu i-wêz³ów"
+msgstr "podczas otwierania obrazu i-węzłów"
-#: e2fsck/iscan.c:130 misc/e2image.c:1083
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
-msgstr "podczas pobierania nastêpnego i-wêz³a"
+msgstr "podczas pobierania następnego i-węzła"
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
-msgstr "Przeszukano i-wêz³ów: %u.\n"
+msgstr "Przeszukano i-węzłów: %u.\n"
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "odczyt superbloku kroniki\n"
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: nie znaleziono poprawnego superbloku kroniki\n"
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
-msgstr "%s: kronika za krótka\n"
+msgstr "%s: kronika za krótka\n"
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: odtwarzanie z kroniki\n"
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
-msgstr "%s: odtworzenie z kroniki nie zostanie wykonane w trybie tylko do odczytu\n"
+msgstr ""
+"%s: odtworzenie z kroniki nie zostanie wykonane w trybie tylko do odczytu\n"
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
-msgstr "podczas próby ponownego otwarcia %s"
+msgstr "podczas próby ponownego otwarcia %s"
#: e2fsck/message.c:113
msgid "aextended attribute"
@@ -244,7 +253,7 @@ msgstr "arozszerzony atrybut"
#: e2fsck/message.c:114
msgid "Aerror allocating"
-msgstr "Ab³±d podczas przydzielania"
+msgstr "Abłąd podczas przydzielania"
#: e2fsck/message.c:115
msgid "bblock"
@@ -260,11 +269,11 @@ msgstr "ckompresja"
#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
-msgstr "Ckonflikt z innym @biem systemu plików"
+msgstr "Ckonflikt z innym @biem systemu plików"
#: e2fsck/message.c:119
msgid "iinode"
-msgstr "ii-wêze³"
+msgstr "ii-węzeł"
#: e2fsck/message.c:120
msgid "Iillegal"
@@ -276,7 +285,7 @@ msgstr "jkronika"
#: e2fsck/message.c:122
msgid "Ddeleted"
-msgstr "Dusuniêty"
+msgstr "Dusunięty"
#: e2fsck/message.c:123
msgid "ddirectory"
@@ -292,11 +301,11 @@ msgstr "E@e '%Dn' w %p (%i)"
#: e2fsck/message.c:126
msgid "ffilesystem"
-msgstr "fsystem plików"
+msgstr "fsystem plików"
#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
-msgstr "Fdla i-wêz³a %i (%Q) wynosi"
+msgstr "Fdla i-węzła %i (%Q) wynosi"
#: e2fsck/message.c:128
msgid "ggroup"
@@ -312,7 +321,7 @@ msgstr "llost+found"
#: e2fsck/message.c:131
msgid "Lis a link"
-msgstr "Ljest dowi±zaniem"
+msgstr "Ljest dowiÄ…zaniem"
#: e2fsck/message.c:132
msgid "mmultiply-claimed"
@@ -320,7 +329,7 @@ msgstr "mwielokrotnie zadeklarowany"
#: e2fsck/message.c:133
msgid "ninvalid"
-msgstr "nb³êdny"
+msgstr "nbłędny"
#: e2fsck/message.c:134
msgid "oorphaned"
@@ -336,11 +345,11 @@ msgstr "qlimit"
#: e2fsck/message.c:137
msgid "rroot @i"
-msgstr "rg³ówny @i"
+msgstr "rgłówny @i"
#: e2fsck/message.c:138
msgid "sshould be"
-msgstr "spowinno byæ"
+msgstr "spowinno być"
#: e2fsck/message.c:139
msgid "Ssuper@b"
@@ -348,11 +357,11 @@ msgstr "Ssuper@b"
#: e2fsck/message.c:140
msgid "uunattached"
-msgstr "uniedo³±czony"
+msgstr "uniedołączony"
#: e2fsck/message.c:141
msgid "vdevice"
-msgstr "vurz±dzenie"
+msgstr "vurzÄ…dzenie"
#: e2fsck/message.c:142
msgid "xextent"
@@ -360,230 +369,223 @@ msgstr "xekstent"
#: e2fsck/message.c:143
msgid "zzero-length"
-msgstr "zzerowej d³ugo¶ci"
+msgstr "zzerowej długości"
#: e2fsck/message.c:154
msgid "<The NULL inode>"
-msgstr "<pusty i-wêze³>"
+msgstr "<pusty i-węzeł>"
#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
-msgstr "<i-wêze³ wadliwych bloków>"
+msgstr "<i-węzeł wadliwych bloków>"
#: e2fsck/message.c:157
msgid "<The user quota inode>"
-msgstr "<i-wêze³ limitów u¿ytkowników>"
+msgstr "<i-węzeł limitów użytkowników>"
#: e2fsck/message.c:158
msgid "<The group quota inode>"
-msgstr "<i-wêze³ limitów grup>"
+msgstr "<i-węzeł limitów grup>"
#: e2fsck/message.c:159
msgid "<The boot loader inode>"
-msgstr "<i-wêze³ boot-loadera>"
+msgstr "<i-węzeł boot-loadera>"
#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
-msgstr "<i-wêze³ katalogu undelete>"
+msgstr "<i-węzeł katalogu undelete>"
#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
-msgstr "<i-wêze³ deskryptora grupy>"
+msgstr "<i-węzeł deskryptora grupy>"
#: e2fsck/message.c:162
msgid "<The journal inode>"
-msgstr "<i-wêze³ kroniki>"
+msgstr "<i-węzeł kroniki>"
#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
-msgstr "<zarezerwowany i-wêze³ 9>"
+msgstr "<zarezerwowany i-węzeł 9>"
#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
-msgstr "<zarezerwowany i-wêze³ 10>"
+msgstr "<zarezerwowany i-węzeł 10>"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
-msgstr "plik zwyk³y"
+msgstr "plik zwykły"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "katalog"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
-msgstr "urz±dzenie znakowe"
+msgstr "urzÄ…dzenie znakowe"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
-msgstr "urz±dzenie blokowe"
+msgstr "urzÄ…dzenie blokowe"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "nazwany potok"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
-msgstr "dowi±zanie symboliczne"
+msgstr "dowiÄ…zanie symboliczne"
-#: e2fsck/message.c:344 misc/uuidd.c:161
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "gniazdo"
-#: e2fsck/message.c:346
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "nieznany rodzaj pliku typu 0%o"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
-msgstr "blok po¶redni"
+msgstr "blok pośredni"
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
-msgstr "blok podwójnie po¶redni"
+msgstr "blok podwójnie pośredni"
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
-msgstr "blok potrójnie po¶redni"
+msgstr "blok potrójnie pośredni"
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
-msgstr "blok t³umacz±cy"
+msgstr "blok tłumaczący"
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "blok #"
#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
-msgstr "wielokrotnie zadeklarowana mapa i-wêz³ów"
+msgstr "wielokrotnie zadeklarowana mapa i-węzłów"
-#: e2fsck/pass1b.c:608 e2fsck/pass1b.c:727
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
-msgstr "b³±d wewnêtrzny; nie mo¿na znale¼æ dup_blk dla %llu\n"
+msgstr "błąd wewnętrzny; nie można znaleźć dup_blk dla %llu\n"
-#: e2fsck/pass1b.c:818
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
-msgstr "powrót z clone_file_block"
+msgstr "powrót z clone_file_block"
-#: e2fsck/pass1b.c:840
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
-msgstr "b³±d wewnêtrzny: nie mo¿na znale¼æ rekordu bloku EA dla %llu"
+msgstr "błąd wewnętrzny: nie można znaleźć rekordu bloku EA dla %llu"
-#: e2fsck/pass1b.c:852
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
-msgstr "B³±d wewnêtrzny: nie mo¿na znale¼æ rekordu i-wêz³a EA dla %u"
+msgstr "Błąd wewnętrzny: nie można znaleźć rekordu i-węzła EA dla %u"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:777
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "odczytu bloku katalogu"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
-msgstr "mapa u¿ywanych i-wêz³ów"
+msgstr "mapa używanych i-węzłów"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
-msgstr "mapa i-wêz³ów katalogów"
+msgstr "mapa i-węzłów katalogów"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
-msgstr "mapa i-wêz³ów zwyk³ych plików"
+msgstr "mapa i-węzłów zwykłych plików"
-#: e2fsck/pass1.c:622
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
-msgstr "mapa u¿ywanych bloków"
+msgstr "mapa używanych bloków"
-#: e2fsck/pass1.c:684
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
-msgstr "rozpoczynania przeszukiwania i-wêz³ów"
+msgstr "rozpoczynania przeszukiwania i-węzłów"
-#: e2fsck/pass1.c:718
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
-msgstr "pobierania nastêpnego i-wêz³a"
+msgstr "pobierania następnego i-węzła"
-#: e2fsck/pass1.c:1228
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Przebieg 1"
-#: e2fsck/pass1.c:1285
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
-msgstr "odczytu niebezpo¶rednich bloków i-wêz³a %u"
+msgstr "odczytu niebezpośrednich bloków i-węzła %u"
-#: e2fsck/pass1.c:1335
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
-msgstr "b³êdna mapa i-wêz³ów"
+msgstr "błędna mapa i-węzłów"
-#: e2fsck/pass1.c:1357
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
-msgstr "i-wêze³ w mapie wadliwych bloków"
+msgstr "i-węzeł w mapie wadliwych bloków"
-#: e2fsck/pass1.c:1377
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
-msgstr "mapa i-wêz³ów imagic"
+msgstr "mapa i-węzłów imagic"
-#: e2fsck/pass1.c:1404
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
-msgstr "wielokrotnie zadeklarowana mapa bloków"
+msgstr "wielokrotnie zadeklarowana mapa bloków"
-#: e2fsck/pass1.c:1504
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
-msgstr "mapa bloków rozszerzonych atrybutów"
+msgstr "mapa bloków rozszerzonych atrybutów"
-#: e2fsck/pass1.c:2252
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr "%6lu(%c): oczekiwano %6lu, otrzymano phys %6lu (blkcnt %lld)\n"
-#: e2fsck/pass1.c:2613
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
-msgstr "bitmapa bloków"
+msgstr "bitmapa bloków"
-#: e2fsck/pass1.c:2619
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
-msgstr "bitmapa i-wêz³ów"
+msgstr "bitmapa i-węzłów"
-#: e2fsck/pass1.c:2625
+#: e2fsck/pass1.c:2690
msgid "inode table"
-msgstr "tablica i-wêz³ów"
+msgstr "tablica i-węzłów"
-#: e2fsck/pass2.c:278
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Przebieg 2"
-#: e2fsck/pass2.c:800
+#: e2fsck/pass2.c:805
msgid "Can not continue."
-msgstr "Nie mo¿na kontynuowaæ."
+msgstr "Nie można kontynuować."
#: e2fsck/pass3.c:77
msgid "inode done bitmap"
-msgstr "bitmapa wykonanych i-wêz³ów"
+msgstr "bitmapa wykonanych i-węzłów"
-#: e2fsck/pass3.c:85
+#: e2fsck/pass3.c:86
msgid "Peak memory"
-msgstr "Najwiêksze u¿ycie pamiêci"
+msgstr "Największe użycie pamięci"
-#: e2fsck/pass3.c:135
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Przebieg 3"
-#: e2fsck/pass3.c:321
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
-msgstr "bitmapa wykrywania pêtli i-wêz³ów"
+msgstr "bitmapa wykrywania pętli i-węzłów"
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Przebieg 4"
@@ -597,79 +599,79 @@ msgstr "(bez pytania)"
#: e2fsck/problem.c:52
msgid "Fix"
-msgstr "Poprawiæ"
+msgstr "Poprawić"
#: e2fsck/problem.c:53
msgid "Clear"
-msgstr "Wyczy¶ciæ"
+msgstr "Wyczyścić"
#: e2fsck/problem.c:54
msgid "Relocate"
-msgstr "Przenie¶æ"
+msgstr "Przenieść"
#: e2fsck/problem.c:55
msgid "Allocate"
-msgstr "Przydzieliæ"
+msgstr "Przydzielić"
#: e2fsck/problem.c:56
msgid "Expand"
-msgstr "Rozszerzyæ"
+msgstr "Rozszerzyć"
#: e2fsck/problem.c:57
msgid "Connect to /lost+found"
-msgstr "Do³±czyæ do /lost+found"
+msgstr "Dołączyć do /lost+found"
#: e2fsck/problem.c:58
msgid "Create"
-msgstr "Wyczy¶ciæ"
+msgstr "Wyczyścić"
#: e2fsck/problem.c:59
msgid "Salvage"
-msgstr "Uratowaæ"
+msgstr "Uratować"
#: e2fsck/problem.c:60
msgid "Truncate"
-msgstr "Uci±æ"
+msgstr "Uciąć"
#: e2fsck/problem.c:61
msgid "Clear inode"
-msgstr "Wyczy¶ciæ i-wêze³"
+msgstr "Wyczyścić i-węzeł"
#: e2fsck/problem.c:62
msgid "Abort"
-msgstr "Przerwaæ"
+msgstr "Przerwać"
#: e2fsck/problem.c:63
msgid "Split"
-msgstr "Podzieliæ"
+msgstr "Podzielić"
#: e2fsck/problem.c:64
msgid "Continue"
-msgstr "Kontynuowaæ"
+msgstr "Kontynuować"
#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
-msgstr "Sklonowaæ wielokrotnie zadeklarowane bloki"
+msgstr "Sklonować wielokrotnie zadeklarowane bloki"
#: e2fsck/problem.c:66
msgid "Delete file"
-msgstr "Usun±æ plik"
+msgstr "Usunąć plik"
#: e2fsck/problem.c:67
msgid "Suppress messages"
-msgstr "Pomin±æ komunikaty"
+msgstr "Pominąć komunikaty"
#: e2fsck/problem.c:68
msgid "Unlink"
-msgstr "Od³±czyæ"
+msgstr "Odłączyć"
#: e2fsck/problem.c:69
msgid "Clear HTree index"
-msgstr "Wyczy¶ciæ indeks HTree"
+msgstr "Wyczyścić indeks HTree"
#: e2fsck/problem.c:70
msgid "Recreate"
-msgstr "Odtworzyæ"
+msgstr "Odtworzyć"
#: e2fsck/problem.c:79
msgid "(NONE)"
@@ -697,7 +699,7 @@ msgstr "ROZSZERZONO"
#: e2fsck/problem.c:85
msgid "RECONNECTED"
-msgstr "POD£¡CZONO"
+msgstr "PODÅÄ„CZONO"
#: e2fsck/problem.c:86
msgid "CREATED"
@@ -709,11 +711,11 @@ msgstr "URATOWANO"
#: e2fsck/problem.c:88
msgid "TRUNCATED"
-msgstr "SKRÓCONO"
+msgstr "SKRÓCONO"
#: e2fsck/problem.c:89
msgid "INODE CLEARED"
-msgstr "I-WÊZE£ WYCZYSZCZONY"
+msgstr "I-WĘZEŠWYCZYSZCZONY"
#: e2fsck/problem.c:90
msgid "ABORTED"
@@ -733,15 +735,15 @@ msgstr "SKLONOWANO WIELOKROTNIE ZADEKLAROWANE BLOKI"
#: e2fsck/problem.c:94
msgid "FILE DELETED"
-msgstr "PLIK USUNIÊTY"
+msgstr "PLIK USUNIĘTY"
#: e2fsck/problem.c:95
msgid "SUPPRESSED"
-msgstr "POMINIÊTO"
+msgstr "POMINIĘTO"
#: e2fsck/problem.c:96
msgid "UNLINKED"
-msgstr "OD£¡CZONO"
+msgstr "ODÅÄ„CZONO"
#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
@@ -754,12 +756,12 @@ msgstr "ZOSTANIE ODTWORZONY"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
-msgstr "@B @bów dla grupy %g nie jest w grupie. (@b %b)\n"
+msgstr "@B @bów dla grupy %g nie jest w grupie. (@b %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
-msgstr "@B i-wêz³ów dla grupy %g nie jest w grupie. (@b %b)\n"
+msgstr "@B i-węzłów dla grupy %g nie jest w grupie. (@b %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
@@ -768,32 +770,36 @@ msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
msgstr ""
-"tablica i-wêz³ów dla grupy %g nie jest w grupie. (@b %b)\n"
-"UWAGA: MO¯LIWA POWA¯NA UTRATA DANYCH.\n"
+"tablica i-węzłów dla grupy %g nie jest w grupie. (@b %b)\n"
+"UWAGA: MOŻLIWA POWAŻNA UTRATA DANYCH.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
#: e2fsck/problem.c:122
-#, c-format
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
-"@S nie móg³ byæ odczytany lub nie opisuje prawid³owego systemu\n"
-"plików ext2. Je¿eli @v jest prawid³owe i naprawdê zawiera\n"
+"@S nie mógł być odczytany lub nie opisuje prawidłowego systemu\n"
+"plików ext2. Jeżeli @v jest prawidłowe i naprawdę zawiera\n"
"@f ext2 (nie jest swapem, ufs-em ani niczym innym),\n"
-"to @S jest uszkodzony - mo¿na próbowaæ uruchomiæ e2fsck z innym\n"
+"to @S jest uszkodzony - można próbować uruchomić e2fsck z innym\n"
"@Siem:\n"
" e2fsck -b %S <@v>\n"
"\n"
@@ -801,50 +807,50 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
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 ""
-"Rozmiar systemu plików (wed³ug @Su) wynosi %b @bów\n"
-"Fizyczny rozmiar urz±dzenia wynosi %c @bów\n"
-"Mo¿liwe, ¿e @S albo tablica partycji jest uszkodzona!\n"
+"Rozmiar systemu plików (według @Su) wynosi %b @bów\n"
+"Fizyczny rozmiar urządzenia wynosi %c @bów\n"
+"Możliwe, że @S albo tablica partycji jest uszkodzona!\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:138
+#: e2fsck/problem.c:140
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 ""
"W @Su block_size (rozm. bloku) = %b, fragsize (rozm. fragmentu) = %c.\n"
-"Ta wersja e2fsck nie obs³uguje rozmiarów fragmentu ró¿nych od rozmiaru\n"
+"Ta wersja e2fsck nie obsługuje rozmiarów fragmentu różnych od rozmiaru\n"
"@bu.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
-msgstr "W @Su blocks_per_group (bloków w grupie) = %b, powinno byæ %c\n"
+msgstr "W @Su blocks_per_group (bloków w grupie) = %b, powinno być %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
-msgstr "W @Su first_data_block (1. @b danych) = %b, powinien byæ %c\n"
+msgstr "W @Su first_data_block (1. @b danych) = %b, powinien być %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
msgstr ""
-"@f nie mia³ UUID-a; wygenerowano.\n"
+"@f nie miał UUID-a; wygenerowano.\n"
"\n"
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -854,471 +860,481 @@ msgid ""
"the backup block group descriptors may be OK.\n"
"\n"
msgstr ""
-"Uwaga: je¶li jakie¶ bloki bitmap i-wêz³ów lub bloków albo czê¶æ\n"
-"tabeli i-wêz³ów wymaga relokacji, mo¿na uruchomiæ najpierw e2fsck\n"
-"z opcj± '-b %S'. Problem mo¿e tkwiæ tylko w deskryptorach g³ównej\n"
-"grupy bloków, a zapasowe deskryptory grupy bloków mog± byæ poprawne.\n"
+"Uwaga: jeśli jakieś bloki bitmap i-węzłów lub bloków albo część\n"
+"tabeli i-węzłów wymaga relokacji, można uruchomić najpierw e2fsck\n"
+"z opcją '-b %S'. Problem może tkwić tylko w deskryptorach głównej\n"
+"grupy bloków, a zapasowe deskryptory grupy bloków mogą być poprawne.\n"
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:169
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "Znaleziono uszkodzenia w @Su. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:174
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
-msgstr "B³±d podczas okre¶lania rozmiaru fizycznego urz±dzenia: %m\n"
+msgstr "Błąd podczas określania rozmiaru fizycznego urządzenia: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
-msgstr "licznik i-wêz³ów w @Su wynosi %i, powinien byæ %j.\n"
+msgstr "licznik i-węzłów w @Su wynosi %i, powinien być %j.\n"
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
-msgstr "Hurd nie obs³uguje w³asno¶ci filetype.\n"
+msgstr "Hurd nie obsługuje własności filetype.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
-msgstr "@S ma b³êdn± kronikê (@i %i).\n"
+msgstr "@S ma błędną kronikę (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
-msgstr "Zewnêtrzna @j ma wielu u¿ytkowników systemu plików (nie obs³ugiwane).\n"
+msgstr ""
+"Zewnętrzna @j ma wielu użytkowników systemu plików (nie obsługiwane).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
-msgstr "Nie mo¿na znale¼æ zewnêtrznej kroniki\n"
+msgstr "Nie można znaleźć zewnętrznej kroniki\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
-msgstr "Zewnêtrzna @j ma b³êdny @S\n"
+msgstr "Zewnętrzna @j ma błędny @S\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
-msgstr "Zewnêtrzna @j nie obs³uguje tego systemu plików\n"
+msgstr "Zewnętrzna @j nie obsługuje tego systemu plików\n"
#. @-expanded: filesystem 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:213
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-"@S kroniki systemu plików ma nieznany typ %N (nie obs³ugiwany).\n"
-"Mo¿liwe, ¿e ta kopia e2fsck jest stara i/lub nie obs³uguje tego formatu\n"
+"@S kroniki systemu plików ma nieznany typ %N (nie obsługiwany).\n"
+"Możliwe, że ta kopia e2fsck jest stara i/lub nie obsługuje tego formatu\n"
"kroniki.\n"
-"Mo¿liwe te¿, ¿e @S kroniki jest uszkodzony.\n"
+"Możliwe też, że @S kroniki jest uszkodzony.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
msgstr "@S kroniki jest uszkodzony.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr "flaga has_journal @Su jest wyzerowana, ale @j %s istnieje.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
-msgstr "@S ma ustawion± flagê needs_recovery, ale nie ma kroniki.\n"
+msgstr "@S ma ustawionÄ… flagÄ™ needs_recovery, ale nie ma kroniki.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr "flaga needs_recovery @Su jest wyzerowana, ale @j zawiera dane.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
msgid "Clear @j"
-msgstr "Wyczy¶ciæ kronikê"
+msgstr "Wyczyścić kronikę"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:246 e2fsck/problem.c:690
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr "@f ma ustawione flagi cech, ale ma wersjê 0 systemu plików. "
+msgstr "@f ma ustawione flagi cech, ale ma wersję 0 systemu plików. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s @o @i %i (uid=%Iu, gid=%Ig, uprawnienia=%Im, rozmiar=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
-msgstr "znaleziono @I %B (%b) w @om i-wê¼le %i.\n"
+msgstr "znaleziono @I %B (%b) w @om i-węźle %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
-msgstr "Ju¿ wyczyszczono %B (%b) znaleziony w @om i-wê¼le %i.\n"
+msgstr "Już wyczyszczono %B (%b) znaleziony w @om i-węźle %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@I @o @i %i w @Su.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
-msgstr "@I @i %i w li¶cie @och i-wêz³ów.\n"
+msgstr "@I @i %i w liście @och i-węzłów.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "@S kroniki ma ustawion± nieznan± flagê tylko do odczytu.\n"
+msgstr "@S kroniki ma ustawionÄ… nieznanÄ… flagÄ™ tylko do odczytu.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "@S kroniki ma ustawion± flagê nieznanej cechy.\n"
+msgstr "@S kroniki ma ustawionÄ… flagÄ™ nieznanej cechy.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:286
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
-msgstr "Wersja kroniki nie obs³ugiwana przez ten e2fsck.\n"
+msgstr "Wersja kroniki nie obsługiwana przez ten e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
"\n"
msgstr ""
-"Przenoszenie kroniki z /%s do ukrytego i-wêz³a.\n"
+"Przenoszenie kroniki z /%s do ukrytego i-węzła.\n"
"\n"
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
"\n"
msgstr ""
-"B³±d podczas przenoszenia kroniki: %m\n"
+"BÅ‚Ä…d podczas przenoszenia kroniki: %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:301
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
"\n"
msgstr ""
-"Znaleziono b³êdne pola @Su kroniki V2 (z kroniki V1).\n"
-"Czyszczenie pól spoza @Su kroniki V1...\n"
+"Znaleziono błędne pola @Su kroniki V2 (z kroniki V1).\n"
+"Czyszczenie pól spoza @Su kroniki V1...\n"
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
-msgstr "Wykonaæ zapisy z kroniki"
+msgstr "Wykonać zapisy z kroniki"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
msgstr ""
"Flaga odtworzenia nie ustawiona w zapasowym @Su,\n"
-"wiêc wykonujê zapisy z kroniki mimo to.\n"
+"więc wykonuję zapisy z kroniki mimo to.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
-msgstr "Tworzenie kopii zapasowej informacji z @bu i-wêz³a kroniki.\n"
+msgstr "Tworzenie kopii zapasowej informacji z @bu i-węzła kroniki.\n"
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:322
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
msgstr ""
-"@f nie ma w³±czonego resize_inode, ale s_reserved_gdt_blocks\n"
+"@f nie ma włączonego resize_inode, ale s_reserved_gdt_blocks\n"
"wynosi %N; @s zero. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr "Resize_inode nie w³±czone, ale i-wêze³ zmiany rozmiaru jest niezerowy. "
+msgstr ""
+"Resize_inode nie włączone, ale i-węzeł zmiany rozmiaru jest niezerowy. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
-msgstr "i-wêze³ zmiany rozmiaru (resize) nieprawid³owy. "
+msgstr "i-węzeł zmiany rozmiaru (resize) nieprawidłowy. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
msgstr ""
"Czas ostatniego montowania @Su (%t,\n"
-"\tteraz = %T) jest w przysz³o¶ci.\n"
+"\tteraz = %T) jest w przyszłości.\n"
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
msgstr ""
"Czas ostatniego zapisu @Su (%t,\n"
-"\tteraz = %T) jest w przysz³o¶ci.\n"
+"\tteraz = %T) jest w przyszłości.\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
-msgstr "Podpowied¼ @Su dla zewnêtrznego superbloku powinna byæ %X. "
+msgstr "Podpowiedź @Su dla zewnętrznego superbloku powinna być %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
msgstr ""
-"Dodawanie podpowiedzi dirhash do systemu plików.\n"
+"Dodawanie podpowiedzi dirhash do systemu plików.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:357
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
-msgstr "Suma kontrolna deskryptora grupy %g jest b³êdna. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
+msgstr "Suma kontrolna deskryptora grupy %g to %04x, powinna wynosić %04y. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr "Deskryptor grupy %g oznaczony jako nie zainicjowany bez zbioru cech.\n"
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:367
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr "Bitmapa bloku grupy %g nie zainicjowana, ale @i @By jest u¿ywany.\n"
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr "Deskryptor grupy %g ma b³êdn± liczbê nie u¿ywanych i-wêz³ów %b. "
+msgstr "Deskryptor grupy %g ma błędną liczbę nie używanych i-węzłów %b. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr "@B @bu ostatniej grupy niezainicjowana. "
-#: e2fsck/problem.c:382
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
-msgstr "Transakcja %i kroniki by³a uszkodzona, odtwarzanie przerwano.\n"
+msgstr "Transakcja %i kroniki była uszkodzona, odtwarzanie przerwano.\n"
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
-msgstr "Flags test_fs jest ustawiona (i ext4 jest dostêpny). "
+msgstr "Flags test_fs jest ustawiona (i ext4 jest dostępny). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:391
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
-"Czas ostatniego montowania @Su jest w przysz³o¶ci\n"
-"\t(o mniej ni¿ dzieñ, zapewne z powodu z³ego ustawienia zegara sprzêtowego) "
+"Czas ostatniego montowania @Su jest w przyszłości\n"
+"\t(o mniej niż dzień, zapewne z powodu złego ustawienia zegara sprzętowego) "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:397
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
-"Czas ostatniego zapisu @Su jest w przysz³o¶ci\n"
-"\t(o mniej ni¿ dzieñ, zapewne z powodu z³ego ustawienia zegara sprzêtowego) "
+"Czas ostatniego zapisu @Su jest w przyszłości\n"
+"\t(o mniej niż dzień, zapewne z powodu złego ustawienia zegara sprzętowego) "
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr "Jeden lub wiêcej deskryptorów grup bloków jest b³êdnych. "
+msgstr "Jeden lub więcej deskryptorów grup bloków jest błędnych. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:405
msgid "Setting free @is count to %j (was %i)\n"
-msgstr "Ustawianie liczby wolnych i-wêz³ów na %j (by³o %i)\n"
+msgstr "Ustawianie liczby wolnych i-węzłów na %j (było %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:410
msgid "Setting free @bs count to %c (was %b)\n"
-msgstr "Ustawianie liczby wolnych @bów na %c (by³o %b)\n"
+msgstr "Ustawianie liczby wolnych @bów na %c (było %b)\n"
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-#: e2fsck/problem.c:418
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
-msgstr ""
-"Zmiana i-wêz³ów @qów na ukryte.\n"
-"\n"
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr "Zmiana i-węzła @qów na ukryty.\n"
#. @-expanded: superblock has invalid MMP block.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:420
msgid "@S has invalid MMP block. "
-msgstr "@S ma b³êdny blok MMP. "
+msgstr "@S ma błędny blok MMP. "
#. @-expanded: superblock has invalid MMP magic.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:425
msgid "@S has invalid MMP magic. "
-msgstr "@S ma b³êdn± liczbê magiczn± MMP. "
+msgstr "@S ma błędną liczbę magiczną MMP. "
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr "ext2fs_open2: %m\n"
-#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr "ext2fs_check_desc: %m\n"
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+"@S 64-bitowych systemów plików wymaga ekstentów do dostępu do całego dysku. "
+
+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
-msgstr "Przebieg 1: Sprawdzanie i-wêz³ów, @bów i rozmiarów\n"
+msgstr "Przebieg 1: Sprawdzanie i-węzłów, @bów i rozmiarów\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:439
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "@r nie jest @diem. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr "@r ma ustawiony dtime (zapewne przez stary mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:449
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
-msgstr "Zarezerwowany @i %i (%Q) ma b³êdne uprawnienia. "
+msgstr "Zarezerwowany @i %i (%Q) ma błędne uprawnienia. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "@D @i %i ma zerowy dtime. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
-msgstr "@i %i jest u¿ywany, ale ma ustawiony dtime. "
+msgstr "@i %i jest używany, ale ma ustawiony dtime. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "@i %i jest @diem @z. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
-msgstr "@B @bów grupy %g w %b jest w konflikcie z innym @biem.\n"
+msgstr "@B @bów grupy %g w %b jest w konflikcie z innym @biem.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
-msgstr "@B i-wêz³ów grupy %g w %b jest w konflikcie z innym @biem.\n"
+msgstr "@B i-węzłów grupy %g w %b jest w konflikcie z innym @biem.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
-msgstr "tablica i-wêz³ów grupy %g w %b jest w konflikcie z innym @biem.\n"
+msgstr "tablica i-węzłów grupy %g w %b jest w konflikcie z innym @biem.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
-msgstr "@B @bów grupy %g (%b) jest b³êdna. "
+msgstr "@B @bów grupy %g (%b) jest błędna. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
-msgstr "@B i-wêz³ów grupy %g (%b) jest b³êdna. "
+msgstr "@B i-węzłów grupy %g (%b) jest błędna. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "@i %i, i_size wynosi %Is, @s %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "@i %i, i_blocks wynosi %Ib, @s %N. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
-msgstr "@I %B (%b) w i-wê¼le %i. "
+msgstr "@I %B (%b) w i-węźle %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
-msgstr "%B (%b) nak³ada siê na metadane systemu plików w i-wê¼le %i. "
+msgstr "%B (%b) nakłada się na metadane systemu plików w i-węźle %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "@i %i ma niedopuszczalne @bi. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
-msgstr "Za du¿o niedopuszczalnych @bów w i-wê¼le %i.\n"
+msgstr "Za dużo niedopuszczalnych @bów w i-węźle %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
-msgstr "@I %B (%b) w i-wê¼le wadliwych @bów. "
+msgstr "@I %B (%b) w i-węźle wadliwych @bów. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
-msgstr "I-wêze³ wadliwych @bów ma niedopuszczalne @bi. "
+msgstr "I-węzeł wadliwych @bów ma niedopuszczalne @bi. "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
-msgstr "Podwójny lub wadliwy @b jest u¿ywany!\n"
+msgstr "Podwójny lub wadliwy @b jest używany!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr "Wadliwy @b %b jest u¿ywany jako niebiezpo¶redni @b i-wê¼³a z wadliwym @biem. "
+msgstr ""
+"Wadliwy @b %b jest używany jako niebiezpośredni @b i-węźła z wadliwym @biem. "
#. @-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:544
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1326,1222 +1342,1267 @@ msgid ""
"in the @f.\n"
msgstr ""
"\n"
-"I-wêze³ z wadliwym @biem zosta³ prawdopodobnie uszkodzony.\n"
-"Prawdopodobnie nale¿a³oby teraz zatrzymaæ i uruchomiæ e2fsck -c\n"
-"aby przeszukaæ @f pod k±tem wadliwych bloków.\n"
+"I-węzeł z wadliwym @biem został prawdopodobnie uszkodzony.\n"
+"Prawdopodobnie należałoby teraz zatrzymać i uruchomić e2fsck -c\n"
+"aby przeszukać @f pod kątem wadliwych bloków.\n"
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:551
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
"\n"
-"Je¿eli @b jest naprawdê wadliwy, @f nie mo¿e byæ naprawiony.\n"
+"Jeżeli @b jest naprawdę wadliwy, @f nie może być naprawiony.\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:556
+#: e2fsck/problem.c:568
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 ""
-"Mo¿na wyczy¶ciæ ten @b z listy wadliwych @bów i mieæ nadziejê,\n"
-"¿e @b jest naprawdê dobry. Ale nie ma takiej gwarancji.\n"
+"Można wyczyścić ten @b z listy wadliwych @bów i mieć nadzieję,\n"
+"że @b jest naprawdę dobry. Ale nie ma takiej gwarancji.\n"
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
-msgstr "G³ówny @S (%b) jest na li¶cie wadliwych @bów.\n"
+msgstr "Główny @S (%b) jest na liście wadliwych @bów.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Blok %b z deskryptorów g³ównej grupy jest na li¶cie wadliwych @bów\n"
+msgstr "Blok %b z deskryptorów głównej grupy jest na liście wadliwych @bów\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:573
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Uwaga: w grupie %g @S (%b) jest wadliwy.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr "Uwaga: kopia deskryptorów grupy %g ma b³êdny @b (%b).\n"
+msgstr "Uwaga: kopia deskryptorów grupy %g ma błędny @b (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr "B³±d programu? @b #%b uznany bez powodu w process_bad_block.\n"
+msgstr "BÅ‚Ä…d programu? @b #%b uznany bez powodu w process_bad_block.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:590
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
-msgstr "@A %N ci±g³ych @bów w grupie @bów %g dla %s: %m\n"
+msgstr "@A %N ciągłych @bów w grupie @bów %g dla %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
-msgstr "@A bufora @bów do przenoszenia %s\n"
+msgstr "@A bufora @bów do przenoszenia %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Przenoszenie w grupie %g %s z %b do %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Przenoszenie w grupie %g %s do %c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
-msgstr "Uwaga: nie mo¿na odczytaæ @bu %b z %s: %m\n"
+msgstr "Uwaga: nie można odczytać @bu %b z %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
-msgstr "Uwaga: nie mo¿na zapisaæ @bu %b do %s: %m\n"
+msgstr "Uwaga: nie można zapisać @bu %b do %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:620 e2fsck/problem.c:1455
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
-msgstr "@A bitmapy i-wêz³ów (%N): %m\n"
+msgstr "@A bitmapy i-węzłów (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:625
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
-msgstr "@A bitmapy i-wêz³ów (%N): %m\n"
+msgstr "@A bitmapy i-węzłów (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
-msgstr "@A informacji o liczniku dowi±zañ (icount): %m\n"
+msgstr "@A informacji o liczniku dowiązań (icount): %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
-msgstr "@A tablicy @dch @bów: %m\n"
+msgstr "@A tablicy @dch @bów: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
-msgstr "B³±d podczas przeszukiwania i-wêz³ów (%i): %m\n"
+msgstr "Błąd podczas przeszukiwania i-węzłów (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
-msgstr "B³±d podczas iteracji po @bach w i-wê¼le %i: %m\n"
+msgstr "Błąd podczas iteracji po @bach w i-węźle %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr "B³±d podczas zapisu informacji o liczbie i-wêz³ów (@i=%i, liczba=%N): %m\n"
+msgstr ""
+"Błąd podczas zapisu informacji o liczbie i-węzłów (@i=%i, liczba=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr "B³±d podczas zapisu informacji o @dch @bach (@i=%i, @b=%b, liczba=%N): %m\n"
+msgstr ""
+"BÅ‚Ä…d podczas zapisu informacji o @dch @bach (@i=%i, @b=%b, liczba=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:661
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
-msgstr "B³±d podczas odczytu i-wêz³a %i: %m\n"
+msgstr "Błąd podczas odczytu i-węzła %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
-msgstr "@i %i ma ustawion± flagê imagic. "
+msgstr "@i %i ma ustawionÄ… flagÄ™ imagic. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Specjalny plik (@v/gniazdo/potok/dowi±zanie) (@i %i) ma ustawion±\n"
-"flagê nienaruszalno¶ci (immutable) lub dopisywania (append-only). "
+"Specjalny plik (@v/gniazdo/potok/dowiÄ…zanie) (@i %i) ma ustawionÄ…\n"
+"flagę nienaruszalności (immutable) lub dopisywania (append-only). "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:680
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr ""
-"@i %i ma ustawion± flagê kompresji na systemie plików bez obs³ugi\n"
+"@i %i ma ustawioną flagę kompresji na systemie plików bez obsługi\n"
"kompresji. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
-msgstr "Specjalny (@v/gniazdo/potok/dowi±zanie) @i %i ma niezerowy rozmiar. "
+msgstr "Specjalny (@v/gniazdo/potok/dowiÄ…zanie) @i %i ma niezerowy rozmiar. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
-msgstr "@i kroniki nie jest u¿ywany, ale zawiera dane. "
+msgstr "@i kroniki nie jest używany, ale zawiera dane. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
-msgstr "@j nie jest zwyk³ym plikiem. "
+msgstr "@j nie jest zwykłym plikiem. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
-msgstr "@i %i by³ czê¶ci± listy osieroconych i-wêz³ów. "
+msgstr "@i %i był częścią listy osieroconych i-węzłów. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:711
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "Znaleziono i-wêz³y, które by³y czê¶ci± uszkodzonej listy sierot. "
+msgstr "Znaleziono i-węzły, które były częścią uszkodzonej listy sierot. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "@A struktury refcount (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
-msgstr "B³±d podczas odczytu @bu rozszerzonych atrybutów %b dla i-wêz³a %i. "
+msgstr "Błąd podczas odczytu @bu rozszerzonych atrybutów %b dla i-węzła %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
-msgstr "@i %i ma b³êdny @b rozszerzonych atrybutów %b. "
+msgstr "@i %i ma błędny @b rozszerzonych atrybutów %b. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
-msgstr "B³±d podczas odczytu @bu rozszerzonych atrybutów %b (%m). "
+msgstr "Błąd podczas odczytu @bu rozszerzonych atrybutów %b (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
-msgstr "@b rozszerzonych atrybutów %b ma liczbê odniesieñ %r, powinno byæ %N. "
+msgstr "@b rozszerzonych atrybutów %b ma liczbę odniesień %r, powinno być %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
-msgstr "B³±d podczas zapisu @bu rozszerzonych atrybutów %b (%m). "
+msgstr "Błąd podczas zapisu @bu rozszerzonych atrybutów %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
-msgstr "@b rozszerzonych atrybutów %b ma h_blocks > 1. "
+msgstr "@b rozszerzonych atrybutów %b ma h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
-msgstr "@A @bu rozszerzonych atrybutów %b. "
+msgstr "@A @bu rozszerzonych atrybutów %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr "@b rozszerzonych atrybutów %b jest uszkodzony (kolizja przydzielania). "
+msgstr ""
+"@b rozszerzonych atrybutów %b jest uszkodzony (kolizja przydzielania). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
-msgstr "@b rozszerzonych atrybutów %b jest uszkodzony (b³êdna nazwa). "
+msgstr "@b rozszerzonych atrybutów %b jest uszkodzony (błędna nazwa). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
-msgstr "@b rozszerzonych atrybutów %b jest uszkodzony (b³êdna warto¶æ). "
+msgstr "@b rozszerzonych atrybutów %b jest uszkodzony (błędna wartość). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
-msgstr "@i %i jest zbyt du¿y. "
+msgstr "@i %i jest zbyt duży. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:775
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
-msgstr "%B (%b) powoduje, ¿e @d jest zbyt du¿y. "
+msgstr "%B (%b) powoduje, że @d jest zbyt duży. "
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
-msgstr "%B (%b) powoduje, ¿e plik jest zbyt du¿y. "
+msgstr "%B (%b) powoduje, że plik jest zbyt duży. "
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
-msgstr "%B (%b) powoduje, ¿e dowi±zanie jest zbyt du¿e. "
+msgstr "%B (%b) powoduje, że dowiązanie jest zbyt duże. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr "@i %i ma ustawion± flagê INDEX_FL na systemie plików bez obs³ugi htree.\n"
+msgstr ""
+"@i %i ma ustawioną flagę INDEX_FL na systemie plików bez obsługi htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
-msgstr "@i %i ma ustawion± flagê INDEX_FL, ale nie jest @diem.\n"
+msgstr "@i %i ma ustawionÄ… flagÄ™ INDEX_FL, ale nie jest @diem.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
-msgstr "@h %i ma b³êdny g³ówny wêze³.\n"
+msgstr "@h %i ma błędny główny węzeł.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
-msgstr "@h %i ma nie obs³ugiwan± wersjê hasza (%N)\n"
+msgstr "@h %i ma nie obsługiwaną wersję hasza (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr "@h %i u¿ywa niekompatybilnej flagi g³ównego wêz³a htree.\n"
+msgstr "@h %i używa niekompatybilnej flagi głównego węzła htree.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
-msgstr "@h %i ma zbyt du¿± g³êboko¶æ drzewa (%N)\n"
+msgstr "@h %i ma zbyt dużą głębokość drzewa (%N)\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
msgstr ""
-"I-wêze³ z wadliwym @biem ma niebezpo¶redni @b (%b) bêd±cy\n"
-"w konflikcie z metadanymi systemu plików. "
+"I-węzeł z wadliwym @biem ma niebezpośredni @b (%b) będący\n"
+"w konflikcie z metadanymi systemu plików. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:826
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
-msgstr "Tworzenie/odtwarzanie i-wêz³a zmiany rozmiaru nie powiod³o siê: %m."
+msgstr "Tworzenie/odtwarzanie i-węzła zmiany rozmiaru nie powiodło się: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
-msgstr "@i %i ma dodatkowy rozmiar (%IS), co jest b³êdne\n"
+msgstr "@i %i ma dodatkowy rozmiar (%IS), co jest błędne\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
-msgstr "@a w i-wê¼le %i ma namelen (%N), co jest b³êdne\n"
+msgstr "@a w i-węźle %i ma namelen (%N), co jest błędne\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr "@a w i-wê¼le %i ma przesuniêcie warto¶ci (%N), co jest b³êdne\n"
+msgstr "@a w i-węźle %i ma przesunięcie wartości (%N), co jest błędne\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr "@a w i-wê¼le %i ma @b warto¶ci (%N), co jest b³êdne (musi byæ 0)\n"
+msgstr "@a w i-węźle %i ma @b wartości (%N), co jest błędne (musi być 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "@a w i-wê¼le %i ma rozmiar warto¶ci (%N), co jest b³êdne\n"
+msgstr "@a w i-węźle %i ma rozmiar wartości (%N), co jest błędne\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
-msgstr "@a w i-wê¼le %i ma hash (%N), co jest b³êdne\n"
+msgstr "@a w i-węźle %i ma hash (%N), co jest błędne\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr "@i %i to %It, ale wygl±da jakby w rzeczywisto¶ci by³ katalogiem.\n"
+msgstr "@i %i to %It, ale wygląda jakby w rzeczywistości był katalogiem.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
-msgstr "B³±d podczas czytania po @xach w i-wê¼le %i: %m\n"
+msgstr "Błąd podczas czytania po @xach w i-węźle %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
msgstr ""
-"Nie uda³o siê przej¶æ ekstentów w i-wê¼le %i\n"
+"Nie udało się przejść ekstentów w i-węźle %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:877
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
msgstr ""
"@i %i ma @n ekstent\n"
-"\t(@b logiczny %c, @n @b fizyczny %b, d³ugo¶æ %N)\n"
+"\t(@b logiczny %c, @n @b fizyczny %b, długość %N)\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
-"@i %i ma b³êdny ekstent\n"
-"\t(@b logiczny %c, @b fizyczny %b, b³êdna d³ugo¶æ %N)\n"
+"@i %i ma błędny ekstent\n"
+"\t(@b logiczny %c, @b fizyczny %b, błędna długość %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr "@i %i ma ustawion± flagê EXTENTS_FL na systemie plików bez obs³ugi ekstentów.\n"
+msgstr ""
+"@i %i ma ustawioną flagę EXTENTS_FL na systemie plików bez obsługi "
+"ekstentów.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr "@i %i ma format z ekstentami, ale w superbloku brakuje w³a¶ciwo¶ci EXTENTS\n"
+msgstr ""
+"@i %i ma format z ekstentami, ale w superbloku brakuje właściwości EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr "@i %i nie ma flagi EXTENT_FL, ale jest w formacie z ekstentami\n"
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
-msgstr "Szybkie dowi±zanie symboliczne %i ma ustawion± flagê EXTENT_FL. "
+msgstr "Szybkie dowiÄ…zanie symboliczne %i ma ustawionÄ… flagÄ™ EXTENT_FL. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
-"@i %i ma ekstenty spoza kolejno¶ci\n"
-"\t(@b @b logiczny %c, @b fizyczny %b, d³ugo¶æ %N)\n"
+"@i %i ma ekstenty spoza kolejności\n"
+"\t(@b @b logiczny %c, @b fizyczny %b, długość %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:911
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
-msgstr "@i %i ma b³êdny wêze³ ekstentu (blk %b, lblk %c)\n"
-
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:915
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr "@i %i nie powinien mieæ ustawionej flagi EOFBLOCKS_FL (rozmiar %Is, lblk %r)\n"
+msgstr "@i %i ma błędny węzeł ekstentu (blk %b, lblk %c)\n"
#. @-expanded: Error converting subcluster block bitmap: %m\n
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
-msgstr "B³±d podczas przekszta³cania bitmapy @bów podklastra: %m\n"
+msgstr "Błąd podczas przekształcania bitmapy @bów podklastra: %m\n"
#. @-expanded: quota inode is not regular file.
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
msgid "@q @i is not regular file. "
-msgstr "@i @qów nie jest zwyk³ym plikiem. "
+msgstr "@i @qów nie jest zwykłym plikiem. "
#. @-expanded: quota inode is not in use, but contains data.
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
msgid "@q @i is not in use, but contains data. "
-msgstr "@i @qów nie jest u¿ywany, ale zawiera dane. "
+msgstr "@i @qów nie jest używany, ale zawiera dane. "
#. @-expanded: quota inode is visible to the user.
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
msgid "@q @i is visible to the user. "
-msgstr "@i @qów jest widoczny dla u¿ytkownika. "
+msgstr "@i @qów jest widoczny dla użytkownika. "
#. @-expanded: The bad block inode looks invalid.
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
msgid "The bad @b @i looks @n. "
-msgstr "I-wêze³ wadliwych @bów wygl±da na b³êdny. "
+msgstr "I-węzeł wadliwych @bów wygląda na błędny. "
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"@i %i ma ekstent zerowej długości\n"
+"\t(@n @b logiczny %c, @b fizyczny %b, długość %N)\n"
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+"Poziom wewnętrznego węzła ekstentu %N i-węzła %i:\n"
+"PoczÄ…tek logiczny %b nie zgadza siÄ™ z poczÄ…tkiem logicznym %c kolejnego "
+"poziomu. "
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"@i %i, koniec ekstentu przekracza dozwoloną wartość\n"
+"\t(@b logiczny %c, @b fizyczny %b, długość %N)\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:948
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
"\n"
-"Uruchamianie dodatkowych przebiegów do rozwi±zania bloków zadeklarowanych\n"
-"przez wiêcej ni¿ jeden @i...\n"
-"Przebieg 1B: Ponowne przeszukiwanie @mch @bów\n"
+"Uruchamianie dodatkowych przebiegów do rozwiązania bloków zadeklarowanych\n"
+"przez więcej niż jeden @i...\n"
+"Przebieg 1B: Ponowne przeszukiwanie @mch @bów\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:954
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
-msgstr "@m @b(i) w i-wê¼le %i:"
+msgstr "@m @b(i) w i-węźle %i:"
-#: e2fsck/problem.c:969
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
-msgstr "B³±d podczas szukania i-wêz³a (%i): %m\n"
+msgstr "Błąd podczas szukania i-węzła (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
-msgstr "@A bitmapy i-wêz³ów (inode_dup_map): %m\n"
+msgstr "@A bitmapy i-węzłów (inode_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
-msgstr "B³±d podczas iteracji po @bach w i-wê¼le %i (%s): %m\n"
+msgstr "Błąd podczas iteracji po @bach w i-węźle %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:984 e2fsck/problem.c:1299
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr "B³±d podczas poprawiania refcount dla @bu rozszerzonych atrybutów %b (@i %i): %m\n"
+msgstr ""
+"Błąd podczas poprawiania refcount dla @bu rozszerzonych atrybutów %b (@i "
+"%i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:989
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr "Przebieg 1C: Przeszukiwanie katalogów pod k±tem i-wêz³ów z @mmi @bami\n"
+msgstr ""
+"Przebieg 1C: Przeszukiwanie katalogów pod kątem i-węzłów z @mmi @bami\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
-msgstr "Przebieg 1D: Uzgadnianie @mch @bów\n"
+msgstr "Przebieg 1D: Uzgadnianie @mch @bów\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
"Plik %Q (@i #%i, czas modyfikacji %IM) \n"
-" ma %r @mch @bów, dzielonych z %N plikami:\n"
+" ma %r @mch @bów, dzielonych z %N plikami:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:1006
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (@i #%i, czas modyfikacji %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
-msgstr "\t<metadane systemu plików>\n"
+msgstr "\t<metadane systemu plików>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
msgstr ""
-"(Jest %N i-wêz³ów zawieraj±cych podwójnie zadeklarowane @bi.)\n"
+"(Jest %N i-węzłów zawierających podwójnie zadeklarowane @bi.)\n"
"\n"
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-"Podwójnie zadeklarowane @bi ju¿ przepisane lub sklonowane.\n"
+"Podwójnie zadeklarowane @bi już przepisane lub sklonowane.\n"
"\n"
-#: e2fsck/problem.c:1034
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
-msgstr "Nie mo¿na sklonowaæ pliku: %m\n"
+msgstr "Nie można sklonować pliku: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
-msgstr "Przebieg 2: Sprawdzanie struktury @dów\n"
+msgstr "Przebieg 2: Sprawdzanie struktury @dów\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
-msgstr "B³êdny numer i-wêz³a dla '.' w i-wê¼le @du %i.\n"
+msgstr "Błędny numer i-węzła dla '.' w i-węźle @du %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
-msgstr "@E ma b³êdny numer i-wêz³a: %Di.\n"
+msgstr "@E ma błędny numer i-węzła: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
-msgstr "@E ma @D/nie u¿ywany @i %Di. "
+msgstr "@E ma @D/nie używany @i %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "@E @L do '.' "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr "@E wskazuje na @i (%Di) po³o¿ony w wadliwym @b.\n"
+msgstr "@E wskazuje na @i (%Di) położony w wadliwym @b.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "@E @L do @du %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
-msgstr "@E @L do g³ównego katalogu.\n"
+msgstr "@E @L do głównego katalogu.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "@E ma niedopuszczalne znaki w nazwie.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
-msgstr "Brakuje '.' w i-wê¼le @du %i.\n"
+msgstr "Brakuje '.' w i-węźle @du %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
-msgstr "Brakuje '..' w i-wê¼le @du %i.\n"
+msgstr "Brakuje '..' w i-węźle @du %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr "Pierwszym @eem '%Dn' (@i=%Di) w i-wê¼le @du %i (%p) @s '.'\n"
+msgstr "Pierwszym @eem '%Dn' (@i=%Di) w i-węźle @du %i (%p) @s '.'\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
-msgstr "Drugim @eem '%Dn' (@i=%Di) w i-wê¼le @du %i @s '..'\n"
+msgstr "Drugim @eem '%Dn' (@i=%Di) w i-węźle @du %i @s '..'\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr "i_faddr @F %IF, @s zero.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "i_file_acl @F %If, @s zero.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "i_dir_acl @F %Id, @s zero.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr "i_frag @F %N, @s zero.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "i_fsize @F %N, @s zero.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
-msgstr "@i %i (%Q) ma b³êdne uprawnienia (%Im).\n"
+msgstr "@i %i (%Q) ma błędne uprawnienia (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "@i @du %i, %B, offset %N: @d uszkodzony\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
-msgstr "@i @du %i, %B, offset %N: nazwa pliku zbyt d³uga\n"
+msgstr "@i @du %i, %B, offset %N: nazwa pliku zbyt długa\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "@i @du %i ma nie przydzielony %B. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "@e @du '.' w i-wê¼le @du %i nie jest zakoñczony przez NULL\n"
+msgstr "@e @du '.' w i-węźle @du %i nie jest zakończony przez NULL\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "@e @du '..' w i-wê¼le @du %i nie jest zakoñczony przez NULL\n"
+msgstr "@e @du '..' w i-węźle @du %i nie jest zakończony przez NULL\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "@i %i (%Q) jest @Im @vm znakowym.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "@i %i (%Q) jest @Im @vm @bowym.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "@E jest powielonym @eem '.'.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "@E jest powielonym @eem '..'.\n"
-#: e2fsck/problem.c:1180 e2fsck/problem.c:1480
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
-msgstr "B³±d wewnêtrzny: nie mo¿na znale¼æ dir_info dla %i.\n"
+msgstr "Błąd wewnętrzny: nie można znaleźć dir_info dla %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "@E ma rec_len %Dr, @s %N.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "@A struktury icount: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
-msgstr "B³±d podczas iteracji po @bach @du: %m\n"
+msgstr "BÅ‚Ä…d podczas iteracji po @bach @du: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
-msgstr "B³±d podczas odczytu @b %b @du (@i %i): %m\n"
+msgstr "BÅ‚Ä…d podczas odczytu @b %b @du (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
-msgstr "B³±d podczas zapisu @b %b @du (@i %i): %m\n"
+msgstr "BÅ‚Ä…d podczas zapisu @b %b @du (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
-msgstr "@A nowego @bu @du dla i-wêz³a %i (%s): %m\n"
+msgstr "@A nowego @bu @du dla i-węzła %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
-msgstr "B³±d podczas zwalniania i-wêz³a %i: %m\n"
+msgstr "Błąd podczas zwalniania i-węzła %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
-msgstr "@e @du dla '.' w %p (%i) jest du¿y.\n"
+msgstr "@e @du dla '.' w %p (%i) jest duży.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "@i %i (%Q) jest @Im FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "@i %i (%Q) jest @Im gniazdem.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "Ustawiono filetype dla @eu '%Dn' w %p (%i) na %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
-msgstr "@E ma b³êdny filetype (by³ %Dt, powinien byæ %N).\n"
+msgstr "@E ma błędny filetype (był %Dt, powinien być %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "@E ma ustawione filetype.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
-msgstr "@E ma nazwê zerowej d³ugo¶ci.\n"
+msgstr "@E ma nazwę zerowej długości.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
-msgstr "Dowi±zanie symboliczne %Q (@i #%i) jest b³êdne.\n"
+msgstr "Dowiązanie symboliczne %Q (@i #%i) jest błędne.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
-msgstr "@b rozszerzonych atrybutów dla i-wêz³a %i (%Q) jest b³êdny (%If).\n"
+msgstr "@b rozszerzonych atrybutów dla i-węzła %i (%Q) jest błędny (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr "@f zawiera du¿e pliki, ale brak flagi LARGE_FILE w @Su.\n"
+msgstr "@f zawiera duże pliki, ale brak flagi LARGE_FILE w @Su.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B nie ma odwo³añ\n"
+msgstr "@p i-węźle @du HTREE %d: %B nie ma odwołań\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B ma podwójne odwo³anie\n"
+msgstr "@p i-węźle @du HTREE %d: %B ma podwójne odwołanie\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B ma b³êdny minimalny hasz\n"
+msgstr "@p i-węźle @du HTREE %d: %B ma błędny minimalny hasz\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B ma b³êdny maksymalny hasz\n"
+msgstr "@p i-węźle @du HTREE %d: %B ma błędny maksymalny hasz\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
-msgstr "B³êdne @h %d (%q). "
+msgstr "Błędne @h %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
-msgstr "@p i-wê¼le @du HTREE %d (%q): b³êdny numer @bu %b.\n"
+msgstr "@p i-węźle @du HTREE %d (%q): błędny numer @bu %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1304
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
-msgstr "@p i-wê¼le @du HTREE %d: g³ówny wêze³ jest b³êdny\n"
+msgstr "@p i-węźle @du HTREE %d: główny węzeł jest błędny\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B ma b³êdny limit (%N)\n"
+msgstr "@p i-węźle @du HTREE %d: %B ma błędny limit (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B ma b³êdny licznik (%N)\n"
+msgstr "@p i-węźle @du HTREE %d: %B ma błędny licznik (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B ma nie uporz±dkowan± tablicê haszuj±c±\n"
+msgstr "@p i-węźle @du HTREE %d: %B ma nie uporządkowaną tablicę haszującą\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
-msgstr "@p i-wê¼le @du HTREE %d: %B ma b³êdn± g³êboko¶æ (%N)\n"
+msgstr "@p i-węźle @du HTREE %d: %B ma błędną głębokość (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
-msgstr "Znaleziono podwójny @E. "
+msgstr "Znaleziono podwójny @E. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
"Rename to %s"
msgstr ""
-"@E ma nieunikaln± nazwê pliku.\n"
-"Zmieniæ na %s"
+"@E ma nieunikalnÄ… nazwÄ™ pliku.\n"
+"Zmienić na %s"
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
"\n"
msgstr ""
-"Znaleziono podwójny @e '%Dn'.\n"
+"Znaleziono podwójny @e '%Dn'.\n"
"\tZaznaczono %p (%i) do przebudowania.\n"
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "i_blocks_hi @F %N, @s zero.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
-msgstr "Nieoczekiwany @b w i-wê¼le @du HTREE %d (%q)\n"
+msgstr "Nieoczekiwany @b w i-węźle @du HTREE %d (%q)\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr "@i %Di znaleziony w grupie %g, która ma ustawion± flagê _INONE_UNINIT.\n"
+msgstr ""
+"@i %Di znaleziony w grupie %g, która ma ustawioną flagę _INONE_UNINIT.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "@i %Di znaleziony w grupie %g obszaru nie u¿ywanych i-wêz³ów.\n"
+msgstr "@i %Di znaleziony w grupie %g obszaru nie używanych i-węzłów.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr "i_file_acl_hi @F %N, @s zero.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
-msgstr "Przebieg 3: Sprawdzanie ³±czno¶ci @dów\n"
+msgstr "Przebieg 3: Sprawdzanie łączności @dów\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "@r jest nie przydzielony. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "Brak miejsca w @du @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
-msgstr "Nie pod³±czony @i @du %i (%p)\n"
+msgstr "Nie podłączony @i @du %i (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "Nie znaleziono /@l. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "'..' w %Q (%i) jest %P (%j), @s %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
-msgstr "B³êdny lub nie istniej±cy /@l. Nie mo¿na pod³±czyæ.\n"
+msgstr "Błędny lub nie istniejący /@l. Nie można podłączyć.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
-msgstr "Nie mo¿na rozszerzyæ /@l: %m\n"
+msgstr "Nie można rozszerzyć /@l: %m\n"
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
-msgstr "Nie mo¿na pod³±czyæ %i: %m\n"
+msgstr "Nie można podłączyć %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
-msgstr "B³±d podczas szukania /@l: %m\n"
+msgstr "BÅ‚Ä…d podczas szukania /@l: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_block: %m podczas próby utworzenia @du /@l\n"
+msgstr "ext2fs_new_block: %m podczas próby utworzenia @du /@l\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_inode: %m podczas próby utworzenia @du /@l\n"
+msgstr "ext2fs_new_inode: %m podczas próby utworzenia @du /@l\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr "ext2fs_new_dir_block: %m podczas tworzenia nowego @bu @du\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr "ext2fs_write_dir_block: %m podczas zapisu @bu @du dla /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
-msgstr "B³±d podczas poprawiania liczby i-wêz³ów w i-wê¼le %i\n"
+msgstr "Błąd podczas poprawiania liczby i-węzłów w i-węźle %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
"\n"
msgstr ""
-"Nie mo¿na poprawiæ rodzica i-wêz³a %i: %m\n"
+"Nie można poprawić rodzica i-węzła %i: %m\n"
"\n"
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
"\n"
msgstr ""
-"Nie mo¿na poprawiæ rodzica i-wêz³a %i: nie znaleziono wpisu @du rodzica\n"
+"Nie można poprawić rodzica i-węzła %i: nie znaleziono wpisu @du rodzica\n"
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1460
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
-msgstr "B³±d podczas tworzenia g³ównego @du (%s): %m\n"
+msgstr "Błąd podczas tworzenia głównego @du (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
-msgstr "B³±d podczas tworzenia @du /@l (%s): %m\n"
+msgstr "BÅ‚Ä…d podczas tworzenia @du /@l (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "@r nie jest @diem; przerwanie.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
-msgstr "Nie mo¿na kontynuowaæ bez g³ównego katalogu.\n"
+msgstr "Nie można kontynuować bez głównego katalogu.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1485
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/@l nie jest @diem (@i=%i)\n"
-#: e2fsck/problem.c:1492
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
-msgstr "Przebieg 3A: Optymalizacja katalogów\n"
+msgstr "Przebieg 3A: Optymalizacja katalogów\n"
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
-msgstr "Tworzenie iteratora dirs_to_hash nie powiod³o siê: %m\n"
+msgstr "Tworzenie iteratora dirs_to_hash nie powiodło się: %m\n"
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
-msgstr "Optymalizacja katalogu %q (%d) nie powiod³a siê: %m\n"
+msgstr "Optymalizacja katalogu %q (%d) nie powiodła się: %m\n"
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
-msgstr "Optymalizacja katalogów: "
+msgstr "Optymalizacja katalogów: "
-#: e2fsck/problem.c:1524
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
-msgstr "Przebieg 4: Sprawdzanie liczników odwo³añ\n"
+msgstr "Przebieg 4: Sprawdzanie liczników odwołań\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "@u @i @z %i. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "@u @i %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
-msgstr "licznik odwo³añ i-wêz³a %i wynosi %Il, @s %N. "
+msgstr "licznik odwołań i-węzła %i wynosi %Il, @s %N. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
-#: e2fsck/problem.c:1543
+#: e2fsck/problem.c:1569
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 ""
-"UWAGA: B£¡D PROGRAMU W E2FSCK!\n"
-"\tLUB KTO¦ BEZMÓZGI (TY) SPRAWDZA PODMONTOWANY (¯YWY) SYSTEM PLIKÓW.\n"
-"inode_link_info[%i]=%N, inode.i_links_count=%Il. Powinny byæ takie same!\n"
+"UWAGA: BÅÄ„D PROGRAMU W E2FSCK!\n"
+"\tLUB KTOŚ BEZMÓZGI (TY) SPRAWDZA PODMONTOWANY (ŻYWY) SYSTEM PLIKÓW.\n"
+"inode_link_info[%i]=%N, inode.i_links_count=%Il. Powinny być takie same!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1553
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Przebieg 5: Sprawdzanie sumarycznych informacji o @gch\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
-msgstr "Wype³nienie na koñcu bitmapy i-wêz³ów nie jest ustawione. "
+msgstr "Wypełnienie na końcu bitmapy i-węzłów nie jest ustawione. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
-msgstr "Wype³nienie na koñcu bitmapy @bów nie jest ustawione. "
+msgstr "Wypełnienie na końcu bitmapy @bów nie jest ustawione. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
-msgstr "Ró¿nice bitmapy @bów: "
+msgstr "Różnice bitmapy @bów: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1588
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
-msgstr "Ró¿nice bitmapy i-wêz³ów: "
+msgstr "Różnice bitmapy i-węzłów: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1608
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "B³êdna liczba wolnych i-wêz³ów dla grupy #%g (%i, naliczono %j).\n"
+msgstr "Błędna liczba wolnych i-węzłów dla grupy #%g (%i, naliczono %j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "B³êdna liczba katalogów dla grupy #%g (%i, naliczono %j).\n"
+msgstr "Błędna liczba katalogów dla grupy #%g (%i, naliczono %j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
-msgstr "B³êdna liczba wolnych i-wêz³ów (%i, naliczono %j).\n"
+msgstr "Błędna liczba wolnych i-węzłów (%i, naliczono %j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
-msgstr "B³êdna liczba wolnych @bów dla grupy #%g (%b, naliczono %c).\n"
+msgstr "Błędna liczba wolnych @bów dla grupy #%g (%b, naliczono %c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
-msgstr "B³êdna liczba wolnych @bów (%b, naliczono %c).\n"
+msgstr "Błędna liczba wolnych @bów (%b, naliczono %c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1633
-msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
-msgstr "B£¡D PROGRAMU: koñce bitmap systemu plików (#%N) (%b, %c) nie zgadzaj± siê z policzonymi koñcami bitmap (%i, %j)\n"
+#: e2fsck/problem.c:1659
+msgid ""
+"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
+"endpoints (%i, %j)\n"
+msgstr ""
+"BÅÄ„D PROGRAMU: koÅ„ce bitmap systemu plików (#%N) (%b, %c) nie zgadzajÄ… siÄ™ z "
+"policzonymi końcami bitmap (%i, %j)\n"
-#: e2fsck/problem.c:1639
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
-msgstr "B³±d wewnêtrzny: fa³szywy koniec bitmapy (%N)\n"
+msgstr "Błąd wewnętrzny: fałszywy koniec bitmapy (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
-msgstr "B³±d podczas kopiowania w zastêpczej bitmapie i-wêz³ów: %m\n"
+msgstr "Błąd podczas kopiowania w zastępczej bitmapie i-węzłów: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
-msgstr "B³±d podczas kopiowania w zastêpczej bitmapie @bów: %m\n"
+msgstr "Błąd podczas kopiowania w zastępczej bitmapie @bów: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1674
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr "@b(i) grupy %g s± u¿ywane, ale @g ma flagê BLOCK_UNINIT\n"
+msgstr "@b(i) grupy %g są używane, ale @g ma flagę BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr "i-wêz³y grupy %g s± u¿ywane, ale @g ma flagê INODE_UNINIT\n"
+msgstr "i-węzły grupy %g są używane, ale @g ma flagę INODE_UNINIT\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1686
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
-msgstr "Odtworzyæ kronikê"
+msgstr "Odtworzyć kronikę"
+
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr "Uaktualnić informacje o limitach typu %N"
-#: e2fsck/problem.c:1805
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
-msgstr "Nie obs³u¿ony kod b³êdu (0x%x)!\n"
+msgstr "Nie obsłużony kod błędu (0x%x)!\n"
-#: e2fsck/problem.c:1905
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "ZIGNOROWANO"
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
-msgstr "U¿yta pamiêæ: %d, up³yn±³ czas: %6.3f/%6.3f/%6.3f\n"
+msgstr "Użyta pamięć: %d, upłynął czas: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
-msgstr "rozmiar i-wêz³a=%d\n"
+msgstr "rozmiar i-węzła=%d\n"
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
-msgstr "podczas rozpoczynania przeszukiwania i-wêz³ów"
+msgstr "podczas rozpoczynania przeszukiwania i-węzłów"
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
-msgstr "podczas przeszukiwania i-wêz³ów"
+msgstr "podczas przeszukiwania i-węzłów"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
-msgstr "podczas wywo³ania ext2fs_block_iterate dla i-wêz³a %d"
+msgstr "podczas wywołania ext2fs_block_iterate dla i-węzła %d"
-#: e2fsck/super.c:210
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
-msgstr "podczas wywo³ania ext2fs_adjust_ea_refcount2 dla i-wêz³a %d"
+msgstr "podczas wywołania ext2fs_adjust_ea_refcount2 dla i-węzła %d"
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Skracanie"
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Czyszczenie"
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2549,32 +2610,32 @@ msgid ""
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extended-options] device\n"
msgstr ""
-"Sk³adnia: %s [-panyrcdfvtDFV] [-b superblok] [-B rozm_bloku]\n"
-"\t\t[-I bloków_bufora_i-wêz³ów] [-P rozmiar_i-wêz³a]\n"
-"\t\t[-l|-L plik_wadliwych_bloków] [-C fd] [-j zewn-kronika]\n"
-"\t\t[-E rozszerzone-opcje] urz±dzenie\n"
+"Składnia: %s [-panyrcdfvtDFV] [-b superblok] [-B rozm_bloku]\n"
+"\t\t[-I bloków_bufora_i-węzłów] [-P rozmiar_i-węzła]\n"
+"\t\t[-l|-L plik_wadliwych_bloków] [-C fd] [-j zewn-kronika]\n"
+"\t\t[-E rozszerzone-opcje] urzÄ…dzenie\n"
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
"Awaryjna pomoc:\n"
-" -p Automatyczne naprawianie (bez pytañ)\n"
-" -n Nie wykonywanie zmian w systemie plików\n"
-" -y Przyjêcie odpowiedzi \"tak\" na wszystkie pytania\n"
-" -c Szukanie wadliwych bloków i dodanie ich do listy\n"
-" -f Wymuszenie sprawdzenia nawet \"czystego\" systemu plików\n"
-
-#: e2fsck/unix.c:89
-#, c-format
+" -p Automatyczne naprawianie (bez pytań)\n"
+" -n Nie wykonywanie zmian w systemie plików\n"
+" -y Przyjęcie odpowiedzi \"tak\" na wszystkie pytania\n"
+" -c Szukanie wadliwych bloków i dodanie ich do listy\n"
+" -f Wymuszenie sprawdzenia nawet \"czystego\" systemu "
+"plików\n"
+
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2583,202 +2644,201 @@ msgid ""
" -l bad_blocks_file Add to badblocks list\n"
" -L bad_blocks_file Set badblocks list\n"
msgstr ""
-" -v Pokazywanie wiêkszej ilo¶ci informacji\n"
-" -b superblok U¿ycie innego superbloku\n"
-" -B rozm.bloku Wymuszenie rozmiaru bloku przy poszukiwaniu superbloku\n"
-" -j zewn-kronika Ustawienie po³o¿enia zewnêtrznej kroniki\n"
-" -l plik_z³ych_bloków Dodanie do listy wadliwych bloków\n"
-" -L plik_z³ych_bloków Ustawienie listy wadliwych bloków\n"
+" -v Pokazywanie większej ilości informacji\n"
+" -b superblok Użycie innego superbloku\n"
+" -B rozm.bloku Wymuszenie rozmiaru bloku przy poszukiwaniu "
+"superbloku\n"
+" -j zewn-kronika Ustawienie położenia zewnętrznej kroniki\n"
+" -l plik_złych_bloków Dodanie do listy wadliwych bloków\n"
+" -L plik_złych_bloków Ustawienie listy wadliwych bloków\n"
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
-msgstr "%s: %u/%u plików (%0d.%d%% nieci±g³ych), %llu/%llu bloków\n"
+msgstr "%s: %u/%u plików (%0d.%d%% nieciągłych), %llu/%llu bloków\n"
-#: e2fsck/unix.c:139
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u u¿yty i-wêze³ (%2.2f%%)\n"
+"%12u użyty i-węzeł (%2.2f%% z %u)\n"
msgstr[1] ""
"\n"
-"%8u u¿yte i-wêz³y (%2.2f%%)\n"
+"%12u użyte i-węzły (%2.2f%% z %u)\n"
msgstr[2] ""
"\n"
-"%8u u¿ytych i-wêz³ów (%2.2f%%)\n"
+"%12u użytych i-węzłów (%2.2f%% z %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u plik nieci±g³y (%0d.%d%%)\n"
-msgstr[1] "%8u pliki nieci±g³e (%0d.%d%%)\n"
-msgstr[2] "%8u plików nieci±g³ych (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u plik nieciągły (%0d.%d%%)\n"
+msgstr[1] "%12u pliki nieciągłe (%0d.%d%%)\n"
+msgstr[2] "%12u plików nieciągłych (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u katalog nieci±g³y (%0d.%d%%)\n"
-msgstr[1] "%8u katalogi nieci±g³e (%0d.%d%%)\n"
-msgstr[2] "%8u katalogów nieci±g³ych (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u katalog nieciągły (%0d.%d%%)\n"
+msgstr[1] "%12u katalogi nieciągłe (%0d.%d%%)\n"
+msgstr[2] "%12u katalogów nieciągłych (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " liczba i-wêz³ów z blokami ind/dind/tind: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " liczba i-węzłów z blokami ind/dind/tind: %u/%u/%u\n"
-#: e2fsck/unix.c:158
-#, c-format
-msgid " Extent depth histogram: "
-msgstr " Histogram g³êboko¶ci ekstentów: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogram głębokości ekstentów: "
-#: e2fsck/unix.c:167
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu u¿yty blok (%2.2f%%)\n"
-msgstr[1] "%8llu u¿yte bloki (%2.2f%%)\n"
-msgstr[2] "%8llu u¿ytych bloków (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu użyty blok (%2.2f%% z %llu)\n"
+msgstr[1] "%12llu użyte bloki (%2.2f%% z %llu)\n"
+msgstr[2] "%12llu użytych bloków (%2.2f%% z %llu)\n"
-#: e2fsck/unix.c:170
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u wadliwy blok\n"
-msgstr[1] "%8u wadliwe bloki\n"
-msgstr[2] "%8u wadliwych bloków\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u wadliwy blok\n"
+msgstr[1] "%12u wadliwe bloki\n"
+msgstr[2] "%12u wadliwych bloków\n"
-#: e2fsck/unix.c:172
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u du¿y plik\n"
-msgstr[1] "%8u du¿e pliki\n"
-msgstr[2] "%8u du¿ych plików\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u duży plik\n"
+msgstr[1] "%12u duże pliki\n"
+msgstr[2] "%12u dużych plików\n"
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u zwyk³y plik\n"
+"%12u zwykły plik\n"
msgstr[1] ""
"\n"
-"%8u zwyk³e pliki\n"
+"%12u zwykłe pliki\n"
msgstr[2] ""
"\n"
-"%8u zwyk³ych plików\n"
+"%12u zwykłych plików\n"
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u katalog\n"
-msgstr[1] "%8u katalogi\n"
-msgstr[2] "%8u katalogów\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u katalog\n"
+msgstr[1] "%12u katalogi\n"
+msgstr[2] "%12u katalogów\n"
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u plik urz±dzenia znakowego\n"
-msgstr[1] "%8u pliki urz±dzeñ znakowych\n"
-msgstr[2] "%8u plików urz±dzeñ znakowych\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u plik urzÄ…dzenia znakowego\n"
+msgstr[1] "%12u pliki urządzeń znakowych\n"
+msgstr[2] "%12u plików urządzeń znakowych\n"
-#: e2fsck/unix.c:181
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u plik urz±dzenia blokowego\n"
-msgstr[1] "%8u pliki urz±dzeñ blokowych\n"
-msgstr[2] "%8u plików urz±dzeñ blokowych\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u plik urzÄ…dzenia blokowego\n"
+msgstr[1] "%12u pliki urządzeń blokowych\n"
+msgstr[2] "%12u plików urządzeń blokowych\n"
-#: e2fsck/unix.c:183
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u potok\n"
-msgstr[1] "%8u potoki\n"
-msgstr[2] "%8u potoków\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u potok\n"
+msgstr[1] "%12u potoki\n"
+msgstr[2] "%12u potoków\n"
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u dowi±zanie\n"
-msgstr[1] "%8u dowi±zania\n"
-msgstr[2] "%8u dowi±zañ\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u dowiÄ…zanie\n"
+msgstr[1] "%12u dowiÄ…zania\n"
+msgstr[2] "%12u dowiązań\n"
-#: e2fsck/unix.c:188
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u dowi±zanie symboliczne"
-msgstr[1] "%8u dowi±zania symboliczne"
-msgstr[2] "%8u dowi±zañ symbolicznych"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u dowiÄ…zanie symboliczne"
+msgstr[1] "%12u dowiÄ…zania symboliczne"
+msgstr[2] "%12u dowiązań symbolicznych"
-#: e2fsck/unix.c:190
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
-msgstr[0] " (%u szybkie dowi±zanie symboliczne)\n"
-msgstr[1] " (%u szybkie dowi±zania symboliczne)\n"
-msgstr[2] " (%u szybkich dowi±zañ symbolicznych)\n"
+msgstr[0] " (%u szybkie dowiÄ…zanie symboliczne)\n"
+msgstr[1] " (%u szybkie dowiÄ…zania symboliczne)\n"
+msgstr[2] " (%u szybkich dowiązań symbolicznych)\n"
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u gniazdo\n"
-msgstr[1] "%8u gniazda\n"
-msgstr[2] "%8u gniazd\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u gniazdo\n"
+msgstr[1] "%12u gniazda\n"
+msgstr[2] "%12u gniazd\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u plik\n"
-msgstr[1] "%8u pliki\n"
-msgstr[2] "%8u plików\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u plik\n"
+msgstr[1] "%12u pliki\n"
+msgstr[2] "%12u plików\n"
-#: e2fsck/unix.c:209 misc/badblocks.c:984 misc/tune2fs.c:1978 misc/util.c:147
-#: resize/main.c:251
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "podczas sprawdzania, czy %s jest zamontowany."
-#: e2fsck/unix.c:227
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
-msgstr "Uwaga! %s jest zamontowany.\n"
+msgid "Warning! %s is %s.\n"
+msgstr "Uwaga! %s jest %s.\n"
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s jest zamontowany. "
+msgid "%s is %s.\n"
+msgstr "%s jest %s.\n"
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
msgstr ""
-"Nie mo¿na kontynuowaæ, przerwano.\n"
+"Nie można kontynuować, przerwano.\n"
"\n"
-#: e2fsck/unix.c:235
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2788,142 +2848,139 @@ msgid ""
msgstr ""
"\n"
"\n"
-"UWAGA!!! System plików jest zamontowany. Kontynuacja ***SPOWODUJE***\n"
-"***POWA¯NE*** uszkodzenie systemu plików.\n"
+"UWAGA!!! System plików jest zamontowany. Kontynuacja ***SPOWODUJE***\n"
+"***POWAŻNE*** uszkodzenie systemu plików.\n"
"\n"
-#: e2fsck/unix.c:239
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
-msgstr "Naprawdê kontynuowaæ?"
+msgstr "Naprawdę kontynuować?"
-#: e2fsck/unix.c:241
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "sprawdzanie przerwane.\n"
-#: e2fsck/unix.c:323
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
-msgstr " zawiera system plików z b³êdami"
+msgstr " zawiera system plików z błędami"
-#: e2fsck/unix.c:325
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
-msgstr " nie by³ czysto odmontowany"
+msgstr " nie był czysto odmontowany"
-#: e2fsck/unix.c:327
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
-msgstr " cechy g³ównego superbloku ró¿ni± siê od kopii zapasowej"
+msgstr " cechy głównego superbloku różnią się od kopii zapasowej"
-#: e2fsck/unix.c:331
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
-msgstr " by³ montowany %u razy bez sprawdzania"
+msgstr " był montowany %u razy bez sprawdzania"
-#: e2fsck/unix.c:338
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
-msgstr " ma czas ostatniego sprawdzenia systemu plików w przysz³o¶ci"
+msgstr " ma czas ostatniego sprawdzenia systemu plików w przyszłości"
-#: e2fsck/unix.c:344
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
-msgstr " przetrwa³ %u dni bez sprawdzania"
+msgstr " przetrwał %u dni bez sprawdzania"
-#: e2fsck/unix.c:353
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", wymuszono sprawdzenie.\n"
-#: e2fsck/unix.c:386
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
-msgstr "%s: czysty, %u/%u plików, %llu/%llu bloków"
+msgstr "%s: czysty, %u/%u plików, %llu/%llu bloków"
-#: e2fsck/unix.c:404
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (sprawdzenie wstrzymane; zasilanie z baterii)"
-#: e2fsck/unix.c:407
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
-msgstr " (sprawdzenie po nastêpnym montowaniu)"
+msgstr " (sprawdzenie po następnym montowaniu)"
-#: e2fsck/unix.c:409
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
-msgstr "(sprawdzenie za %ld montowañ)"
+msgstr "(sprawdzenie za %ld montowań)"
-#: e2fsck/unix.c:559
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
-msgstr "B£¡D: Nie mo¿na otworzyæ /dev/null (%s)\n"
+msgstr "BÅÄ„D: Nie można otworzyć /dev/null (%s)\n"
-#: e2fsck/unix.c:628
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
-msgstr "B³êdna wersja EA.\n"
+msgstr "Błędna wersja EA.\n"
-#: e2fsck/unix.c:649
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Nieznana opcja rozszerzona: %s\n"
-#: e2fsck/unix.c:674
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-"B³±d sk³adni w pliku konfiguracyjnym e2fsck (%s, linia %d)\n"
+"Błąd składni w pliku konfiguracyjnym e2fsck (%s, linia %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:743
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
-msgstr "B³±d podczas kontroli deskryptora pliku %d: %s\n"
+msgstr "BÅ‚Ä…d podczas kontroli deskryptora pliku %d: %s\n"
-#: e2fsck/unix.c:747
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
-msgstr "B³êdne informacje dope³niaj±ce deskryptora plików"
+msgstr "Błędne informacje dopełniające deskryptora plików"
-#: e2fsck/unix.c:762
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
-msgstr "Mo¿na podaæ tylko jedn± z opcji -p/-a, -n lub -y."
+msgstr "Można podać tylko jedną z opcji -p/-a, -n lub -y."
-#: e2fsck/unix.c:783
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
-msgstr "Opcja -t nie jest obs³ugiwana przez tê wersjê e2fsck.\n"
+msgstr "Opcja -t nie jest obsługiwana przez tę wersję e2fsck.\n"
-#: e2fsck/unix.c:814 e2fsck/unix.c:886 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
-msgstr "Nie uda³o siê rozwi±zaæ '%s'"
+msgstr "Nie udało się rozwiązać '%s'"
-#: e2fsck/unix.c:865
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
-msgstr "Opcje -n i -D s± niekompatybilne."
+msgstr "Opcje -n i -D sÄ… niekompatybilne."
-#: e2fsck/unix.c:870
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
-msgstr "Opcje -n i -c s± niekompatybilne."
+msgstr "Opcje -n i -c sÄ… niekompatybilne."
-#: e2fsck/unix.c:875
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
-msgstr "Opcje -n i -l/-L s± niekompatybilne."
+msgstr "Opcje -n i -l/-L sÄ… niekompatybilne."
-#: e2fsck/unix.c:915
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
-msgstr "Opcje -c oraz -l/-L nie mog± byæ podane jednocze¶nie.\n"
+msgstr "Opcje -c oraz -l/-L nie mogą być podane jednocześnie.\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-"E2FSCK_JBD_DEBUG \"%s\" nie jest liczb± ca³kowit±\n"
+"E2FSCK_JBD_DEBUG \"%s\" nie jest liczbą całkowitą\n"
"\n"
-#: e2fsck/unix.c:972
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2931,219 +2988,215 @@ msgid ""
"\n"
msgstr ""
"\n"
-"B³êdny argument nieliczbowy dla -%c (\"%s\")\n"
+"Błędny argument nieliczbowy dla -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1074 e2fsck/unix.c:1079
+#: e2fsck/unix.c:1129
+#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+"Przedział MMP to %u sek, a całkowity czas oczekiwania %u sek. Proszę "
+"czekać...\n"
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
msgstr "podczas sprawdzania bloku MMP"
-#: e2fsck/unix.c:1081 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Je¶li system plików nie jest na pewno u¿ywany przez ¿aden system, mo¿na uruchomiæ:\n"
-"'tune2fs -f -E clear_mmp {urz±dzenie}'\n"
+"Jeśli system plików nie jest na pewno używany przez żaden system, można "
+"uruchomić:\n"
+"'tune2fs -f -E clear_mmp {urzÄ…dzenie}'\n"
-#: e2fsck/unix.c:1130
-#, c-format
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
-msgstr "B³±d: wersja biblioteki ext2fs jest za stara!\n"
+msgstr "BÅ‚Ä…d: wersja biblioteki ext2fs jest za stara!\n"
-#: e2fsck/unix.c:1138
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
-msgstr "podczas próby inicjalizacji programu"
+msgstr "podczas próby zainicjowania programu"
-#: e2fsck/unix.c:1149
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
-msgstr "\tU¿ywane %s, %s\n"
+msgstr "\tUżywane %s, %s\n"
-#: e2fsck/unix.c:1161
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "interaktywna naprawa wymaga terminala"
-#: e2fsck/unix.c:1200
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
-msgstr "%s: %s próba u¿ycia zapasowych bloków...\n"
+msgstr "%s: %s próba użycia zapasowych bloków...\n"
-#: e2fsck/unix.c:1202
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
-msgstr "Superblok b³êdny,"
+msgstr "Superblok błędny,"
-#: e2fsck/unix.c:1203
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
-msgstr "Deskryptory grup wygl±daj± ¼le..."
+msgstr "Deskryptory grup wyglądają źle..."
-#: e2fsck/unix.c:1215
+#: e2fsck/unix.c:1312
+#, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s podczas próby użycia zapasowych bloków"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: powracanie do oryginalnego superbloku\n"
-#: e2fsck/unix.c:1242
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"\n"
msgstr ""
-"Wersja systemu plików jest zbyt du¿a dla tej wersji e2fsck.\n"
-"(lub superblok systemu plików jest uszkodzony)\n"
+"Wersja systemu plików jest zbyt duża dla tej wersji e2fsck.\n"
+"(lub superblok systemu plików jest uszkodzony)\n"
"\n"
-#: e2fsck/unix.c:1248
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
-msgstr "Czy to mo¿e jest partycja zerowej d³ugo¶ci?\n"
+msgstr "Czy to może jest partycja zerowej długości?\n"
-#: e2fsck/unix.c:1250
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
-msgstr "Trzeba mieæ dostêp %s do systemu plików lub byæ rootem\n"
+msgstr "Trzeba mieć dostęp %s do systemu plików lub być rootem\n"
-#: e2fsck/unix.c:1255
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
-msgstr "Zapewne nie istniej±ce urz±dzenie lub swap?\n"
+msgstr "Zapewne nie istniejÄ…ce urzÄ…dzenie lub swap?\n"
-#: e2fsck/unix.c:1257
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr "System plików zamontowany lub otwarty na wy³±czno¶æ przez inny program?\n"
+msgstr ""
+"System plików zamontowany lub otwarty na wyłączność przez inny program?\n"
-#: e2fsck/unix.c:1260
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
-msgstr "Zapewne nie istniej±ce urz±dzenie?\n"
+msgstr "Zapewne nie istniejÄ…ce urzÄ…dzenie?\n"
-#: e2fsck/unix.c:1263
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-"Dysk zabezpieczony przed zapisem; mo¿na u¿yæ opcji -n aby sprawdziæ\n"
-"urz±dzenie w trybie tylko do odczytu.\n"
+"Dysk zabezpieczony przed zapisem; można użyć opcji -n aby sprawdzić\n"
+"urzÄ…dzenie w trybie tylko do odczytu.\n"
-#: e2fsck/unix.c:1327
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "Potrzeba nowszej wersji e2fsck!"
-#: e2fsck/unix.c:1373
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "podczas sprawdzania kroniki ext3 dla %s"
-#: e2fsck/unix.c:1384
-#, c-format
-msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+#: e2fsck/unix.c:1489
+msgid ""
+"Warning: skipping journal recovery because doing a read-only filesystem "
+"check.\n"
msgstr ""
-"Uwaga: pominiêto odtwarzanie z kroniki z powodu sprawdzania w trybie tylko\n"
+"Uwaga: pominięto odtwarzanie z kroniki z powodu sprawdzania w trybie tylko\n"
"do odczytu.\n"
-#: e2fsck/unix.c:1397
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
-msgstr "nie mo¿na ustawiæ flag superbloku na %s\n"
+msgstr "nie można ustawić flag superbloku na %s\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "podczas odtwarzania z kroniki ext3 dla %s"
-#: e2fsck/unix.c:1428
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
-msgstr "%s ma w³±czone nie obs³ugiwane cechy:"
+msgstr "%s ma włączone nie obsługiwane cechy:"
-#: e2fsck/unix.c:1444
-msgid "Warning: compression support is experimental.\n"
-msgstr "Uwaga: obs³uga kompresji jest eksperymentalna.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s: uwaga: obsługa kompresji jest eksperymentalna.\n"
-#: e2fsck/unix.c:1449
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"E2fsck skompilowany bez obs³ugi HTREE,\n"
-"\tale system plików %s ma katalogi HTREE.\n"
+"%s: e2fsck skompilowany bez obsługi HTREE,\n"
+"\tale system plików %s ma katalogi HTREE.\n"
-#: e2fsck/unix.c:1502
-msgid "while reading bad blocks inode"
-msgstr "podczas odczytu i-wêz³a wadliwych bloków"
-
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1605
#, c-format
-msgid "This doesn't bode well, but we'll try to go on...\n"
-msgstr "Nie wró¿y to dobrze, ale spróbujê kontynuowaæ...\n"
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s: %s podczas odczytu i-węzła wadliwych bloków\n"
-#: e2fsck/unix.c:1543
-msgid "Couldn't determine journal size"
-msgstr "Nie uda³o siê okre¶liæ rozmiaru kroniki"
+#: e2fsck/unix.c:1608
+msgid "This doesn't bode well, but we'll try to go on...\n"
+msgstr "Nie wróży to dobrze, ale spróbuję kontynuować...\n"
-#: e2fsck/unix.c:1546
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
-msgstr "Tworzenie kroniki (%d bloków): "
+msgstr "Tworzenie kroniki (%d bloków): "
-#: e2fsck/unix.c:1553 misc/mke2fs.c:2535
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tpodczas próby utworzenia kroniki"
-
-#: e2fsck/unix.c:1556
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " Wykonano.\n"
-#: e2fsck/unix.c:1557
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
"\n"
-"*** kronika zosta³a ponownie utworzona - system plików to znowu ext3 ***\n"
+"*** kronika została ponownie utworzona - system plików to znowu ext3 ***\n"
-#: e2fsck/unix.c:1569
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
-msgstr "Restart e2fsck od pocz±tku...\n"
+msgstr "Restart e2fsck od poczÄ…tku...\n"
-#: e2fsck/unix.c:1573
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "podczas resetowania kontekstu"
-#: e2fsck/unix.c:1580
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck przerwany.\n"
-#: e2fsck/unix.c:1585
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "przerwano"
-#: e2fsck/unix.c:1597 e2fsck/util.c:66
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"%s: ***** FILE SYSTEM WAS MODIFIED *****\n"
msgstr ""
"\n"
-"%s: ***** SYSTEM PLIKÓW ZMODYFIKOWANY *****\n"
+"%s: ***** SYSTEM PLIKÓW ZMODYFIKOWANY *****\n"
-#: e2fsck/unix.c:1600
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** WYMAGANY RESTART LINUKSA *****\n"
-#: e2fsck/unix.c:1608 e2fsck/util.c:72
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -3151,46 +3204,46 @@ msgid ""
"\n"
msgstr ""
"\n"
-"%s: ********** UWAGA: System plików nadal ma b³êdy **********\n"
+"%s: ********** UWAGA: System plików nadal ma błędy **********\n"
"\n"
-#: e2fsck/unix.c:1648
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
-msgstr "podczas ustawiania informacji o sumie kontrolnej grupy bloków"
+msgstr "podczas ustawiania informacji o sumie kontrolnej grupy bloków"
-#: e2fsck/util.c:160 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "tTyY"
-#: e2fsck/util.c:161
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:175
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<t>"
-#: e2fsck/util.c:177
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:179
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (t/n)"
-#: e2fsck/util.c:194
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "anulowano!\n"
-#: e2fsck/util.c:209
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "tak\n"
-#: e2fsck/util.c:211
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "nie\n"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3199,7 +3252,7 @@ msgstr ""
"%s? nie\n"
"\n"
-#: e2fsck/util.c:225
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3208,38 +3261,38 @@ msgstr ""
"%s? tak\n"
"\n"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "yes"
msgstr "tak"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "no"
msgstr "nie"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps: niedopuszczalne bloki bitmapy dla %s"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
-msgstr "odczytu bitmap i-wêz³ów i bloków"
+msgstr "odczytu bitmap i-węzłów i bloków"
-#: e2fsck/util.c:253
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
-msgstr "podczas ponawiania próby odczytu bitmap dla %s"
+msgstr "podczas ponawiania próby odczytu bitmap dla %s"
-#: e2fsck/util.c:265
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
-msgstr "zapisu bitmap bloków i i-wêz³ów"
+msgstr "zapisu bitmap bloków i i-węzłów"
-#: e2fsck/util.c:270
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
-msgstr "podczas ponownego zapisu bitmap blików i i-wêz³ów dla %s"
+msgstr "podczas ponownego zapisu bitmap blików i i-węzłów dla %s"
-#: e2fsck/util.c:282
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3249,340 +3302,359 @@ msgid ""
msgstr ""
"\n"
"\n"
-"%s: NIEOCZEKIWANA NIESPÓJNO¦Æ; TRZEBA URUCHOMIÆ fsck RÊCZNIE.\n"
+"%s: NIEOCZEKIWANA NIESPÓJNOŚĆ; TRZEBA URUCHOMIĆ fsck RĘCZNIE.\n"
"\t(tzn. bez opcji -a ani -p)\n"
-#: e2fsck/util.c:363
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
-msgstr "U¿yta pamiêæ: %luk/%luk (%luk/%luk), "
+msgstr "Użyta pamięć: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:367
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
-msgstr "U¿yta pamiêæ: %lu, "
+msgstr "Użyta pamięć: %lu, "
-#: e2fsck/util.c:374
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "czas: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:379
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
-msgstr "up³yn±³ czas: %6.f\n"
+msgstr "upłynął czas: %6.f\n"
-#: e2fsck/util.c:413 e2fsck/util.c:427
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
-msgstr "podczas odczytu i-wêz³a %lu w %s"
+msgstr "podczas odczytu i-węzła %lu w %s"
-#: e2fsck/util.c:441 e2fsck/util.c:454
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
-msgstr "podczas zapisu i-wêz³a %lu w %s"
+msgstr "podczas zapisu i-węzła %lu w %s"
-#: e2fsck/util.c:603
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
-msgstr "podczas przydzielania bufora zeruj±cego"
+msgstr "podczas przydzielania bufora zerujÄ…cego"
-#: e2fsck/util.c:755
-msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
-msgstr "NIEOCZEKIWANA NIESPÓJNO¦Æ: system plików zosta³ zmodyfikowany podczas dzia³ania fsck.\n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+"NIEOCZEKIWANA NIESPÓJNOŚĆ: system plików został zmodyfikowany podczas "
+"działania fsck.\n"
#: misc/badblocks.c:69
msgid "done \n"
-msgstr "zakoñczono \n"
+msgstr "zakończono \n"
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-"Sk³adnia: %s [-b rozm_bloku] [-i plik_wej] [-o plik_wyj] [-svwnf]\n"
-" [-c bloków_naraz] [-d wsp_opó¼n_miêdzy_odczytami]\n"
-" [-e maks_wadliwych_bloków] [-p przebiegów]\n"
-" [-t wzór_testowy [-t wzór_testowy [...]]]\n"
-" urz±dzenie [ostatni_blok [pierwszy_blok]]\n"
+"Składnia: %s [-b rozm_bloku] [-i plik_wej] [-o plik_wyj] [-svwnf]\n"
+" [-c bloków_naraz] [-d wsp_opóźn_między_odczytami]\n"
+" [-e maks_wadliwych_bloków] [-p przebiegów]\n"
+" [-t wzór_testowy [-t wzór_testowy [...]]]\n"
+" urzÄ…dzenie [ostatni_blok [pierwszy_blok]]\n"
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-"%s: Opcje -n i -w wykluczaj± siê wzajemnie.\n"
+"%s: Opcje -n i -w wykluczajÄ… siÄ™ wzajemnie.\n"
"\n"
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
-msgstr "Gotowe w %6.2f%%, minê³o %s (b³êdów: %d/%d/%d)"
+msgstr "Gotowe w %6.2f%%, minęło %s (błędów: %d/%d/%d)"
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Testowanie wzorcem losowym: "
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Testowanie wzorcem 0x"
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "podczas przeskakiwania"
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
-msgstr "Dziwna warto¶æ (%ld) w do_read\n"
+msgstr "Dziwna wartość (%ld) w do_read\n"
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "podczas ext2fs_sync_device"
-#: misc/badblocks.c:489 misc/badblocks.c:750
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
-msgstr "podczas rozpoczynania iteracji po li¶cie wadliwych bloków"
+msgstr "podczas rozpoczynania iteracji po liście wadliwych bloków"
-#: misc/badblocks.c:503 misc/badblocks.c:603 misc/badblocks.c:760
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
-msgstr "podczas przydzielania buforów"
+msgstr "podczas przydzielania buforów"
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
-msgstr "Sprawdzanie bloków od %lu do %lu\n"
+msgstr "Sprawdzanie bloków od %lu do %lu\n"
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
-msgstr "Poszukiwanie wadliwych bloków w trybie tylko do odczytu\n"
+msgstr "Poszukiwanie wadliwych bloków w trybie tylko do odczytu\n"
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
-msgstr "Poszukiwanie wadliwych bloków (tylko odczyt): "
+msgstr "Poszukiwanie wadliwych bloków (tylko odczyt): "
-#: misc/badblocks.c:529 misc/badblocks.c:635 misc/badblocks.c:677
-#: misc/badblocks.c:823
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
-msgstr "Zbyt du¿o wadliwych bloków, przerwanie testu\n"
+msgstr "Zbyt dużo wadliwych bloków, przerwanie testu\n"
-#: misc/badblocks.c:610
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
-msgstr "Poszukiwanie wadliwych bloków w trybie odczytu i zapisu\n"
+msgstr "Poszukiwanie wadliwych bloków w trybie odczytu i zapisu\n"
-#: misc/badblocks.c:612 misc/badblocks.c:773
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Od bloku %lu do %lu\n"
-#: misc/badblocks.c:667
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
-msgstr "Odczyt i porównywanie: "
+msgstr "Odczyt i porównywanie: "
-#: misc/badblocks.c:772
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
-msgstr "Poszukiwanie wadliwych bloków w trybie z niedestruktywnym zapisem\n"
+msgstr "Poszukiwanie wadliwych bloków w trybie z niedestruktywnym zapisem\n"
-#: misc/badblocks.c:778
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr "Poszukiwanie wadliwych bloków (odczyt i niedestruktywny zapis)\n"
+msgstr "Poszukiwanie wadliwych bloków (odczyt i niedestruktywny zapis)\n"
-#: misc/badblocks.c:785
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
msgstr ""
"\n"
-"Otrzymano przerwanie, sprz±tam\n"
+"Otrzymano przerwanie, sprzÄ…tam\n"
"\n"
-#: misc/badblocks.c:868
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "podczas zapisu testowych danych, blok %lu"
-#: misc/badblocks.c:989 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s jest zamontowany; "
-#: misc/badblocks.c:991
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "badblocks wymuszone mimo to. Mam nadziejê, ¿e /etc/mtab siê myli.\n"
+msgstr "badblocks wymuszone mimo to. Mam nadzieję, że /etc/mtab się myli.\n"
-#: misc/badblocks.c:996
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
-msgstr "nie jest bezpiecznie uruchamiaæ badblocks!\n"
+msgstr "nie jest bezpiecznie uruchamiać badblocks!\n"
-#: misc/badblocks.c:1001 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
-msgstr "%s jest najwyra¼niej u¿ywany przez system; "
+msgstr "%s jest najwyraźniej używany przez system; "
-#: misc/badblocks.c:1004
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "badblocks wymuszone mimo to.\n"
-#: misc/badblocks.c:1024
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
-msgstr "b³êdny %s - %s"
+msgstr "błędny %s - %s"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
-msgstr "nie mo¿na przydzieliæ pamiêci na wzorzec_testowy - %s"
+msgstr "nie można przydzielić pamięci na wzorzec_testowy - %s"
-#: misc/badblocks.c:1164
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
-msgstr "W trybie odczytu-zapisu mo¿na podaæ najwy¿ej jeden wzorzec testowy"
+msgstr "W trybie odczytu-zapisu można podać najwyżej jeden wzorzec testowy"
-#: misc/badblocks.c:1170
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
-msgstr "W trybie samego odczytu nie mo¿na podaæ wzorca_testowego"
+msgstr "W trybie samego odczytu nie można podać wzorca_testowego"
-#: misc/badblocks.c:1184
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
msgstr ""
-"Nie mo¿na okre¶liæ rozmiaru urz±dzenia; trzeba podaæ\n"
-"rozmiar rêcznie\n"
+"Nie można określić rozmiaru urządzenia; trzeba podać\n"
+"rozmiar ręcznie\n"
-#: misc/badblocks.c:1190
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
-msgstr "podczas próby okre¶lenia rozmiaru urz±dzenia"
+msgstr "podczas próby określenia rozmiaru urządzenia"
-#: misc/badblocks.c:1195
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "ostatni blok"
-#: misc/badblocks.c:1201
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "pierwszy blok"
-#: misc/badblocks.c:1204
+#: misc/badblocks.c:1209
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
-msgstr "b³êdny pocz±tkowy blok (%lu): musi byæ mniejszy ni¿ %lu"
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "błędny początkowy blok (%llu): musi być mniejszy niż %llu"
-#: misc/badblocks.c:1260
+#: misc/badblocks.c:1216
+#, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "błędny początkowy blok (%llu): musi być wartością 32-bitową"
+
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
-msgstr "podczas tworzenia listy wadliwych bloków w pamiêci"
+msgstr "podczas tworzenia listy wadliwych bloków w pamięci"
+
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr "plik wejściowy - błędny format"
-#: misc/badblocks.c:1275
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
-msgstr "podczas dodawania do listy wadliwych bloków w pamiêci"
+msgstr "podczas dodawania do listy wadliwych bloków w pamięci"
-#: misc/badblocks.c:1299
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
-msgstr "Przebieg zakoñczony, znaleziono %u wadliwych bloków (b³êdów: %d/%d/%d).\n"
+msgstr ""
+"Przebieg zakończony, znaleziono %u wadliwych bloków (błędów: %d/%d/%d).\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Sk³adnia: %s [-RVf] [-+=AacDdeijsSu] [-v wersja] pliki...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Składnia: %s [-RVf] [-+=AaCcDdeijsSu] [-v wersja] pliki...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
-msgstr "b³êdna wersja - %s\n"
+msgstr "błędna wersja - %s\n"
#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
-msgstr "podczas próby stat %s"
+msgstr "podczas próby stat %s"
#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr "podczas odczytu flag %s"
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr "Usuwanie flagi ekstentów nie jest obs³ugiwane na %s"
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "Flagi %s ustawiono jako "
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "podczas ustawiania flag %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Wersja %s ustawiona jako %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "podczas ustawiania wersji %s"
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
-msgstr "Nie mo¿na przydzieliæ zmiennej path w chattr_dir_proc"
+msgstr "Nie można przydzielić zmiennej path w chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= jest niekompatybilne z - i +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
-msgstr "Trzeba u¿yæ '-v', =, - lub +\n"
+msgstr "Trzeba użyć '-v', =, - lub +\n"
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr "Sk³adnia: %s [-bfhixV] [-o superblok=<numer>] [-o blocksize=<rozmiar>] urz±dzenie\n"
+msgstr ""
+"Składnia: %s [-bfhixV] [-o superblok=<numer>] [-o blocksize=<rozmiar>] "
+"urzÄ…dzenie\n"
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
-msgstr "bloków"
+msgstr "bloków"
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
-msgstr "klastrów"
+msgstr "klastrów"
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Grupa %lu: (Bloki "
-#: misc/dumpe2fs.c:194
+#: misc/dumpe2fs.c:205
+#, c-format
+msgid " Checksum 0x%04x"
+msgstr " Suma kontrolna 0x%04x"
+
+#: misc/dumpe2fs.c:207
#, c-format
-msgid " Checksum 0x%04x, unused inodes %u\n"
-msgstr " Suma kontrolna 0x%04x, nie u¿ywanych i-wêz³ów: %u\n"
+msgid " (EXPECTED 0x%04x)"
+msgstr " (OCZEKIWANA 0x%04x)"
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:208
+#, c-format
+msgid ", unused inodes %u\n"
+msgstr ", nie używanych i-węzłów: %u\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s superblok pod "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Primary"
-msgstr "G³ówny"
+msgstr "Główny"
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Zapasowy"
-#: misc/dumpe2fs.c:204
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Deskryptory grup pod "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3590,99 +3662,106 @@ msgstr ""
"\n"
" Zarezerwowane bloki GDT pod "
-#: misc/dumpe2fs.c:215
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr ", Deskryptory grup pod "
-#: misc/dumpe2fs.c:221
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
-msgstr " Bitmapa bloków pod "
+msgstr " Bitmapa bloków pod "
-#: misc/dumpe2fs.c:225
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
-msgstr ", bitmapa i-wêz³ów pod "
+msgstr ", bitmapa i-węzłów pod "
-#: misc/dumpe2fs.c:229
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
msgstr ""
"\n"
-" Tablica i-wêz³ów pod "
+" Tablica i-węzłów pod "
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
" %u free %s, %u free inodes, %u directories%s"
msgstr ""
"\n"
-" wolnych %2$s: %1$u, wolnych i-wêz³ów: %3$u, katalogów: %4$u%5$s"
+" wolnych %2$s: %1$u, wolnych i-węzłów: %3$u, katalogów: %4$u%5$s"
-#: misc/dumpe2fs.c:242
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
-msgstr ", nie u¿ywanych i-wêz³ów: %u\n"
+msgstr ", nie używanych i-węzłów: %u\n"
-#: misc/dumpe2fs.c:245
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Wolne bloki: "
-#: misc/dumpe2fs.c:256
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
-msgstr " Wolne i-wêz³y: "
+msgstr " Wolne i-węzły: "
-#: misc/dumpe2fs.c:287
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
-msgstr "podczas wypisywania listy wadliwych bloków"
+msgstr "podczas wypisywania listy wadliwych bloków"
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Wadliwe bloki: %u"
-#: misc/dumpe2fs.c:320 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
-msgstr "podczas odczytu i-wêz³a kroniki"
+msgstr "podczas odczytu i-węzła kroniki"
-#: misc/dumpe2fs.c:326
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
-msgstr "podczas otwierania i-wêz³a kroniki"
+msgstr "podczas otwierania i-węzła kroniki"
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr "podczas odczytu superbloku kroniki"
-#: misc/dumpe2fs.c:342
-#, c-format
+#: misc/dumpe2fs.c:364
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Błędna liczba magiczna superbloku kroniki!\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr "Cechy kroniki: "
-#: misc/dumpe2fs.c:355
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Rozmiar kroniki: "
-#: misc/dumpe2fs.c:366
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
"Journal sequence: 0x%08x\n"
"Journal start: %u\n"
msgstr ""
-"D³ugo¶æ kroniki: %u\n"
+"Długość kroniki: %u\n"
"Sekwencja kroniki: 0x%08x\n"
-"Pocz±tek kroniki: %u\n"
+"PoczÄ…tek kroniki: %u\n"
+
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr "BÅ‚Ä…d kroniki: %d\n"
-#: misc/dumpe2fs.c:385 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "podczas odczytu superbloku kroniki"
-#: misc/dumpe2fs.c:393
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
-msgstr "Nie mo¿na znale¼æ magicznych liczb superbloku kroniki"
+msgstr "Nie można znaleźć magicznych liczb superbloku kroniki"
-#: misc/dumpe2fs.c:397
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3695,33 +3774,32 @@ msgid ""
msgstr ""
"\n"
"Rozmiar bloku kroniki: %u\n"
-"D³ugo¶æ kroniki: %u\n"
+"Długość kroniki: %u\n"
"Pierwszy blok kroniki: %u\n"
"Sekwencja kroniki: 0x%08x\n"
-"Pocz±tek kroniki: %u\n"
-"Liczba u¿ytkowników kroniki: %u\n"
+"PoczÄ…tek kroniki: %u\n"
+"Liczba użytkowników kroniki: %u\n"
-#: misc/dumpe2fs.c:410
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
-msgstr "U¿ytkownicy kroniki: %s\n"
+msgstr "Użytkownicy kroniki: %s\n"
-#: misc/dumpe2fs.c:426 misc/mke2fs.c:663 misc/tune2fs.c:1137
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
-msgstr "Nie mo¿na przydzieliæ pamiêci do analizy opcji!\n"
+msgstr "Nie można przydzielić pamięci do analizy opcji!\n"
-#: misc/dumpe2fs.c:452
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
-msgstr "B³êdny parametr superblock: %s\n"
+msgstr "Błędny parametr superblock: %s\n"
-#: misc/dumpe2fs.c:467
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
-msgstr "B³êdny parametr blocksize: %s\n"
+msgstr "Błędny parametr blocksize: %s\n"
-#: misc/dumpe2fs.c:478
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3735,173 +3813,391 @@ msgid ""
"\tblocksize=<blocksize>\n"
msgstr ""
"\n"
-"Podano b³êdne opcje rozszerzone: %s.\n"
+"Podano błędne opcje rozszerzone: %s.\n"
"\n"
-"Opcje rozszerzone s± oddzielane przecinkami i mog± przyjmowaæ parametr,\n"
-"\tktóry jest ustawiany znakiem '='.\n"
+"Opcje rozszerzone są oddzielane przecinkami i mogą przyjmować parametr,\n"
+"\tktóry jest ustawiany znakiem '='.\n"
"\n"
"Poprawne opcje rozszerzone to:\n"
"\tsuperblock=<numer superbloku>\n"
"\tblocksize=<rozmiar bloku>\n"
-#: misc/dumpe2fs.c:538 misc/mke2fs.c:1521
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
-msgstr "\tU¿ywane %s\n"
+msgstr "\tUżywane %s\n"
-#: misc/dumpe2fs.c:574 misc/e2image.c:1290 misc/tune2fs.c:1923
-#: resize/main.c:310
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
-msgstr "Nie mo¿na znale¼æ poprawnego superbloku systemu plików.\n"
+msgstr "Nie można znaleźć poprawnego superbloku systemu plików.\n"
-#: misc/dumpe2fs.c:599
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
"%s: %s: error reading bitmaps: %s\n"
msgstr ""
"\n"
-"%s: %s: b³±d podczas czytania bitmap: %s\n"
+"%s: %s: błąd podczas czytania bitmap: %s\n"
+
+#: misc/e2image.c:101
+#, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
+msgstr "Składnia: %s [-r|Q ] [ -fr ] urządzenie plik_obrazu\n"
-#: misc/e2image.c:87
+#: misc/e2image.c:103
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Sk³adnia: %s [-rsIQ] urz±dzenie plik_obrazu\n"
+msgid " %s -I device image-file\n"
+msgstr " %s -I urzÄ…dzenie plik_obrazu\n"
-#: misc/e2image.c:135
+#: misc/e2image.c:104
#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+" %s -ra [ -cnfp ] [ -o offset_źr ] [ -O offset_doc ] fs_źr "
+"[ fs_doc ]\n"
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+msgid "while allocating buffer"
+msgstr "podczas przydzielania bufora"
+
+#: misc/e2image.c:174
+#, c-format
+msgid "Writing block %llu\n"
+msgstr "Zapisywanie bloku %llu\n"
+
+#: misc/e2image.c:188
+#, c-format
+msgid "error writing block %llu"
+msgstr "błąd przy zapisie bloku %llu"
+
+#: misc/e2image.c:191
+#, fuzzy
+msgid "error in generic_write()"
+msgstr "błąd podczas write()"
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
-msgstr "B³±d: rozmiar nag³ówka jest wiêkszy ni¿ wrt_size\n"
+msgstr "Błąd: rozmiar nagłówka jest większy niż wrt_size\n"
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
-msgstr "Nie mo¿na przydzieliæ bufora nag³ówka\n"
+msgstr "Nie można przydzielić bufora nagłówka\n"
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "podczas zapisu superbloku"
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
-msgstr "podczas zapisu tabeli i-wêz³ów"
+msgstr "podczas zapisu tabeli i-węzłów"
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
-msgstr "podczas zapisu bitmapy bloków"
+msgstr "podczas zapisu bitmapy bloków"
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
-msgstr "podczas zapisu bitmapy i-wêz³ów"
+msgstr "podczas zapisu bitmapy i-węzłów"
+
+#: misc/e2image.c:502
+#, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Uszkodzony blok katalogu %llu: błędne rec_len (%d)\n"
+
+#: misc/e2image.c:514
+#, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Uszkodzony blok katalogu %llu: błędne name_len (%d)\n"
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "Bloków: %llu / %llu (%d%%)"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr "Kopiowanie "
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+"Zatrzymanie teraz zniszczy system plików; aby potwierdzić, można przerwać "
+"ponownie\n"
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr " %s pozostało przy %.2f MB/s"
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, c-format
+msgid "error reading block %llu"
+msgstr "błąd przy odczycie bloku %llu"
+
+#: misc/e2image.c:715
+#, fuzzy, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr "Bloków: %llu / %llu (%d%%)"
+
+#: misc/e2image.c:719
+#, fuzzy, c-format
+msgid "at %.2f MB/s"
+msgstr " %s pozostało przy %.2f MB/s"
+
+#: misc/e2image.c:755
+msgid "while allocating l1 table"
+msgstr "podczas przydzielania tablicy l1"
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr "podczas przydzielania bufora l2"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+"Uwaga: w pamięci podręcznej są nadal tablice w trakcie zapisu bufora, dane "
+"zostaną utracone, więc obraz może nie być poprawny.\n"
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr "podczas przydzielania ext_qcow2_image"
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr "podczas inicjowania ext2_qcow2_image"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+"Błąd programu: utworzono wiele bloków sekwencyjnych liczników odwołań!\n"
+
+#: misc/e2image.c:1269
+msgid "while allocating block bitmap"
+msgstr "podczas przydzielania bitmapy bloków"
+
+#: misc/e2image.c:1278
+msgid "while allocating scramble block bitmap"
+msgstr "podczas przydzielania bitmapy bloków scramble"
+
+#: misc/e2image.c:1285
+msgid "Scanning inodes...\n"
+msgstr "Przeszukiwanie i-węzłów...\n"
+
+#: misc/e2image.c:1297
+msgid "Can't allocate block buffer"
+msgstr "Nie można przydzielić bufora bloku"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, c-format
+msgid "while iterating over inode %u"
+msgstr "podczas iteracji po i-węźle %u"
+
+#: misc/e2image.c:1381
+#, fuzzy
+msgid "Raw and qcow2 images cannot be installed"
+msgstr "Obrazów surowego i qcow2 nie można zainstalować"
+
+#: misc/e2image.c:1403
+msgid "error reading bitmaps"
+msgstr "błąd podczas odczytu bitmap"
+
+#: misc/e2image.c:1415
+msgid "while opening device file"
+msgstr "podczas otwierania pliku urzÄ…dzenia"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "podczas zapisu tabeli i-węzłów"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr "Opcja -a może być użyta tylko z obrazami surowym lub QCOW2."
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr "Offsety sÄ… dozwolone tylko z obrazami surowymi."
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr "Tryb przesunięcia jest dozwolony tylko z obrazami surowymi."
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr "Tryb przesunięcia wymaga trybu wszystkich danych."
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr "sprawdzanie, czy zamontowany"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+"\n"
+"Uruchamianie e2image na systemie plików zamontowanym do odczytu i zapisu\n"
+"może spowodować, że obraz będzie niespójny, przez co nie będzie przydatny\n"
+"do celów diagnostycznych. Aby na pewno to zrobić, można użyć opcji -f.\n"
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr "Obrazu QCOW2 nie można zapisać na standardowe wyjście!\n"
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr "Obraz (%s) jest skompresowany\n"
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr "Obraz (%s) jest zaszyfrowany\n"
-#: misc/e2image.c:1322
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr "podczas próby przekszta³cenia obrazu qcow2 (%s) na obraz surowy (%s)"
+msgstr "podczas próby przekształcenia obrazu qcow2 (%s) na obraz surowy (%s)"
+
+#: misc/e2image.c:1639
+msgid "The -c option only supported in raw mode\n"
+msgstr "Opcja -c jest obsługiwana tylko w trybie surowym\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "Opcja -c nie jest obsługiwana przy zapisie na standardowe wyjscie\n"
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr "podczas przydzielania check_buf"
+
+#: misc/e2image.c:1657
+msgid "The -p option only supported in raw mode\n"
+msgstr "Opcja -p jest obsługiwana tylko w trybie surowym\n"
+
+#: misc/e2image.c:1667
+#, fuzzy, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr "%d bloków już zawierało dane do skopiowania.\n"
#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
-msgstr "e2label: nie mo¿na otworzyæ %s\n"
+msgstr "e2label: nie można otworzyć %s\n"
#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
-msgstr "e2label: nie mo¿na przej¶æ do superbloku\n"
+msgstr "e2label: nie można przejść do superbloku\n"
#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
-msgstr "e2label: b³±d podczas odczytu superbloku\n"
+msgstr "e2label: błąd podczas odczytu superbloku\n"
#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
-msgstr "e2label: to nie jest system plików ext2\n"
+msgstr "e2label: to nie jest system plików ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2073
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
-msgstr "Uwaga: etykieta za d³uga, skrócono.\n"
+msgstr "Uwaga: etykieta za długa, skrócono.\n"
#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
-msgstr "e2label: nie mo¿na przej¶æ ponownie do superbloku\n"
+msgstr "e2label: nie można przejść ponownie do superbloku\n"
#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
-msgstr "e2label: b³±d podczas zapisu superbloku\n"
+msgstr "e2label: błąd podczas zapisu superbloku\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
-msgstr "Sk³adnia: e2label urz±dzenie [nowa-etykieta]\n"
+msgstr "Składnia: e2label urządzenie [nowa-etykieta]\n"
#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
-msgstr "Sk³adnia: %s <plik_transakcji> <system_plików>\n"
+msgstr "Składnia: %s <plik_transakcji> <system_plików>\n"
#: misc/e2undo.c:52
msgid "Failed to read the file system data \n"
-msgstr "Nie uda³o siê odczytaæ danych systemu plików\n"
+msgstr "Nie udało się odczytać danych systemu plików\n"
#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
msgid "Failed tdb_fetch %s\n"
-msgstr "tdb_fetch %s nie powiod³o siê\n"
+msgstr "tdb_fetch %s nie powiodło się\n"
#: misc/e2undo.c:70
#, c-format
msgid "The file system Mount time didn't match %u\n"
-msgstr "Czas montowania systemu plików nie odpowiada %u\n"
+msgstr "Czas montowania systemu plików nie odpowiada %u\n"
#: misc/e2undo.c:89
msgid "The file system UUID didn't match \n"
-msgstr "UUID systemu plików nie pasuje\n"
+msgstr "UUID systemu plików nie pasuje\n"
#: misc/e2undo.c:163
#, c-format
msgid "Failed tdb_open %s\n"
-msgstr "tdb_open %s nie powiod³o siê\n"
+msgstr "tdb_open %s nie powiodło się\n"
#: misc/e2undo.c:169
#, c-format
msgid "Error while determining whether %s is mounted.\n"
-msgstr "B³±d podczas sprawdzania, czy %s jest zamontowany.\n"
+msgstr "BÅ‚Ä…d podczas sprawdzania, czy %s jest zamontowany.\n"
#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
-msgstr "e2undo powinno byæ uruchamiane tylko na odmontowanym systemie plików\n"
+msgstr "e2undo powinno być uruchamiane tylko na odmontowanym systemie plików\n"
#: misc/e2undo.c:184
#, c-format
msgid "Failed to open %s\n"
-msgstr "Nie uda³o siê otworzyæ %s\n"
+msgstr "Nie udało się otworzyć %s\n"
#: misc/e2undo.c:210
#, c-format
msgid "Replayed transaction of size %zd at location %llu\n"
-msgstr "Odtworzono transakcjê rozmiaru %zd w po³o¿eniu %llu\n"
+msgstr "Odtworzono transakcję rozmiaru %zd w położeniu %llu\n"
#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
-msgstr "Nie uda³o siê zapisaæ %s\n"
+msgstr "Nie udało się zapisać %s\n"
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
-msgstr "UWAGA: nie mo¿na otworzyæ %s: %s\n"
+msgstr "UWAGA: nie można otworzyć %s: %s\n"
-#: misc/fsck.c:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
-msgstr "UWAGA: z³y format w linii %d pliku %s\n"
+msgstr "UWAGA: zły format w linii %d pliku %s\n"
-#: misc/fsck.c:371
+#: misc/fsck.c:370
msgid ""
"WARNING: Your /etc/fstab does not contain the fsck passno\n"
"\tfield. I will kludge around things for you, but you\n"
@@ -3909,88 +4205,95 @@ msgid ""
"\n"
msgstr ""
"UWAGA: /etc/fstab nie zawiera pola passno dla fsck.\n"
-"Pominê ten b³±d, ale /etc/fstab nale¿y jak najszybciej poprawiæ.\n"
+"Pominę ten błąd, ale /etc/fstab należy jak najszybciej poprawić.\n"
"\n"
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: nie znaleziono\n"
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
-msgstr "%s: wait: Nie ma wiêcej procesów potomnych?!?\n"
+msgstr "%s: wait: Nie ma więcej procesów potomnych?!?\n"
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
-msgstr "Uwaga... %s dla urz±dzenia %s zakoñczy³ siê sygna³em %d.\n"
+msgstr "Uwaga... %s dla urządzenia %s zakończył się sygnałem %d.\n"
-#: misc/fsck.c:623
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
-msgstr "%s %s: status wynosi %x, to siê nie powinno nigdy zdarzyæ.\n"
+msgstr "%s %s: status wynosi %x, to się nie powinno nigdy zdarzyć.\n"
-#: misc/fsck.c:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
-msgstr "Skoñczono z %s (status wyj¶cia %d)\n"
+msgstr "Skończono z %s (status wyjścia %d)\n"
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
-msgstr "%s: B³±d %d podczas wykonywania fsck.%s dla %s\n"
+msgstr "%s: BÅ‚Ä…d %d podczas wykonywania fsck.%s dla %s\n"
-#: misc/fsck.c:743
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
msgstr ""
-"Albo wszystkie, albo ¿aden rodzaj systemu plików z podanych po -t musi byæ\n"
+"Albo wszystkie, albo żaden rodzaj systemu plików z podanych po -t musi być\n"
"poprzedzony 'no' lub '!'.\n"
-#: misc/fsck.c:762
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
-msgstr "Nie mo¿na przydzieliæ pamiêci na rodzaje systemów plików\n"
+msgstr "Nie można przydzielić pamięci na rodzaje systemów plików\n"
-#: misc/fsck.c:885
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
-msgstr "%s: pominiêto b³êdn± liniê w /etc/fstab: montowanie bind z niezerowym numerem przebiegu fsck\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
+msgstr ""
+"%s: pominięto błędną linię w /etc/fstab: montowanie bind z niezerowym "
+"numerem przebiegu fsck\n"
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
-msgstr "fsck: nie mo¿na sprawdziæ %s: fsck.%s nie znaleziony\n"
+msgstr "fsck: nie można sprawdzić %s: fsck.%s nie znaleziony\n"
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
-msgstr "Sprawdzanie wszystkich systemów plików.\n"
+msgstr "Sprawdzanie wszystkich systemów plików.\n"
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--oczekiwanie-- (przebieg %d)\n"
-#: misc/fsck.c:1079
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr "Sk³adnia: fsck [-AMNPRTV] [ -C [ deskryptor ] ] [-t rodzaj-fs] [opcje-fs] [system-plików ...]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr ""
+"Składnia: fsck [-AMNPRTV] [ -C [ deskryptor ] ] [-t rodzaj-fs] [opcje-fs] "
+"[system-plików ...]\n"
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
-msgstr "%s: za du¿o urz±dzeñ\n"
+msgstr "%s: za dużo urządzeń\n"
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
-msgstr "%s: za du¿o parametrów\n"
+msgstr "%s: za dużo parametrów\n"
#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
-msgstr "Sk³adnia: %s [-RVadlv] [pliki...]\n"
+msgstr "Składnia: %s [-RVadlv] [pliki...]\n"
#: misc/lsattr.c:84
#, c-format
@@ -4002,272 +4305,318 @@ msgstr "Podczas odczytu flag %s"
msgid "While reading version on %s"
msgstr "Podczas odczytu wersji %s"
-#: misc/mke2fs.c:116
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
-"Sk³adnia: %s [-c|-l nazwa-pliku] [-b rozm.bloku] [-C rozm.klastra]\n"
-"\t[-i bajtów-na-i-wêze³] [-I rozm-i-wêz³a] [-J opcje-kroniki]\n"
-"\t[-G rozmiar metagrupy] [-N liczba-i-wêz³ów]\n"
-"\t[-m procent-rezerw.-bloków] [-o os-twórcy]\n"
-"\t[-g bloków-w-grupie] [-L etykieta-wolumenu] [-M ost.-mont.-katalog]\n"
+"Składnia: %s [-c|-l nazwa-pliku] [-b rozm.bloku] [-C rozm.klastra]\n"
+"\t[-i bajtów-na-i-węzeł] [-I rozm-i-węzła] [-J opcje-kroniki]\n"
+"\t[-G rozmiar-grupy-flex] [-N liczba-i-węzłów]\n"
+"\t[-m procent-rezerw.-bloków] [-o os-twórcy]\n"
+"\t[-g bloków-w-grupie] [-L etykieta-wolumenu] [-M ost.-mont.-katalog]\n"
"\t[-O cecha[,...]] [-r wersja-fs] [-E opcja-rozszerzona[,...]]\n"
-"\t[-T rodzaj-fs] [-U UUID] [-jnqvFKSV] urz±dzenie [liczba-bloków]\n"
+"\t[-t typ-fs] [-T typ-użycia] [-U UUID] [-jnqvDFKSV] urządzenie [liczba-"
+"bloków]\n"
-#: misc/mke2fs.c:218
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Uruchamianie polecenia: %s\n"
-#: misc/mke2fs.c:222
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
-msgstr "podczas próby uruchomienia '%s'"
+msgstr "podczas próby uruchomienia '%s'"
-#: misc/mke2fs.c:229
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
-msgstr "podczas przetwarzania listy wadliwych bloków z programu"
+msgstr "podczas przetwarzania listy wadliwych bloków z programu"
-#: misc/mke2fs.c:256
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
-msgstr "Wadliwy blok %d w g³ównym superbloku/obszarze deskryptora grup.\n"
+msgstr "Wadliwy blok %d w głównym superbloku/obszarze deskryptora grup.\n"
-#: misc/mke2fs.c:258
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
-msgstr "Bloki od %u do %u musz± byæ dobre, aby stworzyæ system plików.\n"
+msgstr "Bloki od %u do %u muszą być dobre, aby stworzyć system plików.\n"
-#: misc/mke2fs.c:261
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Przerwano...\n"
-#: misc/mke2fs.c:281
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tbad blocks.\n"
"\n"
msgstr ""
-"Uwaga: zapasowy superblok/deskryptory grup w bloku %u zawieraj±\n"
+"Uwaga: zapasowy superblok/deskryptory grup w bloku %u zawierajÄ…\n"
"\twadliwe bloki.\n"
"\n"
-#: misc/mke2fs.c:300
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
-msgstr "podczas zaznaczania wadliwych bloków jako u¿ywane"
+msgstr "podczas zaznaczania wadliwych bloków jako używane"
-#: misc/mke2fs.c:317
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
-msgstr "Zapis tablicy i-wêz³ów: "
+msgstr "Zapis tablicy i-węzłów: "
-#: misc/mke2fs.c:338
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
-"Nie uda³o siê zapisaæ %d bloków w tablicy i-wêz³ów pocz±wszy od %llu: %s\n"
+"Nie udało się zapisać %d bloków w tablicy i-węzłów począwszy od %llu: %s\n"
-#: misc/mke2fs.c:352 misc/mke2fs.c:2170 misc/mke2fs.c:2422
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
-msgstr "zakoñczono \n"
+msgstr "zakończono \n"
-#: misc/mke2fs.c:363
+#: misc/mke2fs.c:430
msgid "while creating root dir"
-msgstr "podczas tworzenia g³ównego katalogu"
+msgstr "podczas tworzenia głównego katalogu"
-#: misc/mke2fs.c:370
+#: misc/mke2fs.c:437
msgid "while reading root inode"
-msgstr "podczas odczytu g³ównego i-wêz³a"
+msgstr "podczas odczytu głównego i-węzła"
-#: misc/mke2fs.c:384
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
-msgstr "podczas ustawiania w³a¶ciciela g³ównego i-wêz³a"
+msgstr "podczas ustawiania właściciela głównego i-węzła"
-#: misc/mke2fs.c:402
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "podczas tworzenia /lost+found"
-#: misc/mke2fs.c:409
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "podczas szukania /lost+found"
-#: misc/mke2fs.c:422
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "podczas rozszerzania /lost+found"
-#: misc/mke2fs.c:437
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
-msgstr "podczas ustawiania i-wêz³a wadliwych bloków"
+msgstr "podczas ustawiania i-węzła wadliwych bloków"
-#: misc/mke2fs.c:464
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
-msgstr "Brak pamiêci podczas czyszczenia sektorów %d-%d\n"
+msgstr "Brak pamięci podczas czyszczenia sektorów %d-%d\n"
-#: misc/mke2fs.c:474
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
-msgstr "Uwaga: nie mo¿na odczytaæ bloku 0: %s\n"
+msgstr "Uwaga: nie można odczytać bloku 0: %s\n"
-#: misc/mke2fs.c:490
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
-msgstr "Uwaga: nie mo¿na wyczy¶ciæ sektora %d: %s\n"
+msgstr "Uwaga: nie można wyczyścić sektora %d: %s\n"
-#: misc/mke2fs.c:506
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
-msgstr "podczas inicjalizacji superbloku kroniki"
+msgstr "podczas inicjowania superbloku kroniki"
-#: misc/mke2fs.c:514
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
-msgstr "Zerowanie urz±dzenia kroniki: "
+msgstr "Zerowanie urzÄ…dzenia kroniki: "
-#: misc/mke2fs.c:526
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
-msgstr "podczas zerowania urz±dzenia kroniki (blok %llu, liczba %d)"
+msgstr "podczas zerowania urzÄ…dzenia kroniki (blok %llu, liczba %d)"
-#: misc/mke2fs.c:544
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "podczas zapisu superbloku kroniki"
-#: misc/mke2fs.c:559
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr "Zmiana rozmiaru systemu plików %s na %llu (%dk) bloków.\n"
+
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"\n"
msgstr ""
-"uwaga: %llu bloków nie u¿ywanych.\n"
+"uwaga: %llu bloków nie używanych.\n"
"\n"
-#: misc/mke2fs.c:564
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
-msgstr "Etykieta systemu plików=%s\n"
+msgstr "Etykieta systemu plików=%s\n"
-#: misc/mke2fs.c:567
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr "Typ OS: %s\n"
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Rozmiar bloku=%u (log=%u)\n"
-#: misc/mke2fs.c:573
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Rozmiar klastra=%u (log=%u)\n"
-#: misc/mke2fs.c:577
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Rozmiar fragmentu=%u (log=%u)\n"
-#: misc/mke2fs.c:579
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
-msgstr "Stride=%u bloków, szeroko¶æ Stripe=%u bloków\n"
+msgstr "Stride=%u bloków, szerokość Stripe=%u bloków\n"
-#: misc/mke2fs.c:581
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
-msgstr "%u i-wêz³ów, %llu bloków\n"
+msgstr "%u i-węzłów, %llu bloków\n"
-#: misc/mke2fs.c:583
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
-msgstr "%llu bloków (%2.2f%%) zarezerwowanych dla superu¿ytkownika\n"
+msgstr "%llu bloków (%2.2f%%) zarezerwowanych dla superużytkownika\n"
-#: misc/mke2fs.c:586
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Pierwszy blok danych=%u\n"
-#: misc/mke2fs.c:588
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr "Właściciel głównego katalogu=%u:%u\n"
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
-msgstr "Maksymalna liczba bloków systemu plików=%lu\n"
+msgstr "Maksymalna liczba bloków systemu plików=%lu\n"
-#: misc/mke2fs.c:592
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
-msgstr "%u grup bloków\n"
+msgstr "%u grup bloków\n"
-#: misc/mke2fs.c:594
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
-msgstr "%u grupa bloków\n"
+msgstr "%u grupa bloków\n"
-#: misc/mke2fs.c:597
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
-msgstr "%u bloków w grupie, %u klastrów w grupie\n"
+msgstr "%u bloków w grupie, %u klastrów w grupie\n"
-#: misc/mke2fs.c:600
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
-msgstr "%u bloków w grupie, %u fragmentów w grupie\n"
+msgstr "%u bloków w grupie, %u fragmentów w grupie\n"
-#: misc/mke2fs.c:602
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
-msgstr "%u i-wêz³ów w grupie\n"
+msgstr "%u i-węzłów w grupie\n"
-#: misc/mke2fs.c:609
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Etykieta systemu plików=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Kopie zapasowe superbloku zapisane w blokach: "
-#: misc/mke2fs.c:688 misc/tune2fs.c:1165
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr "%s wymaga '-O 64bit'\n"
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr "'%s' musi być przed 'resize=%u'\n"
+
+#: misc/mke2fs.c:783
+#, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "Błędny desc_size: '%s'\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "Błędny nowy rozmiar: %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
-msgstr "B³êdny okres uaktualniania mmp: %s\n"
+msgstr "Błędny okres uaktualniania mmp: %s\n"
+
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Błędny parametr superblock: %s\n"
-#: misc/mke2fs.c:702
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
-msgstr "B³êdny parametr stride: %s\n"
+msgstr "Błędny parametr stride: %s\n"
-#: misc/mke2fs.c:717
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
-msgstr "B³êdny parametr stripe-width: %s\n"
+msgstr "Błędny parametr stripe-width: %s\n"
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
-msgstr "B³êdny parametr resize: %s\n"
+msgstr "Błędny parametr resize: %s\n"
-#: misc/mke2fs.c:747
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr "Maksymalny rozmiar (resize) musi byæ wiêkszy od rozmiaru systemu plików.\n"
+msgstr ""
+"Maksymalny rozmiar (resize) musi być większy od rozmiaru systemu plików.\n"
-#: misc/mke2fs.c:771
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
-msgstr "Zmiana rozmiaru w locie nie jest obs³ugiwana przez systemy plików w wersji 0\n"
+msgstr ""
+"Zmiana rozmiaru w locie nie jest obsługiwana przez systemy plików w wersji "
+"0\n"
-#: misc/mke2fs.c:809
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
#, c-format
-msgid "Invalid quotatype parameter: %s\n"
-msgstr "B³êdny parametr quotatype: %s\n"
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Błędny root_owner: '%s'\n"
-#: misc/mke2fs.c:820
+#: misc/mke2fs.c:976
#, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "Błędny parametr quotatype: %s\n"
+
+#: misc/mke2fs.c:987
+#, fuzzy, c-format
msgid ""
"\n"
"Bad option(s) specified: %s\n"
@@ -4276,11 +4625,17 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -4288,24 +4643,26 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Podano b³êdne opcje: %s\n"
+"Podano błędne opcje: %s\n"
"\n"
-"Opcje rozszerzone s± oddzielane przecinkami i mog± przyjmowaæ parametr,\n"
-"\tktóry jest ustawiany znakiem '='.\n"
+"Opcje rozszerzone są oddzielane przecinkami i mogą przyjmować parametr,\n"
+"\tktóry jest ustawiany znakiem '='.\n"
"\n"
"Poprawne opcje rozszerzone to:\n"
"\tstride=<rozmiar porcji danych RAID na dysku w blokach>\n"
-"\tstripe-width=<RAID stride * liczba dysków danych w blokach>\n"
-"\tresize=<maksymalny rozmiar powiêkszenia w blokach>\n"
-"\tlazy_itable_init=<0 aby wy³±czyæ, 1 aby w³±czyæ>\n"
-"\tlazy_journal_init=<0 aby wy³±czyæ, 1 aby w³±czyæ>\n"
+"\tstripe-width=<RAID stride * liczba dysków danych w blokach>\n"
+"\tresize=<maksymalny rozmiar powiększenia w blokach>\n"
+"\tlazy_itable_init=<0 aby wyłączyć, 1 aby włączyć>\n"
+"\tlazy_journal_init=<0 aby wyłączyć, 1 aby włączyć>\n"
+"\troot_uid=<uid katalogu głównego>\n"
+"\troot_gid=<gid katalogu głównego>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
"\tquotatype=<usr LUB grp>\n"
"\n"
-#: misc/mke2fs.c:840
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4313,52 +4670,50 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Uwaga: RAID stripe-width %u nie jest parzyst± wielokrotno¶ci± stride %u.\n"
+"Uwaga: RAID stripe-width %u nie jest parzystą wielokrotnością stride %u.\n"
"\n"
-#: misc/mke2fs.c:879
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-"B³±d sk³adni w pliku konfiguracyjnym mke2fs (%s, linia %d)\n"
+"Błąd składni w pliku konfiguracyjnym mke2fs (%s, linia %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:892 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
-msgstr "Ustawiona b³êdna opcja systemu plików: %s\n"
+msgstr "Ustawiona błędna opcja systemu plików: %s\n"
-#: misc/mke2fs.c:904 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
-msgstr "Ustawiona b³êdna opcja montowania: %s\n"
+msgstr "Ustawiona błędna opcja montowania: %s\n"
-#: misc/mke2fs.c:1042
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
"\n"
-"Uwaga! Plik mke2fs.conf nie okre¶la typu systemu plików %s.\n"
+"Uwaga! Plik mke2fs.conf nie określa typu systemu plików %s.\n"
-#: misc/mke2fs.c:1046
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-"Prawdopodobnie trzeba zainstalowaæ uaktualniony plik mke2fs.conf.\n"
+"Prawdopodobnie trzeba zainstalować uaktualniony plik mke2fs.conf.\n"
"\n"
-#: misc/mke2fs.c:1050
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr "Przerwano...\n"
-#: misc/mke2fs.c:1090
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4366,397 +4721,447 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Uwaga: typ systemu plików %s nie jest zdefiniowany w mke2fs.conf\n"
+"Uwaga: typ systemu plików %s nie jest zdefiniowany w mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1248
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
-msgstr "Nie uda³o siê przydzieliæ pamiêci na now± PATH\n"
+msgstr "Nie udało się przydzielić pamięci na nową PATH\n"
-#: misc/mke2fs.c:1289
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
-msgstr "Nie uda³o siê poprawnie zainicjowaæ profilu (b³±d: %ld).\n"
+msgstr "Nie udało się poprawnie zainicjować profilu (błąd: %ld).\n"
-#: misc/mke2fs.c:1329
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
-msgstr "b³êdny rozmiar bloku - %s"
+msgstr "błędny rozmiar bloku - %s"
-#: misc/mke2fs.c:1333
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
-msgstr "Uwaga: rozmiar bloku %d nie u¿ywalny na wiêkszo¶ci systemów.\n"
+msgstr "Uwaga: rozmiar bloku %d nie używalny na większości systemów.\n"
-#: misc/mke2fs.c:1349
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
-msgstr "b³êdny rozmiar klastra - %s"
+msgstr "błędny rozmiar klastra - %s"
-#: misc/mke2fs.c:1358
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr "'-%' jest przestarzałe, zamiast niego należy używać '-E'"
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
-msgstr "B³êdna liczba bloków w grupie"
+msgstr "Błędna liczba bloków w grupie"
-#: misc/mke2fs.c:1363
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
-msgstr "liczba bloków w grupie musi byæ wielokrotno¶ci± 8"
+msgstr "liczba bloków w grupie musi być wielokrotnością 8"
-#: misc/mke2fs.c:1371
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Niedopuszczalny rozmiar flex_bg"
-#: misc/mke2fs.c:1377
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
-msgstr "rozmiar flex_bg musi byæ potêg± 2"
+msgstr "rozmiar flex_bg musi być potęgą 2"
-#: misc/mke2fs.c:1387
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
-msgstr "b³êdny stosunek i-wêz³ów %s (min %d/max %d)"
+msgstr "błędny stosunek i-węzłów %s (min %d/max %d)"
-#: misc/mke2fs.c:1397
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
-msgstr "Uwaga: opcja -K jest przestarza³a i nie powinna ju¿ byæ u¿ywana. Zamiast niej nale¿y u¿yæ opcji rozszerzonej '-E nodiscard'.\n"
+msgid "invalid inode size - %s"
+msgstr "błędny rozmiar i-węzła - %s"
-#: misc/mke2fs.c:1411
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+"Uwaga: opcja -K jest przestarzała i nie powinna już być używana. Zamiast "
+"niej należy użyć opcji rozszerzonej '-E nodiscard'.\n"
+
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "w malloc dla bad_blocks_filename"
-#: misc/mke2fs.c:1421
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
-msgstr "b³êdny procent zarezerwowanych bloków - %s"
+msgstr "błędny procent zarezerwowanych bloków - %s"
-#: misc/mke2fs.c:1439
-#, c-format
-msgid "bad revision level - %s"
-msgstr "b³êdny poziom wersji - %s"
-
-#: misc/mke2fs.c:1451
+#: misc/mke2fs.c:1642
#, c-format
-msgid "invalid inode size - %s"
-msgstr "b³êdny rozmiar i-wêz³a - %s"
+msgid "bad num inodes - %s"
+msgstr "błędna liczba i-węzłów - %s"
-#: misc/mke2fs.c:1471
+#: misc/mke2fs.c:1659
#, c-format
-msgid "bad num inodes - %s"
-msgstr "b³êdna liczba i-wêz³ów - %s"
+msgid "bad revision level - %s"
+msgstr "błędny poziom wersji - %s"
-#: misc/mke2fs.c:1488
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
-msgstr "Opcja -t mo¿e byæ u¿yta tylko raz"
+msgstr "Opcja -t może być użyta tylko raz"
-#: misc/mke2fs.c:1496
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
-msgstr "Opcja -T mo¿e byæ u¿yta tylko raz"
+msgstr "Opcja -T może być użyta tylko raz"
-#: misc/mke2fs.c:1546 misc/mke2fs.c:2490
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
-msgstr "podczas próby otwarcia urz±dzenia kroniki %s\n"
+msgstr "podczas próby otwarcia urządzenia kroniki %s\n"
-#: misc/mke2fs.c:1552
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
-msgstr "Rozmiar bloku urz±dzenia z kronik± (%d) mniejszy od minimalnego %d\n"
+msgstr "Rozmiar bloku urzÄ…dzenia z kronikÄ… (%d) mniejszy od minimalnego %d\n"
-#: misc/mke2fs.c:1558
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
-msgstr "U¿ycie rozmiaru bloku urz±dzenia kroniki: %d\n"
+msgstr "Użycie rozmiaru bloku urządzenia kroniki: %d\n"
-#: misc/mke2fs.c:1569
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
-msgstr "b³êdna liczba bloków '%s' na urz±dzeniu '%s'"
+msgstr "błędna liczba bloków '%s' na urządzeniu '%s'"
-#: misc/mke2fs.c:1579
+#: misc/mke2fs.c:1777
msgid "filesystem"
-msgstr "system plików"
+msgstr "system plików"
-#: misc/mke2fs.c:1592 resize/main.c:379
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
-msgstr "podczas próby okre¶lenia rozmiaru systemu plików"
+msgstr "podczas próby określenia rozmiaru systemu plików"
-#: misc/mke2fs.c:1598
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
msgstr ""
-"Nie mo¿na okre¶liæ rozmiaru urz±dzenia; rozmiar systemu\n"
-"plików musi byæ podany\n"
+"Nie można określić rozmiaru urządzenia; rozmiar systemu\n"
+"plików musi być podany\n"
-#: misc/mke2fs.c:1605
+#: misc/mke2fs.c:1803
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 ""
-"Odczytany rozmiar urz±dzenia wynosi zero. Podano b³êdn± partycjê\n"
-"\tlub tablica partycji nie by³a odczytana ponownie po uruchomieniu\n"
-"\tfdiska z powodu zajêtej modyfikowanej partycji. Ponowny odczyt\n"
-"\ttablicy partycji mo¿e wymagaæ rebootu.\n"
+"Odczytany rozmiar urządzenia wynosi zero. Podano błędną partycję\n"
+"\tlub tablica partycji nie była odczytana ponownie po uruchomieniu\n"
+"\tfdiska z powodu zajętej modyfikowanej partycji. Ponowny odczyt\n"
+"\ttablicy partycji może wymagać rebootu.\n"
-#: misc/mke2fs.c:1622
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
-msgstr "System plików wiêkszy od widocznego rozmiaru urz±dzenia."
+msgstr "System plików większy od widocznego rozmiaru urządzenia."
-#: misc/mke2fs.c:1642
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
-msgstr "Nie uda³o siê przeanalizowaæ listy typów systemów plików\n"
+msgstr "Nie udało się przeanalizować listy typów systemów plików\n"
+
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "podczas próby określenia rozmiaru sprzętowego sektora"
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr "podczas próby określenia rozmiaru sektora fizycznego"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr "podczas ustawiania rozmiaru bloku; zbyt mały dla urządzenia\n"
-#: misc/mke2fs.c:1696
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+"Uwaga: podany rozmiar bloku %d jest mniejszy niż rozmiar sektora fizycznego "
+"%d\n"
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"\tin 32 bits using a blocksize of %d.\n"
msgstr ""
-"%s: Rozmiar urz±dzenia (0x%llx bloków) %s jest zbyt du¿y, aby wyraziæ go\n"
-"\tw 32 bitach przy u¿yciu rozmiaru bloku %d.\n"
+"%s: Rozmiar urządzenia (0x%llx bloków) %s jest zbyt duży, aby wyrazić go\n"
+"\tw 32 bitach przy użyciu rozmiaru bloku %d.\n"
-#: misc/mke2fs.c:1712
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
-msgstr "Rozwiniêcie fs_types dla mke2fs.conf: "
+msgstr "Rozwinięcie fs_types dla mke2fs.conf: "
-#: misc/mke2fs.c:1719
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
-msgstr "Cechy systemu plików nie obs³ugiwane przez systemy plików w wersji 0\n"
+msgstr "Cechy systemu plików nie obsługiwane przez systemy plików w wersji 0\n"
-#: misc/mke2fs.c:1726
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
-msgstr "Rzadkie superbloki nie s± obs³ugiwane przez systemy plików w wersji 0\n"
+msgstr ""
+"Rzadkie superbloki nie są obsługiwane przez systemy plików w wersji 0\n"
-#: misc/mke2fs.c:1738
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
-msgstr "Kroniki nie s± obs³ugiwane przez systemy plików w wersji 0\n"
+msgstr "Kroniki nie są obsługiwane przez systemy plików w wersji 0\n"
-#: misc/mke2fs.c:1752
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
-msgstr "b³êdny procent zarezerwowanych bloków - %lf"
+msgstr "błędny procent zarezerwowanych bloków - %lf"
-#: misc/mke2fs.c:1768
-#, c-format
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-"Cechy resize_inode i meta_bg nie s± kompatybilne.\n"
-"Nie mo¿na ich w³±czyæ jednocze¶nie.\n"
-
-#: misc/mke2fs.c:1785
-msgid "while trying to determine hardware sector size"
-msgstr "podczas próby okre¶lenia rozmiaru sprzêtowego sektora"
+"Ekstenty MUSZĄ być włączone dla 64-bitowego systemu plików. Aby to poprawić, "
+"należy przekazać -O extents.\n"
-#: misc/mke2fs.c:1791
-msgid "while trying to determine physical sector size"
-msgstr "podczas próby okre¶lenia rozmiaru sektora fizycznego"
-
-#: misc/mke2fs.c:1824
-msgid "while setting blocksize; too small for device\n"
-msgstr "podczas ustawiania rozmiaru bloku; zbyt ma³y dla urz±dzenia\n"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr "Rozmiar klastra nie może być mniejszy niż rozmiar bloku.\n"
-#: misc/mke2fs.c:1829
-#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr "Uwaga: podany rozmiar bloku %d jest mniejszy ni¿ rozmiar sektora fizycznego %d\n"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr "określenie rozmiaru klastra wymaga własności bigalloc"
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
-msgstr "uwaga: nie uda³o siê odczytaæ geometrii urz±dzenia dla %s\n"
+msgstr "uwaga: nie udało się odczytać geometrii urządzenia dla %s\n"
-#: misc/mke2fs.c:1863
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
-msgstr "Wyrównanie %s jest przesuniête o %lu bajtów.\n"
+msgstr "Wyrównanie %s jest przesunięte o %lu bajtów.\n"
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2072
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr "Mo¿e to powodowaæ bardzo nisk± wydajno¶æ, zalecane jest (prze)partycjonowanie.\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+"Może to powodować bardzo niską wydajność, zalecane jest "
+"(prze)partycjonowanie.\n"
-#: misc/mke2fs.c:1876
+#: misc/mke2fs.c:2093
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
-msgstr "%d-bajtowe bloki s± zbyt du¿e dla systemu (max %d)"
+msgstr "%d-bajtowe bloki są zbyt duże dla systemu (max %d)"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:2097
#, c-format
-msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr "Uwaga: %d-bajtowe bloki s± zbyt du¿e dla systemu (max %d), wymuszono kontynuacjê\n"
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Uwaga: %d-bajtowe bloki są zbyt duże dla systemu (max %d), wymuszono "
+"kontynuacjÄ™\n"
+
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr "Obsługa własności bigalloc jest niemożliwa bez własności extents"
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"Cechy resize_inode i meta_bg nie sÄ… kompatybilne.\n"
+"Nie można ich włączyć jednocześnie.\n"
-#: misc/mke2fs.c:1915
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+"\n"
+"Uwaga: własność bigalloc jest nadal w trakcie rozwoju.\n"
+"Więcej informacji pod https://ext4.wiki.kernel.org/index.php/Bigalloc\n"
+"\n"
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
-msgstr "zarezerwowane bloki do zmiany rozmiaru w locie nie obs³ugiwane na nieci±g³ym systemie plików"
+msgstr ""
+"zarezerwowane bloki do zmiany rozmiaru w locie nie obsługiwane na nieciągłym "
+"systemie plików"
-#: misc/mke2fs.c:1924
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
-msgstr "liczba bloków w grupie spoza zakresu"
+msgstr "liczba bloków w grupie spoza zakresu"
-#: misc/mke2fs.c:1939
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr "Cecha flex_bg nie jest w³±czona, wiêc nie mo¿na okre¶liæ rozmiaru flex_bg"
+msgstr ""
+"Cecha flex_bg nie jest włączona, więc nie można określić rozmiaru flex_bg"
-#: misc/mke2fs.c:1951
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
-msgstr "b³êdny rozmiar i-wêz³a %d (min %d/max %d)"
+msgstr "błędny rozmiar i-węzła %d (min %d/max %d)"
-#: misc/mke2fs.c:1969
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
-msgstr "zbyt du¿o i-wêz³ów (%llu), zwiêkszyæ wspó³czynnik i-wêz³ów?"
+msgstr "zbyt dużo i-węzłów (%llu), zwiększyć współczynnik i-węzłów?"
-#: misc/mke2fs.c:1976
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
-msgstr "zbyt du¿o i-wêz³ów (%llu), nale¿y podaæ < 2^32"
+msgstr "zbyt dużo i-węzłów (%llu), należy podać < 2^32"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
-"rozm_iwêz³a (%u) * liczba_iwêz³ów (%u) zbyt du¿e dla systemu\n"
-"\tplików o liczbie bloków %llu, nale¿y podaæ wiêkszy wspó³czynnik (-i)\n"
-"\tlub mniejsz± liczbê i-wêz³ów (-N).\n"
+"rozm_iwęzła (%u) * liczba_iwęzłów (%u) zbyt duże dla systemu\n"
+"\tplików o liczbie bloków %llu, należy podać większy współczynnik (-i)\n"
+"\tlub mniejszą liczbę i-węzłów (-N).\n"
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Nadpisywanie istniej±cego systemu plików; mo¿na to wycofaæ poleceniem:\n"
+"Nadpisywanie istniejącego systemu plików; można to wycofać poleceniem:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2123
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
-msgstr "podczas próby utworzenia pliku cofniêcia (undo)\n"
+msgstr "podczas próby utworzenia pliku cofnięcia (undo)\n"
-#: misc/mke2fs.c:2149
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
-msgstr "Porzucanie bloków urz±dzenia: "
+msgstr "Porzucanie bloków urządzenia: "
-#: misc/mke2fs.c:2165
+#: misc/mke2fs.c:2439
msgid "failed - "
-msgstr "nie powiod³o siê - "
+msgstr "nie powiodło się - "
-#: misc/mke2fs.c:2270
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "podczas ustawiania superbloku"
-#: misc/mke2fs.c:2279
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr "Czyszczenie siê powiod³o i bêdzie zwracaæ zera - pominiêto czyszczenie tablicy i-wêz³ów\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+"Czyszczenie się powiodło i będzie zwracać zera - pominięto czyszczenie "
+"tablicy i-węzłów\n"
-#: misc/mke2fs.c:2362
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "nieznany os - %s"
-#: misc/mke2fs.c:2414
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr "Przydzielanie tablicy grup: "
-#: misc/mke2fs.c:2418
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
-msgstr "podczas próby przydzielenia tablic systemu plików"
+msgstr "podczas próby przydzielenia tablic systemu plików"
-#: misc/mke2fs.c:2427
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
msgstr ""
"\n"
-"\tpodczas próby przekszta³cenia bitmapy podklastrów"
+"\tpodczas próby przekształcenia bitmapy podklastrów"
-#: misc/mke2fs.c:2459
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
-msgstr "podczas zerowania bloku %llu na koñcu systemu plików"
+msgstr "podczas zerowania bloku %llu na końcu systemu plików"
-#: misc/mke2fs.c:2472
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
-msgstr "podczas rezerwowania bloków na zmianê rozmiaru w locie"
+msgstr "podczas rezerwowania bloków na zmianę rozmiaru w locie"
-#: misc/mke2fs.c:2483 misc/tune2fs.c:640
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "kronika"
-#: misc/mke2fs.c:2495
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
-msgstr "Dodano kronikê do urz±dzenia %s: "
+msgstr "Dodano kronikÄ™ do urzÄ…dzenia %s: "
-#: misc/mke2fs.c:2502
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
"\twhile trying to add journal to device %s"
msgstr ""
"\n"
-"\tpodczas próby dodania kroniki do urz±dzenia %s"
+"\tpodczas próby dodania kroniki do urządzenia %s"
-#: misc/mke2fs.c:2507 misc/mke2fs.c:2539 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "wykonano\n"
-#: misc/mke2fs.c:2516
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
-msgstr "Pominiêto tworzenie kroniki w trybie super-only\n"
+msgstr "Pominięto tworzenie kroniki w trybie super-only\n"
-#: misc/mke2fs.c:2527
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
-msgstr "Tworzenie kroniki (%u bloków): "
+msgstr "Tworzenie kroniki (%u bloków): "
-#: misc/mke2fs.c:2546 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tpodczas próby utworzenia kroniki"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
"\n"
-"B³±d podczas w³±czania funkcji zabezpieczenia przed wielokrotnym montowaniem."
+"Błąd podczas włączania funkcji zabezpieczenia przed wielokrotnym montowaniem."
-#: misc/mke2fs.c:2551
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr "Zabezpieczenie przed wielokrotnym montowaniem jest w³±czone z okresem uaktualniania %d sekund.\n"
+msgstr ""
+"Zabezpieczenie przed wielokrotnym montowaniem jest włączone z okresem "
+"uaktualniania %d sekund.\n"
-#: misc/mke2fs.c:2564
-#, c-format
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
-msgstr "Zapis superbloków i podsumowania systemu plików: "
+msgstr "Zapis superbloków i podsumowania systemu plików: "
-#: misc/mke2fs.c:2571
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
msgstr ""
"\n"
-"Uwaga, problemy z zapisem superbloków."
+"Uwaga, problemy z zapisem superbloków."
-#: misc/mke2fs.c:2573
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4765,9 +5170,8 @@ msgstr ""
"\n"
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
-msgstr "Sk³adnia: mklost+found\n"
+msgstr "Składnia: mklost+found\n"
#: misc/partinfo.c:41
#, c-format
@@ -4778,177 +5182,191 @@ msgid ""
"For example: %s /dev/hda\n"
"\n"
msgstr ""
-"Sk³adnia: %s urz±dzenie...\n"
+"Składnia: %s urządzenie...\n"
"\n"
-"Wypisanie informacji o partycjach na ka¿dym podanym urz±dzeniu.\n"
-"Przyk³ad: %s /dev/hda\n"
+"Wypisanie informacji o partycjach na każdym podanym urządzeniu.\n"
+"Przykład: %s /dev/hda\n"
"\n"
#: misc/partinfo.c:51
#, c-format
msgid "Cannot open %s: %s"
-msgstr "Nie mo¿na otworzyæ %s: %s"
+msgstr "Nie można otworzyć %s: %s"
#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
-msgstr "Nie mo¿na pobraæ geometrii %s: %s"
+msgstr "Nie można pobrać geometrii %s: %s"
#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
-msgstr "Nie mo¿na pobraæ rozmiaru %s: %s"
+msgstr "Nie można pobrać rozmiaru %s: %s"
#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
-msgstr "%s: h=%3d s=%3d c=%4d pocz±tek=%8d rozmiar=%8lu koniec=%8d\n"
+msgstr "%s: h=%3d s=%3d c=%4d poczÄ…tek=%8d rozmiar=%8lu koniec=%8d\n"
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
-msgstr "Proszê uruchomiæ e2fsck na systemie plików.\n"
+msgstr "Proszę uruchomić e2fsck na systemie plików.\n"
-#: misc/tune2fs.c:116
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-"Sk³adnia: %s [-c max_licznik_montowañ] [-e trakt._b³êdów] [-g grupa]\n"
-"\t[-i odstêp[d|m|w]] [-j] [-J opcje_kroniki] [-l]\n"
-"\t[-m procent_rezerw._bloków] [-o [^]opcje_montowania[,...]] [-p okres_uakt._mmp]\n"
-"\t[-r liczba_zarez._bloków] [-u u¿ytkownik] [-C licznik_montowañ]\n"
+"Składnia: %s [-c max_licznik_montowań] [-e trakt._błędów] [-g grupa]\n"
+"\t[-i odstęp[d|m|w]] [-j] [-J opcje_kroniki] [-l]\n"
+"\t[-m procent_rezerw._bloków] [-o [^]opcje_montowania[,...]] [-p okres_uakt."
+"_mmp]\n"
+"\t[-r liczba_zarez._bloków] [-u użytkownik] [-C licznik_montowań]\n"
"\t[-L etykieta_wolumenu] [-M ostatnio_mont._katalog] [-O [^]cecha[,...]]\n"
+"\t[-Q opcje_limitów]\n"
"\t[-E opcja_rozszerzona[,...]] [-T czas_ost._sprawdz.] [-U UUID]\n"
-"\t[-I nowy_rozmiar_i-wêz³a] urz±dzenie\n"
+"\t[-I nowy_rozmiar_i-węzła] urządzenie\n"
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
-msgstr "podczas próby otworzenia zewnêtrznej kroniki"
+msgstr "podczas próby otworzenia zewnętrznej kroniki"
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
-msgstr "%s nie jest urz±dzeniem kroniki.\n"
+msgstr "%s nie jest urzÄ…dzeniem kroniki.\n"
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Nie znaleziono superbloku kroniki!\n"
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
-msgstr "UUID systemu plików nie znaleziony na urz±dzeniu kroniki.\n"
+msgstr "UUID systemu plików nie znaleziony na urządzeniu kroniki.\n"
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
msgstr ""
-"Nie mo¿na zlokalizowaæ urz±dzenia kroniki. NIE zosta³o usuniête.\n"
-"Mo¿na u¿yæ opcji -f, aby usun±æ nieistniej±ce urz±dzenie kroniki.\n"
+"Nie można zlokalizować urządzenia kroniki. NIE zostało usunięte.\n"
+"Można użyć opcji -f, aby usunąć nieistniejące urządzenie kroniki.\n"
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
-msgstr "Kronika usuniêta\n"
+msgstr "Kronika usunięta\n"
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "podczas odczytu bitmap"
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
-msgstr "podczas czyszczenia i-wêz³a kroniki"
+msgstr "podczas czyszczenia i-węzła kroniki"
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
-msgstr "podczas zapisu i-wêz³a kroniki"
+msgstr "podczas zapisu i-węzła kroniki"
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
-msgstr "(proszê zrestartowaæ potem system!)\n"
+msgstr "(proszę zrestartować potem system!)\n"
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr "Usuwanie cechy systemu plików '%s' nie jest obs³ugiwane.\n"
+msgstr "Usuwanie cechy systemu plików '%s' nie jest obsługiwane.\n"
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
-msgstr "Ustawianie cechy systemu plików '%s' nie jest obs³ugiwane.\n"
+msgstr "Ustawianie cechy systemu plików '%s' nie jest obsługiwane.\n"
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-"Flaga has_journal mo¿e byæ wyczyszczona tylko kiedy system plików\n"
+"Flaga has_journal może być wyczyszczona tylko kiedy system plików\n"
"jest odmontowany lub zamontowany tylko do odczytu.\n"
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
msgstr ""
-"Flaga needs_recovery jest ustawiona. Proszê uruchomiæ e2fsck przed\n"
+"Flaga needs_recovery jest ustawiona. Proszę uruchomić e2fsck przed\n"
"czyszczeniem flagi has_journal.\n"
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Zmiana rozmiaru i-węzła nie jest obsługiwana dla systemów plików\n"
+"z włączoną cechą flex_bg.\n"
+
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
"read-only.\n"
msgstr ""
-"Funkcja ochrony przed wielokrotnym montowaniem nie mo¿e zostaæ\n"
-"w³±czona, je¶li system plików jest zamontowany lub tylko do odczytu.\n"
+"Funkcja ochrony przed wielokrotnym montowaniem nie może zostać\n"
+"włączona, jeśli system plików jest zamontowany lub tylko do odczytu.\n"
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr "Zavezpieczenie przed wielokrotnym montowaniem zosta³a w³±czona z czasem uaktualniania %ds.\n"
+msgstr ""
+"Zavezpieczenie przed wielokrotnym montowaniem została włączona z czasem "
+"uaktualniania %ds.\n"
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
msgstr ""
-"Funkcja zabezpieczenia przed wielokrotnym montowaniem nie mo¿e zostaæ\n"
-"wy³±czona, je¶li system plików jest tylko do odczytu.\n"
+"Funkcja zabezpieczenia przed wielokrotnym montowaniem nie może zostać\n"
+"wyłączona, jeśli system plików jest tylko do odczytu.\n"
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
-msgstr "B³±d podczas odczytu bitmap\n"
+msgstr "BÅ‚Ä…d podczas odczytu bitmap\n"
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr "Liczba magiczna w bloku MMP siê nie zgadza; oczekiwano %x, jest %x\n"
+msgstr "Liczba magiczna w bloku MMP siÄ™ nie zgadza; oczekiwano %x, jest %x\n"
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
msgstr "podczas odczytu bloku MMP."
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
-msgstr "Wy³±czenie flagi flex_bg spowoduje niespójno¶æ systemu plików.\n"
+msgstr "Wyłączenie flagi flex_bg spowoduje niespójność systemu plików.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-"Flaga huge_file mo¿e byæ wyczyszczona tylko kiedy system plików\n"
+"Flaga huge_file może być wyczyszczona tylko kiedy system plików\n"
"jest odmontowany lub zamontowany tylko do odczytu.\n"
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
@@ -4956,158 +5374,166 @@ msgstr ""
"\n"
"Uwaga: opcja '^quota' nadpisuje argumenty '-Q'.\n"
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
-msgstr "System plików ju¿ ma kronikê.\n"
+msgstr "System plików już ma kronikę.\n"
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
"\twhile trying to open journal on %s\n"
msgstr ""
"\n"
-"\tpodczas próby otworzenia kroniki na %s\n"
+"\tpodczas próby otworzenia kroniki na %s\n"
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
-msgstr "Tworzenie kroniki na urz±dzeniu %s: "
+msgstr "Tworzenie kroniki na urzÄ…dzeniu %s: "
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
-msgstr "podczas dodawania systemu plików do kroniki na %s"
+msgstr "podczas dodawania systemu plików do kroniki na %s"
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
-msgstr "Tworzenie i-wêz³a kroniki: "
+msgstr "Tworzenie i-węzła kroniki: "
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
msgstr ""
"\n"
-"\tpodczas próby utworzenia pliku kroniki"
+"\tpodczas próby utworzenia pliku kroniki"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
-msgstr "Nie mo¿na przydzieliæ pamiêci do analizy opcji limitów!\n"
+msgstr "Nie można przydzielić pamięci do analizy opcji limitów!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
msgstr ""
"\n"
-"Podano b³êdne opcje limitów.\n"
+"Podano błędne opcje limitów.\n"
"\n"
-"Dostêpne s± nastêpuj±ce opcje limitów (mo¿na je przekazywaæ oddzielone przecinkiem):\n"
+"Dostępne są następujące opcje limitów (można je przekazywać oddzielone "
+"przecinkiem):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
-msgstr "Nie mo¿na przeanalizowaæ podanej daty/czasu: %s"
+msgstr "Nie można przeanalizować podanej daty/czasu: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
-msgstr "b³êdna liczba montowañ - %s"
+msgstr "błędna liczba montowań - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
-msgstr "b³êdne traktowanie b³êdów - %s"
+msgstr "błędne traktowanie błędów - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
-msgstr "b³êdny gid/nazwa grupy - %s"
+msgstr "błędny gid/nazwa grupy - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
-msgstr "b³êdny odstêp - %s"
+msgstr "błędny odstęp - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
-msgstr "b³êdny procent zarezerwowanych bloków - %s"
+msgstr "błędny procent zarezerwowanych bloków - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
-msgstr "-o mo¿e byæ podane tylko raz"
+msgstr "-o może być podane tylko raz"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
-msgstr "-O mo¿e byæ podane tylko raz"
+msgstr "-O może być podane tylko raz"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
-msgstr "b³êdna liczba zarezerwowanych bloków - %s"
+msgstr "błędna liczba zarezerwowanych bloków - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
-msgstr "b³êdny uid/nazwa u¿ytkownika - %s"
+msgstr "błędny uid/nazwa użytkownika - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
-msgstr "b³êdny rozmiar i-wêz³a - %s"
+msgstr "błędny rozmiar i-węzła - %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
-msgstr "Rozmiar i-wêz³a musi byæ potêg± dwójki - %s"
+msgstr "Rozmiar i-węzła musi być potęgą dwójki - %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
-msgstr "Okres uaktualniania mmp zbyt du¿y: %lu\n"
+msgstr "Okres uaktualniania mmp zbyt duży: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] "Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym montowaniem na %lu sekundê\n"
-msgstr[1] "Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym montowaniem na %lu sekundy\n"
-msgstr[2] "Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym montowaniem na %lu sekund\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] ""
+"Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym "
+"montowaniem na %lu sekundÄ™\n"
+msgstr[1] ""
+"Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym "
+"montowaniem na %lu sekundy\n"
+msgstr[2] ""
+"Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym "
+"montowaniem na %lu sekund\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
-msgstr "B³êdny parametr RAID stride: %s\n"
+msgstr "Błędny parametr RAID stride: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
-msgstr "B³êdny parametr RAID stripe-width: %s\n"
+msgstr "Błędny parametr RAID stripe-width: %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
-msgstr "B³êdny algorytm haszowania: %s\n"
+msgstr "Błędny algorytm haszowania: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
-msgstr "Ustawianie domy¶lnego algorytmu haszowania na %s (%d)\n"
+msgstr "Ustawianie domyślnego algorytmu haszowania na %s (%d)\n"
-#: misc/tune2fs.c:1257
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -5125,274 +5551,349 @@ msgid ""
"\t^test_fs\n"
msgstr ""
"\n"
-"Podano b³êdne opcje.\n"
+"Podano błędne opcje.\n"
"\n"
-"Opcje rozszerzone s± oddzielane przecinkami i mog± przyjmowaæ parametr,\n"
-"\tktóry jest ustawiany znakiem '='.\n"
+"Opcje rozszerzone są oddzielane przecinkami i mogą przyjmować parametr,\n"
+"\tktóry jest ustawiany znakiem '='.\n"
"\n"
"Poprawne opcje to:\n"
"\tclear_mmp\n"
"\thash_alg=<algorytm haszowania>\n"
-"\tmount_opts=<rozszerzone domy¶lne opcje montowania>\n"
+"\tmount_opts=<rozszerzone domyślne opcje montowania>\n"
"\tstride=<rozmiar porcji danych RAID na dysku w blokach>\n"
-"\tstripe_width=<RAID stride * liczba dysków danych w blokach>\n"
+"\tstripe_width=<RAID stride * liczba dysków danych w blokach>\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
-msgstr "Nie uda³o siê odczytaæ bitmapy i-wêz³ów\n"
+msgstr "Nie udało się odczytać bitmapy i-węzłów\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
-msgstr "Nie uda³o siê odczytaæ bitmapy bloków\n"
+msgstr "Nie udało się odczytać bitmapy bloków\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "bloki do przeniesienia"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr "Nie uda³o siê przydzieliæ bitmapy bloków podczas zwiêkszania rozmiaru i-wêz³a\n"
+msgstr ""
+"Nie udało się przydzielić bitmapy bloków podczas zwiększania rozmiaru i-"
+"węzła\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
-msgstr "Za ma³o miejsca, aby zwiêkszyæ rozmiar i-wêz³a\n"
+msgstr "Za mało miejsca, aby zwiększyć rozmiar i-węzła\n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
-msgstr "Nie uda³o siê przemie¶ciæ bloków podczas zmiany rozmiaru i-wêz³a\n"
+msgstr "Nie udało się przemieścić bloków podczas zmiany rozmiaru i-węzła\n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
-"B³±d podczas zmiany rozmiaru i-wêz³a.\n"
-"Nale¿y uruchomiæ e2undo w celu wycofania zmian w systemie plików.\n"
+"Błąd podczas zmiany rozmiaru i-węzła.\n"
+"Należy uruchomić e2undo w celu wycofania zmian w systemie plików.\n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
-msgstr "Nie mo¿na przydzieliæ pamiêci na nazwê plików tdb\n"
+msgstr "Nie można przydzielić pamięci na nazwę plików tdb\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
-msgstr "podczas próby usuniêcia %s"
+msgstr "podczas próby usunięcia %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Aby wycofaæ operacjê tune2fs, proszê wydaæ polecenie\n"
+"Aby wycofać operację tune2fs, proszę wydać polecenie\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-"Liczba magiczna bloku MMP jest b³êdna. Mo¿na próbowaæ to naprawiæ uruchamiaj±c:\n"
+"Liczba magiczna bloku MMP jest błędna. Można próbować to naprawić "
+"uruchamiajÄ…c:\n"
"'e2fsck -f %s'\n"
-#: misc/tune2fs.c:1936
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
-msgstr "Rozmiar i-wêz³a ju¿ wynosi %lu\n"
+msgstr "Rozmiar i-węzła już wynosi %lu\n"
+
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
+msgstr "Zmniejszanie rozmiaru i-węzła nie jest obsługiwane\n"
-#: misc/tune2fs.c:1942
+#: misc/tune2fs.c:1987
#, c-format
-msgid "Shrinking the inode size is not supported\n"
-msgstr "Zmniejszanie rozmiaru i-wêz³a nie jest obs³ugiwane\n"
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "Błędny rozmiar i-węzła %lu (max %d)\n"
-#: misc/tune2fs.c:1989
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
-msgstr "Ustawianie maksymalnej liczby montowañ na %d\n"
+msgstr "Ustawianie maksymalnej liczby montowań na %d\n"
-#: misc/tune2fs.c:1995
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
-msgstr "Ustawianie aktualnego licznika montowañ na %d\n"
+msgstr "Ustawianie aktualnego licznika montowań na %d\n"
-#: misc/tune2fs.c:2000
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
-msgstr "Ustawianie traktowania b³êdów na %d\n"
+msgstr "Ustawianie traktowania błędów na %d\n"
-#: misc/tune2fs.c:2005
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
-msgstr "Ustawianie gid-a zarezerwowanych bloków na %lu\n"
+msgstr "Ustawianie gid-a zarezerwowanych bloków na %lu\n"
-#: misc/tune2fs.c:2010
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
-msgstr "odstêp pomiêdzy sprawdzeniami jest zbyt du¿y (%lu)"
+msgstr "odstęp pomiędzy sprawdzeniami jest zbyt duży (%lu)"
-#: misc/tune2fs.c:2017
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
-msgstr "Ustawianie odstêpu pomiêdzy sprawdzeniami na %lu sekund\n"
+msgstr "Ustawianie odstępu pomiędzy sprawdzeniami na %lu sekund\n"
-#: misc/tune2fs.c:2024
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
-msgstr "Ustawianie procentu zarezerwowanych bloków na %g%% (%llu bloków)\n"
+msgstr "Ustawianie procentu zarezerwowanych bloków na %g%% (%llu bloków)\n"
-#: misc/tune2fs.c:2030
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
-msgstr "liczba zarezerwowanych bloków jest zbyt du¿a (%llu)"
+msgstr "liczba zarezerwowanych bloków jest zbyt duża (%llu)"
-#: misc/tune2fs.c:2037
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
-msgstr "Ustawianie liczby zarezerwowanych bloków na %llu\n"
+msgstr "Ustawianie liczby zarezerwowanych bloków na %llu\n"
-#: misc/tune2fs.c:2043
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
msgstr ""
"\n"
-"System plików ju¿ ma rzadkie superbloki.\n"
+"System plików już ma rzadkie superbloki.\n"
-#: misc/tune2fs.c:2050
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Zmiana rozmiaru i-węzła nie jest obsługiwana dla systemów plików\n"
+"z włączoną cechą flex_bg.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
"Sparse superblock flag set. %s"
msgstr ""
"\n"
-"Flaga rzadkich superbloków ustawiona. %s"
+"Flaga rzadkich superbloków ustawiona. %s"
-#: misc/tune2fs.c:2055
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
-"Usuwanie superflagi sparse nie jest obs³ugiwane.\n"
+"Usuwanie superflagi sparse nie jest obsługiwane.\n"
-#: misc/tune2fs.c:2063
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
-msgstr "Ustawianie czasu ostatniego sprawdzenia systemu plików na %s\n"
+msgstr "Ustawianie czasu ostatniego sprawdzenia systemu plików na %s\n"
-#: misc/tune2fs.c:2069
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
-msgstr "Ustawianie uid-a zarezerwowanych bloków na %lu\n"
+msgstr "Ustawianie uid-a zarezerwowanych bloków na %lu\n"
-#: misc/tune2fs.c:2101
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
-msgstr "B³±d w u¿yciu clear_mmp. Opcja ta musi byæ u¿yta z -f\n"
+msgstr "Błąd w użyciu clear_mmp. Opcja ta musi być użyta z -f\n"
+
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"Funkcję limitów można zmienić tylko na niezamontowanym systemie plików.\n"
-#: misc/tune2fs.c:2119
-msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr "Funkcjê limitów mo¿na zmieniæ tylko na niezamontowanym systemie plików.\n"
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr "UUID można zmienić tylko na niezamontowanym systemie plików.\n"
-#: misc/tune2fs.c:2152
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
-msgstr "B³êdny format UUID-a\n"
+msgstr "Błędny format UUID-a\n"
-#: misc/tune2fs.c:2165
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
-msgstr "Rozmiar i-wêz³a mo¿na zmieniæ tylko na niezamontowanym systemie plików.\n"
+msgstr ""
+"Rozmiar i-węzła można zmienić tylko na niezamontowanym systemie plików.\n"
-#: misc/tune2fs.c:2173
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-"Zmiana rozmiaru i-wêz³a nie jest obs³ugiwana dla systemów plików\n"
-"z w³±czon± cech± flex_bg.\n"
+"Zmiana rozmiaru i-węzła nie jest obsługiwana dla systemów plików\n"
+"z włączoną cechą flex_bg.\n"
-#: misc/tune2fs.c:2186
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
-msgstr "Ustawianie rozmiaru i-wêz³a na %lu\n"
+msgstr "Ustawianie rozmiaru i-węzła na %lu\n"
-#: misc/tune2fs.c:2189
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
-msgstr "Nie uda³o siê zmieniæ rozmiaru i-wêz³a\n"
+msgstr "Nie udało się zmienić rozmiaru i-węzła\n"
-#: misc/tune2fs.c:2200
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Ustawianie rozmiaru stride na %d\n"
-#: misc/tune2fs.c:2205
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
-msgstr "Ustawianie szeroko¶ci stripe na na %d\n"
+msgstr "Ustawianie szerokości stripe na na %d\n"
-#: misc/tune2fs.c:2212
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
-msgstr "Ustawianie rozszerzonych domy¶lnych opcji montowania na '%s'\n"
+msgstr "Ustawianie rozszerzonych domyślnych opcji montowania na '%s'\n"
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Kontynuować mimo to? (t,n) "
-#: misc/util.c:74
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
-msgstr "Kontynuowaæ mimo to? (t,n) "
+msgstr "Kontynuować mimo to? (t,n) "
-#: misc/util.c:89
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "błędna liczba montowań - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "błędna liczba montowań - %s"
+
+#: misc/util.c:135
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Nie mo¿na wykonaæ stat na %s --- %s\n"
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
-#: misc/util.c:92
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "plik zwykły"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "Nie można otworzyć %s: %s"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
msgstr ""
"\n"
-"Urz±dzenie najwyra¼niej nie istnieje; czy zosta³o podane poprawnie?\n"
+"Urządzenie najwyraźniej nie istnieje; czy zostało podane poprawnie?\n"
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
-msgstr "%s nie jest specjalnym urz±dzeniem blokowym.\n"
+msgstr "%s nie jest specjalnym urzÄ…dzeniem blokowym.\n"
-#: misc/util.c:132
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " zawiera system plików z błędami"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " zawiera system plików z błędami"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
-msgstr "%s jest ca³ym urz±dzeniem, a nie tylko jedn± partycj±!\n"
+msgstr "%s jest całym urządzeniem, a nie tylko jedną partycją!\n"
-#: misc/util.c:154
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "mke2fs wymuszone mimo to. Mam nadziejê, ¿e /etc/mtab siê myli.\n"
+msgstr "mke2fs wymuszone mimo to. Mam nadzieję, że /etc/mtab się myli.\n"
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
-msgstr "nie zrobiê tutaj %s!\n"
+msgstr "nie zrobiÄ™ tutaj %s!\n"
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "mke2fs wymuszone mimo to.\n"
-#: misc/util.c:182
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
-msgstr "Nie mo¿na przydzieliæ pamiêci na analizê opcji kroniki!\n"
+msgstr "Nie można przydzielić pamięci na analizę opcji kroniki!\n"
-#: misc/util.c:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
"Could not find journal device matching %s\n"
msgstr ""
"\n"
-"Nie mo¿na znale¼æ urz±dzenia kroniki pasuj±cego do %s\n"
+"Nie można znaleźć urządzenia kroniki pasującego do %s\n"
-#: misc/util.c:228
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5403,32 +5904,33 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
msgstr ""
"\n"
-"Podano b³êdne opcje kroniki.\n"
+"Podano błędne opcje kroniki.\n"
"\n"
-"Opcje kroniki s± oddzielane przecinkami i mog± przyjmowaæ parametr,\n"
-"\tktóry ustawia siê znakiem '='.\n"
+"Opcje kroniki są oddzielane przecinkami i mogą przyjmować parametr,\n"
+"\tktóry ustawia się znakiem '='.\n"
"\n"
"Poprawne opcje kroniki to:\n"
"\tsize=<rozmiar kroniki w megabajtach>\n"
-"\tdevice=<urz±dzenie kroniki>\n"
+"\tdevice=<urzÄ…dzenie kroniki>\n"
"\n"
-"Rozmiar kroniki musi byæ pomiêdzy 1024 a 10240000 blokami systemu plików.\n"
+"Rozmiar kroniki musi być pomiędzy 1024 a 10240000 blokami systemu plików.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
msgstr ""
"\n"
-"System plików za ma³y na kronikê\n"
+"System plików za mały na kronikę\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5436,36 +5938,37 @@ msgid ""
"between 1024 and 10240000 blocks. Aborting.\n"
msgstr ""
"\n"
-"¯±dany rozmiar kroniki to %d bloków; musi byæ\n"
-"pomiêdzy 1024 a 10240000 bloków. Przerwano.\n"
+"Żądany rozmiar kroniki to %d bloków; musi być\n"
+"pomiędzy 1024 a 10240000 bloków. Przerwano.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
msgstr ""
"\n"
-"Rozmiar kroniki zbyt du¿y dla systemu plików.\n"
+"Rozmiar kroniki zbyt duży dla systemu plików.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, 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 ""
-"Ten system plików bêdzie automatycznie sprawdzany co ka¿de %d montowañ\n"
-"lub co %g dni, zale¿nie co nast±pi pierwsze. Mo¿na to zmieniæ poprzez\n"
+"Ten system plików będzie automatycznie sprawdzany co każde %d montowań\n"
+"lub co %g dni, zależnie co nastąpi pierwsze. Można to zmienić poprzez\n"
"tune2fs -c lub -i.\n"
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr "Sk³adnia: %s [-d] [-p plik_pid] [-s ¶cie¿ka_gniazda] [-T limit_czasu]\n"
+msgstr ""
+"Składnia: %s [-d] [-p plik_pid] [-s ścieżka_gniazda] [-T limit_czasu]\n"
#: misc/uuidd.c:50
#, c-format
msgid " %s [-r|t] [-n num] [-s socketpath]\n"
-msgstr " %s [-r|t] [-n ile] [-s ¶cie¿ka_gniazda]\n"
+msgstr " %s [-r|t] [-n ile] [-s ścieżka_gniazda]\n"
#: misc/uuidd.c:52
#, c-format
@@ -5474,11 +5977,11 @@ msgstr " %s -k\n"
#: misc/uuidd.c:154
msgid "bad arguments"
-msgstr "b³êdne argumenty"
+msgstr "błędne argumenty"
#: misc/uuidd.c:172
msgid "connect"
-msgstr "³±czenie"
+msgstr "Å‚Ä…czenie"
#: misc/uuidd.c:191
msgid "write"
@@ -5490,37 +5993,37 @@ msgstr "odczyt liczby"
#: misc/uuidd.c:205
msgid "bad response length"
-msgstr "b³êdna d³ugo¶æ odpowiedzi"
+msgstr "błędna długość odpowiedzi"
#: misc/uuidd.c:270
#, c-format
msgid "uuidd daemon already running at pid %s\n"
-msgstr "demon uuidd ju¿ dzia³a z pidem %s\n"
+msgstr "demon uuidd już działa z pidem %s\n"
#: misc/uuidd.c:278
#, c-format
msgid "Couldn't create unix stream socket: %s"
-msgstr "Nie uda³o siê utworzyæ uniksowego gniazda strumieniowego: %s"
+msgstr "Nie udało się utworzyć uniksowego gniazda strumieniowego: %s"
#: misc/uuidd.c:307
#, c-format
msgid "Couldn't bind unix socket %s: %s\n"
-msgstr "Nie uda³o siê podpi±æ gniazda uniksowego %s: %s\n"
+msgstr "Nie udało się podpiąć gniazda uniksowego %s: %s\n"
#: misc/uuidd.c:315
#, c-format
msgid "Couldn't listen on unix socket %s: %s\n"
-msgstr "Nie mo¿na nas³uchiwaæ na gnie¼dzie uniksowym %s: %s\n"
+msgstr "Nie można nasłuchiwać na gnieździe uniksowym %s: %s\n"
#: misc/uuidd.c:353
#, c-format
msgid "Error reading from client, len = %d\n"
-msgstr "B³±d odczytu od klienta, d³ugo¶æ = %d\n"
+msgstr "Błąd odczytu od klienta, długość = %d\n"
#: misc/uuidd.c:361
#, c-format
msgid "operation %d, incoming num = %d\n"
-msgstr "operacja %d, liczba przychodz±ca = %d\n"
+msgstr "operacja %d, liczba przychodzÄ…ca = %d\n"
#: misc/uuidd.c:380
#, c-format
@@ -5543,22 +6046,22 @@ msgstr[2] "Wygenerowany UUID czasowy %s i %d kolejnych\n"
#: misc/uuidd.c:420
#, c-format
msgid "Generated %d UUID's:\n"
-msgstr "Wygenerowano %d UUID-ów:\n"
+msgstr "Wygenerowano %d UUID-ów:\n"
#: misc/uuidd.c:432
#, c-format
msgid "Invalid operation %d\n"
-msgstr "B³êdna operacja %d\n"
+msgstr "Błędna operacja %d\n"
#: misc/uuidd.c:476 misc/uuidd.c:498
#, c-format
msgid "Bad number: %s\n"
-msgstr "B³êdna liczba: %s\n"
+msgstr "Błędna liczba: %s\n"
#: misc/uuidd.c:533 misc/uuidd.c:562
#, c-format
msgid "Error calling uuidd daemon (%s): %s\n"
-msgstr "B³±d podczas wywo³ania demona uuidd (%s): %s\n"
+msgstr "Błąd podczas wywołania demona uuidd (%s): %s\n"
#: misc/uuidd.c:543
#, c-format
@@ -5566,32 +6069,31 @@ msgid "%s and subsequent UUID\n"
msgid_plural "%s and subsequent %d UUIDs\n"
msgstr[0] "%s i kolejny UUID\n"
msgstr[1] "%s i %d kolejne UUID-y\n"
-msgstr[2] "%s i %d kolejnych UUID-ów\n"
+msgstr[2] "%s i %d kolejnych UUID-ów\n"
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
-msgstr "Lista UUID-ów:\n"
+msgstr "Lista UUID-ów:\n"
#: misc/uuidd.c:568
#, c-format
msgid "Unexpected reply length from server %d\n"
-msgstr "Nieoczekiwana d³ugo¶æ odpowiedzi serwera: %d\n"
+msgstr "Nieoczekiwana długość odpowiedzi serwera: %d\n"
#: misc/uuidd.c:585
#, c-format
msgid "Couldn't kill uuidd running at pid %d: %s\n"
-msgstr "Nie uda³o siê zabiæ uuidd dzia³aj±cego z pidem %d: %s\n"
+msgstr "Nie udało się zabić uuidd działającego z pidem %d: %s\n"
#: misc/uuidd.c:591
#, c-format
msgid "Killed uuidd running at pid %d\n"
-msgstr "Zapito uuidd dzia³aj±cy z pidem %d\n"
+msgstr "Zapito uuidd działający z pidem %d\n"
#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
-msgstr "Sk³adnia: %s [-r] [-t]\n"
+msgstr "Składnia: %s [-r] [-t]\n"
#: resize/extent.c:202
msgid "# Extent dump:\n"
@@ -5602,358 +6104,395 @@ msgstr "# Zrzut ekstentu:\n"
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tNum=%llu, Rozmiar=%llu, Kursor=%llu, Sortowane=%llu\n"
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Sk³adnia: %s [-d flagi_¶ledzenia] [-f] [-F] [-M] [-P] [-p] urz±dzenie [nowy_rozm]\n"
+"Składnia: %s [-d flagi_śledzenia] [-f] [-F] [-M] [-P] [-p] urządzenie "
+"[nowy_rozm]\n"
"\n"
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
-msgstr "Rozszerzanie tablicy i-wêz³ów"
+msgstr "Rozszerzanie tablicy i-węzłów"
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
-msgstr "Relokowanie bloków"
+msgstr "Relokowanie bloków"
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
-msgstr "Przeszukiwanie tablicy i-wêz³ów"
+msgstr "Przeszukiwanie tablicy i-węzłów"
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
-msgstr "Uaktualnianie odwo³añ do i-wêz³ów"
+msgstr "Uaktualnianie odwołań do i-węzłów"
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
-msgstr "Przenoszenie tablicy i-wêz³ów"
+msgstr "Przenoszenie tablicy i-węzłów"
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "Nieznany przebieg?!?"
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
-msgstr "Pocz±tkowy przebieg %d (maksymalny = %lu)\n"
+msgstr "PoczÄ…tkowy przebieg %d (maksymalny = %lu)\n"
+
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+"\n"
+"Zmiana rozmiarów systemów plików bigalloc nie została jeszcze w pełni\n"
+"przetestowana. Kontynuacja tylko na własne ryzyko! Aby mimo wszystko\n"
+"to wykonać, należy użyć opcji force.\n"
+"\n"
-#: resize/main.c:263
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "podczas otwierania %s"
-#: resize/main.c:275
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "podczas pobierania informacji stat dla %s"
-#: resize/main.c:336
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Kombinacja cech flex_bg i\n"
-"\t!resize_inode nie jest obs³ugiwana przez resize2fs.\n"
-
-#: resize/main.c:349 resize/main.c:457
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"\n"
msgstr ""
-"Proszê uruchomiæ najpierw 'e2fsck -f %s'.\n"
+"Proszę uruchomić najpierw 'e2fsck -f %s'.\n"
"\n"
-#: resize/main.c:353
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
-msgstr "Przybli¿ony minimalny rozmiar systemu plików: %llu\n"
+msgstr "Przybliżony minimalny rozmiar systemu plików: %llu\n"
-#: resize/main.c:389
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
-msgstr "B³êdny nowy rozmiar: %s\n"
+msgstr "Błędny nowy rozmiar: %s\n"
-#: resize/main.c:397
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
-msgstr "Nowy rozmiar zbyt du¿y, by móg³ byæ wyra¿ony w 32 bitach\n"
+msgstr "Nowy rozmiar zbyt duży, by mógł być wyrażony w 32 bitach\n"
-#: resize/main.c:409
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
-msgstr "Nowy rozmiar jest mniejszy ni¿ minimalny (%llu)\n"
+msgstr "Nowy rozmiar jest mniejszy niż minimalny (%llu)\n"
-#: resize/main.c:415
+#: resize/main.c:408
msgid "Invalid stride length"
-msgstr "B³êdna d³ugo¶æ stride"
+msgstr "Błędna długość stride"
-#: resize/main.c:439
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
-"Partycja zawieraj±ca (lub urz±dzenie) ma tylko %llu bloków (%dk).\n"
-"Za¿±dano nowego rozmiaru %llu bloków.\n"
+"Partycja zawierająca (lub urządzenie) ma tylko %llu bloków (%dk).\n"
+"Zażądano nowego rozmiaru %llu bloków.\n"
"\n"
-#: resize/main.c:446
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
-"System plików ju¿ ma wielko¶æ %llu bloków. Nie ma nic do roboty!\n"
+"System plików już ma wielkość %llu bloków. Nie ma nic do roboty!\n"
"\n"
-#: resize/main.c:461
+#: resize/main.c:456
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
-msgstr "Zmiana rozmiaru systemu plików %s na %llu (%dk) bloków.\n"
+msgstr "Zmiana rozmiaru systemu plików %s na %llu (%dk) bloków.\n"
-#: resize/main.c:470
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
-msgstr "podczas próby zmiany rozmiaru %s"
+msgstr "podczas próby zmiany rozmiaru %s"
-#: resize/main.c:473
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"after the aborted resize operation.\n"
msgstr ""
-"Proszê uruchomiæ 'e2fsck -fy %s', aby naprawiæ system plików\n"
+"Proszę uruchomić 'e2fsck -fy %s', aby naprawić system plików\n"
"po przerwanej operacji zmiany rozmiaru.\n"
-#: resize/main.c:479
+#: resize/main.c:474
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
-"System plików na %s ma teraz %llu bloków.\n"
+"System plików na %s ma teraz %llu bloków.\n"
"\n"
-#: resize/main.c:494
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
-msgstr "podczas próby skrócenia %s"
+msgstr "podczas próby skrócenia %s"
-#: resize/online.c:40
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Jądro nie obsługuje zmiany rozmiaru w locie"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr "System plików %s jest zamontowany pod %s; wymagana zmiana rozmiaru w locie\n"
+msgstr ""
+"System plików %s jest zamontowany pod %s; wymagana zmiana rozmiaru w locie\n"
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
-msgstr "Zmniejszanie w locie nie jest obs³ugiwane"
+msgstr "Zmniejszanie w locie nie jest obsługiwane"
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
-msgstr "System plików nie obs³uguje zmiany rozmiaru w locie"
+msgstr "System plików nie obsługuje zmiany rozmiaru w locie"
+
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Zbyt mało zarezerwowanych bloków gdt do zmiany rozmiaru"
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Jądro nie obsługuje zmiany rozmiaru tak dużego systemu plików"
-#: resize/online.c:70
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
-msgstr "podczas próby otwarcia punktu montowania %s"
+msgstr "podczas próby otwarcia punktu montowania %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr "Zażądano starego interfejsu resize.\n"
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
-msgstr "Brak uprawnieñ do zmiany rozmiaru systemu plików"
+msgstr "Brak uprawnień do zmiany rozmiaru systemu plików"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
-msgstr "Podczas sprawdzania obs³ugi zmiany rozmiaru w locie"
-
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "J±dro nie obs³uguje zmiany rozmiaru tak du¿ego systemu plików"
+msgstr "Podczas sprawdzania obsługi zmiany rozmiaru w locie"
-#: resize/online.c:119
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
-msgstr "J±dro nie obs³uguje zmiany rozmiaru w locie"
+msgstr "Jądro nie obsługuje zmiany rozmiaru w locie"
-#: resize/online.c:152
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr "Wykonywanie zmiany rozmiaru w locie %s na %llu (%dk) bloków.\n"
+msgstr "Wykonywanie zmiany rozmiaru w locie %s na %llu (%dk) bloków.\n"
-#: resize/online.c:162
+#: resize/online.c:233
msgid "While trying to extend the last group"
-msgstr "Podczas próby rozszerzenia ostatniej grupy"
+msgstr "Podczas próby rozszerzenia ostatniej grupy"
-#: resize/online.c:216
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
-msgstr "Podczas próby dodania grupy #%d"
+msgstr "Podczas próby dodania grupy #%d"
-#: resize/online.c:227
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
-msgstr "System plików na %s jest zamontowany pod %s, zmiana rozmiaru w locie nie jest obs³ugiwana na tym systemie.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
+msgstr ""
+"System plików na %s jest zamontowany pod %s, zmiana rozmiaru w locie nie "
+"jest obsługiwana na tym systemie.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
-msgstr "liczba i-wêz³ów (%llu) musi byæ mniejsza ni¿ %u"
+msgstr "liczba i-węzłów (%llu) musi być mniejsza niż %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "zarezerwowane bloki"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "bloki metadanych"
-#: resize/resize2fs.c:1735
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "bloki metadanych"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
-msgstr "Nigdy siê nie powinno zdarzyæ: i-wêze³ zmiany rozmiaru uszkodzony!\n"
+msgstr "Nigdy się nie powinno zdarzyć: i-węzeł zmiany rozmiaru uszkodzony!\n"
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42-WIP"
-msgstr "Biblioteka EXT2FS w wersji 1.42-WIP"
+#, fuzzy
+msgid "EXT2FS Library version 1.42.10"
+msgstr "Biblioteka EXT2FS w wersji 1.42.9"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
-msgstr "B³êdna liczba magiczna dla struktury ext2_filsys"
+msgstr "Błędna liczba magiczna dla struktury ext2_filsys"
#: lib/ext2fs/ext2_err.c:13
msgid "Wrong magic number for badblocks_list structure"
-msgstr "B³êdna liczba magiczna dla struktury badblocks_list"
+msgstr "Błędna liczba magiczna dla struktury badblocks_list"
#: lib/ext2fs/ext2_err.c:14
msgid "Wrong magic number for badblocks_iterate structure"
-msgstr "B³êdna liczba magiczna dla struktury badblocks_iterate"
+msgstr "Błędna liczba magiczna dla struktury badblocks_iterate"
#: lib/ext2fs/ext2_err.c:15
msgid "Wrong magic number for inode_scan structure"
-msgstr "B³êdna liczba magiczna dla struktury inode_scan"
+msgstr "Błędna liczba magiczna dla struktury inode_scan"
#: lib/ext2fs/ext2_err.c:16
msgid "Wrong magic number for io_channel structure"
-msgstr "B³êdna liczba magiczna dla struktury io_channel"
+msgstr "Błędna liczba magiczna dla struktury io_channel"
#: lib/ext2fs/ext2_err.c:17
msgid "Wrong magic number for unix io_channel structure"
-msgstr "B³êdna liczba magiczna dla struktury io_channel typu unix"
+msgstr "Błędna liczba magiczna dla struktury io_channel typu unix"
#: lib/ext2fs/ext2_err.c:18
msgid "Wrong magic number for io_manager structure"
-msgstr "B³êdna liczba magiczna dla struktury io_manager"
+msgstr "Błędna liczba magiczna dla struktury io_manager"
#: lib/ext2fs/ext2_err.c:19
msgid "Wrong magic number for block_bitmap structure"
-msgstr "B³êdna liczba magiczna dla struktury block_bitmap"
+msgstr "Błędna liczba magiczna dla struktury block_bitmap"
#: lib/ext2fs/ext2_err.c:20
msgid "Wrong magic number for inode_bitmap structure"
-msgstr "B³êdna liczba magiczna dla struktury inode_bitmap"
+msgstr "Błędna liczba magiczna dla struktury inode_bitmap"
#: lib/ext2fs/ext2_err.c:21
msgid "Wrong magic number for generic_bitmap structure"
-msgstr "B³êdna liczba magiczna dla struktury generic_bitmap"
+msgstr "Błędna liczba magiczna dla struktury generic_bitmap"
#: lib/ext2fs/ext2_err.c:22
msgid "Wrong magic number for test io_channel structure"
-msgstr "B³êdna liczba magiczna dla strukruty io_channel typu test"
+msgstr "Błędna liczba magiczna dla strukruty io_channel typu test"
#: lib/ext2fs/ext2_err.c:23
msgid "Wrong magic number for directory block list structure"
-msgstr "B³êdna liczba magiczna dla struktury listy bloków katalogu"
+msgstr "Błędna liczba magiczna dla struktury listy bloków katalogu"
#: lib/ext2fs/ext2_err.c:24
msgid "Wrong magic number for icount structure"
-msgstr "B³êdna liczba magiczna dla struktury icount"
+msgstr "Błędna liczba magiczna dla struktury icount"
#: lib/ext2fs/ext2_err.c:25
msgid "Wrong magic number for Powerquest io_channel structure"
-msgstr "B³êdna liczba magiczna dla struktury io_channel typu Powerquest"
+msgstr "Błędna liczba magiczna dla struktury io_channel typu Powerquest"
#: lib/ext2fs/ext2_err.c:26
msgid "Wrong magic number for ext2 file structure"
-msgstr "B³êdna liczba magiczna dla struktury pliku ext2"
+msgstr "Błędna liczba magiczna dla struktury pliku ext2"
#: lib/ext2fs/ext2_err.c:27
msgid "Wrong magic number for Ext2 Image Header"
-msgstr "B³êdna liczba magiczna dla nag³ówka obrazu ext2"
+msgstr "Błędna liczba magiczna dla nagłówka obrazu ext2"
#: lib/ext2fs/ext2_err.c:28
msgid "Wrong magic number for inode io_channel structure"
-msgstr "B³êdna liczba magiczna dla struktury io_channel i-wêz³a"
+msgstr "Błędna liczba magiczna dla struktury io_channel i-węzła"
#: lib/ext2fs/ext2_err.c:29
msgid "Wrong magic number for ext4 extent handle"
-msgstr "B³êdna liczba magiczna dla uchwytu ekstentu ext4"
+msgstr "Błędna liczba magiczna dla uchwytu ekstentu ext4"
#: lib/ext2fs/ext2_err.c:30
msgid "Bad magic number in super-block"
-msgstr "B³êdna liczba magiczna w superbloku"
+msgstr "Błędna liczba magiczna w superbloku"
#: lib/ext2fs/ext2_err.c:31
msgid "Filesystem revision too high"
-msgstr "Wersja systemu plików zbyt du¿a"
+msgstr "Wersja systemu plików zbyt duża"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Próba zapisu w systemie plików otwartym tylko do odczytu"
+msgstr "Próba zapisu w systemie plików otwartym tylko do odczytu"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
-msgstr "Nie mo¿na odczytaæ deskryptorów grup"
+msgstr "Nie można odczytać deskryptorów grup"
#: lib/ext2fs/ext2_err.c:34
msgid "Can't write group descriptors"
-msgstr "Nie mo¿na zapisaæ deskryptorów grup"
+msgstr "Nie można zapisać deskryptorów grup"
#: lib/ext2fs/ext2_err.c:35
msgid "Corrupt group descriptor: bad block for block bitmap"
-msgstr "Uszkodzony deskryptor grupy: wadliwy blok bitmapy bloków"
+msgstr "Uszkodzony deskryptor grupy: wadliwy blok bitmapy bloków"
#: lib/ext2fs/ext2_err.c:36
msgid "Corrupt group descriptor: bad block for inode bitmap"
-msgstr "Uszkodzony deskryptor grupy: wadliwy blok bitmapy i-wêz³ów"
+msgstr "Uszkodzony deskryptor grupy: wadliwy blok bitmapy i-węzłów"
#: lib/ext2fs/ext2_err.c:37
msgid "Corrupt group descriptor: bad block for inode table"
-msgstr "Uszkodzony deskryptor grupy: wadliwy blok tablicy i-wêz³ów"
+msgstr "Uszkodzony deskryptor grupy: wadliwy blok tablicy i-węzłów"
#: lib/ext2fs/ext2_err.c:38
msgid "Can't write an inode bitmap"
-msgstr "Nie mo¿na zapisaæ bitmapy i-wêz³ów"
+msgstr "Nie można zapisać bitmapy i-węzłów"
#: lib/ext2fs/ext2_err.c:39
msgid "Can't read an inode bitmap"
-msgstr "Nie mo¿na odczytaæ bitmapy i-wêz³ów"
+msgstr "Nie można odczytać bitmapy i-węzłów"
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
-msgstr "Nie mo¿na zapisaæ bitmapy bloków"
+msgid "Can't write a block bitmap"
+msgstr "Nie można zapisać bitmapy bloków"
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
-msgstr "Nie mo¿na odczytaæ bitmapy bloków"
+msgid "Can't read a block bitmap"
+msgstr "Nie można odczytać bitmapy bloków"
#: lib/ext2fs/ext2_err.c:42
msgid "Can't write an inode table"
-msgstr "Nie mo¿na zapisaæ tablicy i-wêz³ów"
+msgstr "Nie można zapisać tablicy i-węzłów"
#: lib/ext2fs/ext2_err.c:43
msgid "Can't read an inode table"
-msgstr "Nie mo¿na odczytaæ tablicy i-wêz³ów"
+msgstr "Nie można odczytać tablicy i-węzłów"
#: lib/ext2fs/ext2_err.c:44
msgid "Can't read next inode"
-msgstr "Nie mo¿na odczytaæ kolejnego i-wêz³a"
+msgstr "Nie można odczytać kolejnego i-węzła"
#: lib/ext2fs/ext2_err.c:45
msgid "Filesystem has unexpected block size"
-msgstr "System plików ma nieoczekiwany rozmiar bloku"
+msgstr "System plików ma nieoczekiwany rozmiar bloku"
#: lib/ext2fs/ext2_err.c:46
msgid "EXT2 directory corrupted"
@@ -5961,11 +6500,11 @@ msgstr "Katalog EXT2 uszkodzony"
#: lib/ext2fs/ext2_err.c:47
msgid "Attempt to read block from filesystem resulted in short read"
-msgstr "Próba odczytu bloku z systemu plików zakoñczy³a siê skróconym odczytem"
+msgstr "Próba odczytu bloku z systemu plików zakończyła się skróconym odczytem"
#: lib/ext2fs/ext2_err.c:48
msgid "Attempt to write block to filesystem resulted in short write"
-msgstr "Próba zapisu bloku w systemie plików zakoñczy³a siê skróconym zapisem"
+msgstr "Próba zapisu bloku w systemie plików zakończyła się skróconym zapisem"
#: lib/ext2fs/ext2_err.c:49
msgid "No free space in the directory"
@@ -5973,27 +6512,27 @@ msgstr "Brak wolnego miejsca w katalogu"
#: lib/ext2fs/ext2_err.c:50
msgid "Inode bitmap not loaded"
-msgstr "Nie wczytano bitmapy i-wêz³ów"
+msgstr "Nie wczytano bitmapy i-węzłów"
#: lib/ext2fs/ext2_err.c:51
msgid "Block bitmap not loaded"
-msgstr "Nie wczytano bitmapy bloków"
+msgstr "Nie wczytano bitmapy bloków"
#: lib/ext2fs/ext2_err.c:52
msgid "Illegal inode number"
-msgstr "Niedozwolona liczba i-wêz³ów"
+msgstr "Niedozwolona liczba i-węzłów"
#: lib/ext2fs/ext2_err.c:53
msgid "Illegal block number"
-msgstr "Niedozwolona liczba bloków"
+msgstr "Niedozwolona liczba bloków"
#: lib/ext2fs/ext2_err.c:54
msgid "Internal error in ext2fs_expand_dir"
-msgstr "B³±d wewnêtrzny w ext2fs_expand_dir"
+msgstr "Błąd wewnętrzny w ext2fs_expand_dir"
#: lib/ext2fs/ext2_err.c:55
msgid "Not enough space to build proposed filesystem"
-msgstr "Za ma³o miejsca do zbudowania proponowanego systemu plików"
+msgstr "Za mało miejsca do zbudowania proponowanego systemu plików"
#: lib/ext2fs/ext2_err.c:56
msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
@@ -6009,51 +6548,51 @@ msgstr "Niedozwolony numer bloku przekazany do ext2fs_test_block_bitmap"
#: lib/ext2fs/ext2_err.c:59
msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
-msgstr "Niedozwolony numer i-wêz³a przekazany do ext2fs_mark_inode_bitmap"
+msgstr "Niedozwolony numer i-węzła przekazany do ext2fs_mark_inode_bitmap"
#: lib/ext2fs/ext2_err.c:60
msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
-msgstr "Niedozwolony numer i-wêz³a przekazany do ext2fs_unmark_inode_bitmap"
+msgstr "Niedozwolony numer i-węzła przekazany do ext2fs_unmark_inode_bitmap"
#: lib/ext2fs/ext2_err.c:61
msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
-msgstr "Niedozwolony numer i-wêz³a przekazany do ext2fs_test_inode_bitmap"
+msgstr "Niedozwolony numer i-węzła przekazany do ext2fs_test_inode_bitmap"
#: lib/ext2fs/ext2_err.c:62
msgid "Attempt to fudge end of block bitmap past the real end"
-msgstr "Próba sfa³szowania koñca bitmapy bloków za prawdziwym koñcem"
+msgstr "Próba sfałszowania końca bitmapy bloków za prawdziwym końcem"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr "Próba sfa³szowania koñca bitmapy i-wêz³ów za prawdziwym koñcem"
+msgstr "Próba sfałszowania końca bitmapy i-węzłów za prawdziwym końcem"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
-msgstr "Znaleziono niedozwolony blok po¶redni"
+msgstr "Znaleziono niedozwolony blok pośredni"
#: lib/ext2fs/ext2_err.c:65
msgid "Illegal doubly indirect block found"
-msgstr "Znaleziono niedozwolony blok podwójnie po¶redni"
+msgstr "Znaleziono niedozwolony blok podwójnie pośredni"
#: lib/ext2fs/ext2_err.c:66
msgid "Illegal triply indirect block found"
-msgstr "Znaleziono niedozwolony blok potrójnie po¶redni"
+msgstr "Znaleziono niedozwolony blok potrójnie pośredni"
#: lib/ext2fs/ext2_err.c:67
msgid "Block bitmaps are not the same"
-msgstr "Bitmapy bloków nie s± takie same"
+msgstr "Bitmapy bloków nie są takie same"
#: lib/ext2fs/ext2_err.c:68
msgid "Inode bitmaps are not the same"
-msgstr "Bitmapy i-wêz³ów nie s± takie same"
+msgstr "Bitmapy i-węzłów nie są takie same"
#: lib/ext2fs/ext2_err.c:69
msgid "Illegal or malformed device name"
-msgstr "Niedozwolona lub ¼le zapisana nazwa urz±dzenia"
+msgstr "Niedozwolona lub źle zapisana nazwa urządzenia"
#: lib/ext2fs/ext2_err.c:70
msgid "A block group is missing an inode table"
-msgstr "Grupa bloków nie ma tablicy i-wêz³ów"
+msgstr "Grupa bloków nie ma tablicy i-węzłów"
#: lib/ext2fs/ext2_err.c:71
msgid "The ext2 superblock is corrupt"
@@ -6073,51 +6612,52 @@ msgstr "Niedozwolony numer bitu przekazany do ext2fs_test_generic_bitmap"
#: lib/ext2fs/ext2_err.c:75
msgid "Too many symbolic links encountered."
-msgstr "Napotkano zbyt du¿o dowi±zañ symbolicznych."
+msgstr "Napotkano zbyt dużo dowiązań symbolicznych."
#: lib/ext2fs/ext2_err.c:76
msgid "The callback function will not handle this case"
-msgstr "Funkcja wywo³ania zwrotnego nie obs³u¿y tego przypadku"
+msgstr "Funkcja wywołania zwrotnego nie obsłuży tego przypadku"
#: lib/ext2fs/ext2_err.c:77
msgid "The inode is from a bad block in the inode table"
-msgstr "I-wêze³ pochodz±cy z wadliwego bloku w tablicy i-wêz³ów"
+msgstr "I-węzeł pochodzący z wadliwego bloku w tablicy i-węzłów"
#: lib/ext2fs/ext2_err.c:78
msgid "Filesystem has unsupported feature(s)"
-msgstr "System plików ma w³±czone nie obs³ugiwane cechy"
+msgstr "System plików ma włączone nie obsługiwane cechy"
#: lib/ext2fs/ext2_err.c:79
msgid "Filesystem has unsupported read-only feature(s)"
-msgstr "System plików ma w³±czone nie obs³ugiwane cechy tylko do odczytu"
+msgstr "System plików ma włączone nie obsługiwane cechy tylko do odczytu"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr "Nie powiod³o siê przemieszczenie w kana³ we/wy przy odczycie lub zapisie"
+msgstr ""
+"Nie powiodło się przemieszczenie w kanał we/wy przy odczycie lub zapisie"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
-msgstr "Przydzielenie pamiêci nie powiod³o siê"
+msgstr "Przydzielenie pamięci nie powiodło się"
#: lib/ext2fs/ext2_err.c:82
msgid "Invalid argument passed to ext2 library"
-msgstr "Przekazano b³êdny argument do biblioteki ext2"
+msgstr "Przekazano błędny argument do biblioteki ext2"
#: lib/ext2fs/ext2_err.c:83
msgid "Could not allocate block in ext2 filesystem"
-msgstr "Nie uda³o siê przydzieliæ bloku w systemie plików ext2"
+msgstr "Nie udało się przydzielić bloku w systemie plików ext2"
#: lib/ext2fs/ext2_err.c:84
msgid "Could not allocate inode in ext2 filesystem"
-msgstr "Nie uda³o siê przydzieliæ i-wêz³a w systemie plików ext2"
+msgstr "Nie udało się przydzielić i-węzła w systemie plików ext2"
#: lib/ext2fs/ext2_err.c:85
msgid "Ext2 inode is not a directory"
-msgstr "I-wêze³ ext2 nie jest katalogiem"
+msgstr "I-węzeł ext2 nie jest katalogiem"
#: lib/ext2fs/ext2_err.c:86
msgid "Too many references in table"
-msgstr "Zbyt du¿o odniesieñ w tablicy"
+msgstr "Zbyt dużo odniesień w tablicy"
#: lib/ext2fs/ext2_err.c:87
msgid "File not found by ext2_lookup"
@@ -6133,7 +6673,7 @@ msgstr "Nie znaleziono bloku katalogu ext2"
#: lib/ext2fs/ext2_err.c:90
msgid "Ext2 directory already exists"
-msgstr "Katalog ext2 ju¿ istnieje"
+msgstr "Katalog ext2 już istnieje"
#: lib/ext2fs/ext2_err.c:91
msgid "Unimplemented ext2 library function"
@@ -6141,15 +6681,15 @@ msgstr "Nie zaimplementowana funkcja biblioteki ext2"
#: lib/ext2fs/ext2_err.c:92
msgid "User cancel requested"
-msgstr "¯±danie przerwania od u¿ytkownika"
+msgstr "Żądanie przerwania od użytkownika"
#: lib/ext2fs/ext2_err.c:93
msgid "Ext2 file too big"
-msgstr "Plik ext2 zbyt du¿y"
+msgstr "Plik ext2 zbyt duży"
#: lib/ext2fs/ext2_err.c:94
msgid "Supplied journal device not a block device"
-msgstr "Przekazane urz±dzenie kroniki nie jest urz±dzeniem blokowym"
+msgstr "Przekazane urzÄ…dzenie kroniki nie jest urzÄ…dzeniem blokowym"
#: lib/ext2fs/ext2_err.c:95
msgid "Journal superblock not found"
@@ -6157,15 +6697,15 @@ msgstr "Nie znaleziono superbloku kroniki"
#: lib/ext2fs/ext2_err.c:96
msgid "Journal must be at least 1024 blocks"
-msgstr "Kronika musi mieæ przynajmniej 1024 bloki"
+msgstr "Kronika musi mieć przynajmniej 1024 bloki"
#: lib/ext2fs/ext2_err.c:97
msgid "Unsupported journal version"
-msgstr "Nie obs³ugiwana wersja kroniki"
+msgstr "Nie obsługiwana wersja kroniki"
#: lib/ext2fs/ext2_err.c:98
msgid "Error loading external journal"
-msgstr "B³±d podczas wczytywania zewnêtrznej kroniki"
+msgstr "Błąd podczas wczytywania zewnętrznej kroniki"
#: lib/ext2fs/ext2_err.c:99
msgid "Journal not found"
@@ -6173,31 +6713,31 @@ msgstr "Nie znaleziono kroniki"
#: lib/ext2fs/ext2_err.c:100
msgid "Directory hash unsupported"
-msgstr "Nie obs³ugiwane haszowanie katalogu"
+msgstr "Nie obsługiwane haszowanie katalogu"
#: lib/ext2fs/ext2_err.c:101
msgid "Illegal extended attribute block number"
-msgstr "B³êdny numer bloku atrybutu rozszerzonego"
+msgstr "Błędny numer bloku atrybutu rozszerzonego"
#: lib/ext2fs/ext2_err.c:102
msgid "Cannot create filesystem with requested number of inodes"
-msgstr "Nie mo¿na utworzyæ systemu plików o ¿±danej liczbie i-wêz³ów"
+msgstr "Nie można utworzyć systemu plików o żądanej liczbie i-węzłów"
#: lib/ext2fs/ext2_err.c:103
msgid "E2image snapshot not in use"
-msgstr "Migawka e2image nie jest w u¿yciu"
+msgstr "Migawka e2image nie jest w użyciu"
#: lib/ext2fs/ext2_err.c:104
msgid "Too many reserved group descriptor blocks"
-msgstr "Zbyt du¿o zarezerwowanych bloków deskryptorów grup"
+msgstr "Zbyt dużo zarezerwowanych bloków deskryptorów grup"
#: lib/ext2fs/ext2_err.c:105
msgid "Resize inode is corrupt"
-msgstr "I-wêze³ zmiany rozmiaru jest uszkodzony"
+msgstr "I-węzeł zmiany rozmiaru jest uszkodzony"
#: lib/ext2fs/ext2_err.c:106
msgid "Tried to set block bmap with missing indirect block"
-msgstr "Próbowano ustawiæ bitmapê bloków z brakuj±cym blokiem bezpo¶rednim"
+msgstr "Próbowano ustawić bitmapę bloków z brakującym blokiem bezpośrednim"
#: lib/ext2fs/ext2_err.c:107
msgid "TDB: Success"
@@ -6209,15 +6749,15 @@ msgstr "TDB: uszkodzona baza danych"
#: lib/ext2fs/ext2_err.c:109
msgid "TDB: IO Error"
-msgstr "TDB: b³±d we/wy"
+msgstr "TDB: błąd we/wy"
#: lib/ext2fs/ext2_err.c:110
msgid "TDB: Locking error"
-msgstr "TDB: b³±d blokowania"
+msgstr "TDB: błąd blokowania"
#: lib/ext2fs/ext2_err.c:111
msgid "TDB: Out of memory"
-msgstr "TDB: brak pamiêci"
+msgstr "TDB: brak pamięci"
#: lib/ext2fs/ext2_err.c:112
msgid "TDB: Record exists"
@@ -6229,7 +6769,7 @@ msgstr "TDB: istnieje blokada na innych kluczach"
#: lib/ext2fs/ext2_err.c:114
msgid "TDB: Invalid parameter"
-msgstr "TDB: b³êdny parametr"
+msgstr "TDB: błędny parametr"
#: lib/ext2fs/ext2_err.c:115
msgid "TDB: Record does not exist"
@@ -6241,59 +6781,60 @@ msgstr "TDB: zapis niedozwolony"
#: lib/ext2fs/ext2_err.c:117
msgid "Ext2fs directory block list is empty"
-msgstr "Lista bloków katalogu ext2fs jest pusta"
+msgstr "Lista bloków katalogu ext2fs jest pusta"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr "Próba zmodyfikowania mapy bloków poprzez iterator bloków tylko do odczytu"
+msgstr ""
+"Próba zmodyfikowania mapy bloków poprzez iterator bloków tylko do odczytu"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
-msgstr "B³êdna liczba magiczna ¶cie¿ki zachowanych ekstentów ext4"
+msgstr "Błędna liczba magiczna ścieżki zachowanych ekstentów ext4"
#: lib/ext2fs/ext2_err.c:120
msgid "Wrong magic number for 64-bit generic bitmap"
-msgstr "B³êdna liczba magiczna dla ogólnej bitmapy 64-bitowej"
+msgstr "Błędna liczba magiczna dla ogólnej bitmapy 64-bitowej"
#: lib/ext2fs/ext2_err.c:121
msgid "Wrong magic number for 64-bit block bitmap"
-msgstr "B³êdna liczba magiczna dla 64-bitowej bitmapy bloków"
+msgstr "Błędna liczba magiczna dla 64-bitowej bitmapy bloków"
#: lib/ext2fs/ext2_err.c:122
msgid "Wrong magic number for 64-bit inode bitmap"
-msgstr "B³êdna liczba magiczna dla 64-bitowej bitmapy i-wêz³ów"
+msgstr "Błędna liczba magiczna dla 64-bitowej bitmapy i-węzłów"
#: lib/ext2fs/ext2_err.c:123
msgid "Wrong magic number --- RESERVED_13"
-msgstr "B³êdna liczba magiczna --- RESERVED_13"
+msgstr "Błędna liczba magiczna --- RESERVED_13"
#: lib/ext2fs/ext2_err.c:124
msgid "Wrong magic number --- RESERVED_14"
-msgstr "B³êdna liczba magiczna --- RESERVED_14"
+msgstr "Błędna liczba magiczna --- RESERVED_14"
#: lib/ext2fs/ext2_err.c:125
msgid "Wrong magic number --- RESERVED_15"
-msgstr "B³êdna liczba magiczna --- RESERVED_15"
+msgstr "Błędna liczba magiczna --- RESERVED_15"
#: lib/ext2fs/ext2_err.c:126
msgid "Wrong magic number --- RESERVED_16"
-msgstr "B³êdna liczba magiczna --- RESERVED_16"
+msgstr "Błędna liczba magiczna --- RESERVED_16"
#: lib/ext2fs/ext2_err.c:127
msgid "Wrong magic number --- RESERVED_17"
-msgstr "B³êdna liczba magiczna --- RESERVED_17"
+msgstr "Błędna liczba magiczna --- RESERVED_17"
#: lib/ext2fs/ext2_err.c:128
msgid "Wrong magic number --- RESERVED_18"
-msgstr "B³êdna liczba magiczna --- RESERVED_18"
+msgstr "Błędna liczba magiczna --- RESERVED_18"
#: lib/ext2fs/ext2_err.c:129
msgid "Wrong magic number --- RESERVED_19"
-msgstr "B³êdna liczba magiczna --- RESERVED_19"
+msgstr "Błędna liczba magiczna --- RESERVED_19"
#: lib/ext2fs/ext2_err.c:130
msgid "Corrupt extent header"
-msgstr "Uszkodzony nag³ówek ekstentu"
+msgstr "Uszkodzony nagłówek ekstentu"
#: lib/ext2fs/ext2_err.c:131
msgid "Corrupt extent index"
@@ -6305,15 +6846,15 @@ msgstr "Uszkodzony ekstent"
#: lib/ext2fs/ext2_err.c:133
msgid "No free space in extent map"
-msgstr "Brak wolnego miejsca w mapie ekstentów"
+msgstr "Brak wolnego miejsca w mapie ekstentów"
#: lib/ext2fs/ext2_err.c:134
msgid "Inode does not use extents"
-msgstr "I-wêze³ nie wykorzystuje ekstentów"
+msgstr "I-węzeł nie wykorzystuje ekstentów"
#: lib/ext2fs/ext2_err.c:135
msgid "No 'next' extent"
-msgstr "Brak ekstentu nastêpnego"
+msgstr "Brak ekstentu następnego"
#: lib/ext2fs/ext2_err.c:136
msgid "No 'previous' extent"
@@ -6321,27 +6862,27 @@ msgstr "Brak ekstentu poprzedniego"
#: lib/ext2fs/ext2_err.c:137
msgid "No 'up' extent"
-msgstr "Brak ekstentu 'w górê'"
+msgstr "Brak ekstentu 'w górę'"
#: lib/ext2fs/ext2_err.c:138
msgid "No 'down' extent"
-msgstr "Brak ekstentu 'w dó³'"
+msgstr "Brak ekstentu 'w dół'"
#: lib/ext2fs/ext2_err.c:139
msgid "No current node"
-msgstr "Brak bie¿±cego wêz³a"
+msgstr "Brak bieżącego węzła"
#: lib/ext2fs/ext2_err.c:140
msgid "Ext2fs operation not supported"
-msgstr "Operacja ext2fs nie obs³ugiwana"
+msgstr "Operacja ext2fs nie obsługiwana"
#: lib/ext2fs/ext2_err.c:141
msgid "No room to insert extent in node"
-msgstr "Brak miejsca na wstawienie ekstentu w wê¼le"
+msgstr "Brak miejsca na wstawienie ekstentu w węźle"
#: lib/ext2fs/ext2_err.c:142
msgid "Splitting would result in empty node"
-msgstr "Podzielenie utworzy³oby pusty wêze³"
+msgstr "Podzielenie utworzyłoby pusty węzeł"
#: lib/ext2fs/ext2_err.c:143
msgid "Extent not found"
@@ -6349,31 +6890,33 @@ msgstr "Nie znaleziono ekstentu"
#: lib/ext2fs/ext2_err.c:144
msgid "Operation not supported for inodes containing extents"
-msgstr "Operacja nie obs³ugiwana dla i-wêz³ów zawieraj±cych ekstenty"
+msgstr "Operacja nie obsługiwana dla i-węzłów zawierających ekstenty"
#: lib/ext2fs/ext2_err.c:145
msgid "Extent length is invalid"
-msgstr "B³êdna d³ugo¶æ ekstentu"
+msgstr "Błędna długość ekstentu"
#: lib/ext2fs/ext2_err.c:146
msgid "I/O Channel does not support 64-bit block numbers"
-msgstr "Kana³ we/wy nie obs³uguje 64-bitowych numerów bloków"
+msgstr "Kanał we/wy nie obsługuje 64-bitowych numerów bloków"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr "Nie mo¿na sprawdziæ, czy system plików jest zamontowany z powodu braku pliku mtab"
+msgstr ""
+"Nie można sprawdzić, czy system plików jest zamontowany z powodu braku pliku "
+"mtab"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "System plików zbyt du¿y, aby u¿yæ bitmap starego typu"
+msgstr "System plików zbyt duży, aby użyć bitmap starego typu"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
-msgstr "MMP: b³êdna liczba magiczna"
+msgstr "MMP: błędna liczba magiczna"
#: lib/ext2fs/ext2_err.c:150
msgid "MMP: device currently active"
-msgstr "MMP: urz±dzenie obecnie aktywne"
+msgstr "MMP: urzÄ…dzenie obecnie aktywne"
#: lib/ext2fs/ext2_err.c:151
msgid "MMP: fsck being run"
@@ -6381,7 +6924,7 @@ msgstr "MMP: fsck jest uruchomiony"
#: lib/ext2fs/ext2_err.c:152
msgid "MMP: block number beyond filesystem range"
-msgstr "MMP: numer bloku poza zakresem systemu plików"
+msgstr "MMP: numer bloku poza zakresem systemu plików"
#: lib/ext2fs/ext2_err.c:153
msgid "MMP: undergoing an unknown operation"
@@ -6389,11 +6932,55 @@ msgstr "MMP: wykonywana jest nieznana operacja"
#: lib/ext2fs/ext2_err.c:154
msgid "MMP: filesystem still in use"
-msgstr "MMP: system plików nadal w u¿yciu"
+msgstr "MMP: system plików nadal w użyciu"
#: lib/ext2fs/ext2_err.c:155
msgid "MMP: open with O_DIRECT failed"
-msgstr "MMP: otwarcie z flag± O_DIRECT nie powiod³o siê"
+msgstr "MMP: otwarcie z flagą O_DIRECT nie powiodło się"
+
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr "Niepoprawny rozmiar deskryptora grupy bloków"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr "Suma kontrolna i-węzła nie zgadza się z i-węzłem"
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr "Suma kontrolna bitmapy i-węzłów nie zgadza się z bitmapą"
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr "Suma kontrolna bloku ekstentów nie zgadza się z blokiem ekstentów"
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr "Blok katalogu nie ma miejsca na sumÄ™ kontrolnÄ…"
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr "Suma kontrolna bloku katalogu nie zgadza siÄ™ z blokiem katalogu"
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr "Sumar kontrolna bloku rozszerzonych atrybutów nie zgadza się z blokiem"
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr "Suma kontrolna superbloku nie zgadza siÄ™ z superblokiem"
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr "Nieznany algorytm sumy kontrolnej"
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr "Suma kontrolna bloku MMP nie zgadza siÄ™ z blokiem MMP"
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr "Plik ext2 już istnieje"
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
@@ -6401,7 +6988,7 @@ msgstr "Profil w wersji 0.0"
#: e2fsck/prof_err.c:12
msgid "Bad magic value in profile_node"
-msgstr "B³êdna warto¶æ magiczna w profile_node"
+msgstr "Błędna wartość magiczna w profile_node"
#: e2fsck/prof_err.c:13
msgid "Profile section not found"
@@ -6413,83 +7000,84 @@ msgstr "Nie znaleziono relacji profilu"
#: e2fsck/prof_err.c:15
msgid "Attempt to add a relation to node which is not a section"
-msgstr "Próba dodania relacji do wêz³a, który nie jest sekcj±"
+msgstr "Próba dodania relacji do węzła, który nie jest sekcją"
#: e2fsck/prof_err.c:16
msgid "A profile section header has a non-zero value"
-msgstr "Nag³ówek sekcji profilu ma niezerow± warto¶æ"
+msgstr "Nagłówek sekcji profilu ma niezerową wartość"
#: e2fsck/prof_err.c:17
msgid "Bad linked list in profile structures"
-msgstr "B³êdna lista w strukturach profilu"
+msgstr "Błędna lista w strukturach profilu"
#: e2fsck/prof_err.c:18
msgid "Bad group level in profile structures"
-msgstr "B³êdny poziom grupy w strukturach profilu"
+msgstr "Błędny poziom grupy w strukturach profilu"
#: e2fsck/prof_err.c:19
msgid "Bad parent pointer in profile structures"
-msgstr "B³êdny wska¼nik rodzica w strukturach profilu"
+msgstr "Błędny wskaźnik rodzica w strukturach profilu"
#: e2fsck/prof_err.c:20
msgid "Bad magic value in profile iterator"
-msgstr "B³êdna warto¶æ magiczna w iteratorze profilu"
+msgstr "Błędna wartość magiczna w iteratorze profilu"
#: e2fsck/prof_err.c:21
msgid "Can't set value on section node"
-msgstr "Nie mo¿na ustawiæ warto¶ci w wê¼le sekcji"
+msgstr "Nie można ustawić wartości w węźle sekcji"
#: e2fsck/prof_err.c:22
msgid "Invalid argument passed to profile library"
-msgstr "B³êdny argument przekazany do biblioteki profilu"
+msgstr "Błędny argument przekazany do biblioteki profilu"
#: e2fsck/prof_err.c:23
msgid "Attempt to modify read-only profile"
-msgstr "Próba zmodyfikowania profilu tylko do odczytu"
+msgstr "Próba zmodyfikowania profilu tylko do odczytu"
#: e2fsck/prof_err.c:24
msgid "Profile section header not at top level"
-msgstr "Nag³ówek sekcji profilu nie na najwy¿szym poziomie"
+msgstr "Nagłówek sekcji profilu nie na najwyższym poziomie"
#: e2fsck/prof_err.c:25
msgid "Syntax error in profile section header"
-msgstr "B³±d sk³adni w nag³ówku sekcji profilu"
+msgstr "Błąd składni w nagłówku sekcji profilu"
#: e2fsck/prof_err.c:26
msgid "Syntax error in profile relation"
-msgstr "B³±d sk³adni w relacji profilu"
+msgstr "Błąd składni w relacji profilu"
#: e2fsck/prof_err.c:27
msgid "Extra closing brace in profile"
-msgstr "Nadmiarowy nawias zamykaj±cy w profilu"
+msgstr "Nadmiarowy nawias zamykajÄ…cy w profilu"
#: e2fsck/prof_err.c:28
msgid "Missing open brace in profile"
-msgstr "Brakuj±cy nawias otwieraj±cy w profilu"
+msgstr "BrakujÄ…cy nawias otwierajÄ…cy w profilu"
#: e2fsck/prof_err.c:29
msgid "Bad magic value in profile_t"
-msgstr "B³êdna warto¶æ magiczna w profile_t"
+msgstr "Błędna wartość magiczna w profile_t"
#: e2fsck/prof_err.c:30
msgid "Bad magic value in profile_section_t"
-msgstr "B³êdna warto¶æ magiczna w profile_section_t"
+msgstr "Błędna wartość magiczna w profile_section_t"
#: e2fsck/prof_err.c:31
msgid "Iteration through all top level section not supported"
-msgstr "Iterowanie poprzez wszystkie sekcje najwy¿szego poziomu nie jest obs³ugiwane"
+msgstr ""
+"Iterowanie poprzez wszystkie sekcje najwyższego poziomu nie jest obsługiwane"
#: e2fsck/prof_err.c:32
msgid "Invalid profile_section object"
-msgstr "B³êdny obiekt profile_section"
+msgstr "Błędny obiekt profile_section"
#: e2fsck/prof_err.c:33
msgid "No more sections"
-msgstr "Nie ma wiêcej sekcji"
+msgstr "Nie ma więcej sekcji"
#: e2fsck/prof_err.c:34
msgid "Bad nameset passed to query routine"
-msgstr "B³êdny nameset przekazany do funkcji odpytuj±cej"
+msgstr "Błędny nameset przekazany do funkcji odpytującej"
#: e2fsck/prof_err.c:35
msgid "No profile file open"
@@ -6497,24 +7085,45 @@ msgstr "Brak otwartego pliku profilu"
#: e2fsck/prof_err.c:36
msgid "Bad magic value in profile_file_t"
-msgstr "B³êdna warto¶æ magiczna w profile_file_t"
+msgstr "Błędna wartość magiczna w profile_file_t"
#: e2fsck/prof_err.c:37
msgid "Couldn't open profile file"
-msgstr "Nie uda³o siê otworzyæ pliku profilu"
+msgstr "Nie udało się otworzyć pliku profilu"
#: e2fsck/prof_err.c:38
msgid "Section already exists"
-msgstr "Sekcja ju¿ istnieje"
+msgstr "Sekcja już istnieje"
#: e2fsck/prof_err.c:39
msgid "Invalid boolean value"
-msgstr "B³êdna warto¶æ logiczna"
+msgstr "Błędna wartość logiczna"
#: e2fsck/prof_err.c:40
msgid "Invalid integer value"
-msgstr "B³êdna warto¶æ ca³kowita"
+msgstr "Błędna wartość całkowita"
#: e2fsck/prof_err.c:41
msgid "Bad magic value in profile_file_data_t"
-msgstr "B³êdna warto¶æ magiczna w profile_file_data_t"
+msgstr "Błędna wartość magiczna w profile_file_data_t"
+
+#~ msgid ""
+#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/"
+#~ "s \n"
+#~ msgstr ""
+#~ "\b\b\b\b\b\b\b\bSkopiowano bloków %llu / %llu (%llu%%) w %s przy %.2f MB/"
+#~ "s \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Warning: the quota feature is still under development\n"
+#~ "See https://ext4.wiki.kernel.org/index.php/Quota for more information\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Uwaga: własność quota jest nadal w trakcie rozwoju\n"
+#~ "Więcej informacji pod https://ext4.wiki.kernel.org/index.php/Quota\n"
+#~ "\n"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Nie można wykonać stat na %s --- %s\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index e88603f7..478c8783 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 17b03bad..87d079ee 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,9 +1,9 @@
# Swedish messages for e2fsprogs.
-# Copyright © 2003, 2005, 2006, 2008, 2009, 2010, 2011 Theodore Tso (msgids)
+# Copyright © 2003, 2005, 2006, 2008, 2009, 2010, 2011, 2012, 2014 Theodore Tso (msgids)
# This file is distributed under the same license as the e2fsprogs package.
-# Göran Uddeborg <goeran@uddeborg.se>, 2003, 2005, 2006, 2008, 2009, 2010, 2011.
+# Göran Uddeborg <goeran@uddeborg.se>, 2003, 2005, 2006, 2008, 2009, 2010, 2011, 2012, 2014.
#
-# $Revision: 1.67 $
+# $Revision: 1.76 $
#
#. 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,
@@ -65,67 +65,67 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42\n"
+"Project-Id-Version: e2fsprogs 1.42.9\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-11-29 16:03-0500\n"
-"PO-Revision-Date: 2011-12-19 15:52+0100\n"
-"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2014-01-06 19:50+0100\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
-msgstr "Dåligt block %u utanför giltigt intervall; ignoreras.\n"
+msgstr "Dåligt block %u utanför giltigt intervall; ignoreras.\n"
#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
-msgstr "vid rimlighetskontroll av inoden för dåliga block"
+msgstr "vid rimlighetskontroll av inoden för dåliga block"
#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
-msgstr "vid läsning av inoden för dåliga block"
+msgstr "vid läsning av inoden för dåliga block"
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1239 e2fsck/unix.c:1324 misc/badblocks.c:1215
-#: misc/badblocks.c:1223 misc/badblocks.c:1237 misc/badblocks.c:1249
-#: misc/dumpe2fs.c:572 misc/e2image.c:1170 misc/e2image.c:1288
-#: misc/e2image.c:1301 misc/mke2fs.c:193 misc/tune2fs.c:1907 resize/main.c:308
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
-msgstr "vid försök att öppna %s"
+msgstr "vid försök att öppna %s"
#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
-msgstr "vid försök att använda popen \"%s\""
+msgstr "vid försök att använda popen \"%s\""
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
-msgstr "vid läsning i listan över dåliga block från fil"
+msgstr "vid läsning i listan över dåliga block från fil"
#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
-msgstr "vid uppdatering av inoden för dåliga block"
+msgstr "vid uppdatering av inoden för dåliga block"
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr "Varning: otillåtet block %u hittat i inoden får dåliga block. Tömt.\n"
+msgstr "Varning: otillåtet block %u hittat i inoden får dåliga block. Tömt.\n"
#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
-msgstr "Fel vid läsning av block %lu (%s) vid %s. "
+msgstr "Fel vid läsning av block %lu (%s) vid %s. "
#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
-msgstr "Fel vid läsning av block %lu (%s). "
+msgstr "Fel vid läsning av block %lu (%s). "
#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
@@ -166,7 +166,7 @@ msgstr "%s: %s filnamn nblock blockstorlek\n"
#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
-msgstr "Otillåtet antal block!\n"
+msgstr "Otillåtet antal block!\n"
#: e2fsck/extend.c:50
#, c-format
@@ -176,89 +176,94 @@ msgstr "Kunde inte allokera blockbuffert (storlek=%d)\n"
#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
-msgstr "Användning: %s disk\n"
+msgstr "Användning: %s disk\n"
#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
-msgstr "BLKFLSBUF-ioctl stöds inte! Kan inte tömma buffertar.\n"
+msgstr "BLKFLSBUF-ioctl stöds inte! Kan inte tömma buffertar.\n"
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
-msgstr "Användning: %s [-F] [-I inodbuffertblock] enhet\n"
+msgstr "Användning: %s [-F] [-I inodbuffertblock] enhet\n"
-#: e2fsck/iscan.c:84 e2fsck/unix.c:902
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
-msgstr "vid öppning av %s för utskrivning"
+msgstr "vid öppning av %s för utskrivning"
-#: e2fsck/iscan.c:89 e2fsck/unix.c:908 resize/main.c:284
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
-msgstr "vid försök att skriva ut %s"
+msgstr "vid försök att skriva ut %s"
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1065
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr "vid försök att öppna â€%sâ€"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
-msgstr "vid öppning av inodsökning"
+msgstr "vid öppning av inodsökning"
-#: e2fsck/iscan.c:130 misc/e2image.c:1083
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
-msgstr "när nästa inod hämtades"
+msgstr "när nästa inod hämtades"
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
-msgstr "%u inoder genomsökta.\n"
+msgstr "%u inoder genomsökta.\n"
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
-msgstr "läser journalsuperblock\n"
+msgstr "läser journalsuperblock\n"
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: inget giltigt journalsuperblock hittades\n"
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
-msgstr "%s: journalen för kort\n"
+msgstr "%s: journalen för kort\n"
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
-msgstr "%s: återhämtar journalen\n"
+msgstr "%s: återhämtar journalen\n"
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
-msgstr "%s: återhämtar inte journalen i skrivskyddat läge\n"
+msgstr "%s: återhämtar inte journalen i skrivskyddat läge\n"
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
-msgstr "vid försök att återöppna %s"
-
-# Första bokstaven i detta och följande meddelanden är ett index som
-# används som en förkortning i andra meddelanden, och inte skrivs ut.
-# Uppslagningen sker på det ursprungliga meddelandet, så det spelar
-# egentligen ingen roll vilket tecken som står först i den översatta
-# strängen. Det viktiga är att det står någon platshållare där, första
-# tecknet skrivs inte ut, vare sig i orginalsträngen eller den översatta
-# strängen. Jag tyckte det var bäst att behålla orginaltecknet.
+msgstr "vid försök att återöppna %s"
+
+# Första bokstaven i detta och följande meddelanden är ett index som
+# används som en förkortning i andra meddelanden, och inte skrivs ut.
+# Uppslagningen sker på det ursprungliga meddelandet, så det spelar
+# egentligen ingen roll vilket tecken som står först i den översatta
+# strängen. Det viktiga är att det står någon platshållare där, första
+# tecknet skrivs inte ut, vare sig i orginalsträngen eller den översatta
+# strängen. Jag tyckte det var bäst att behålla orginaltecknet.
#
-# Jag har felrapporterat hela idén. Det innebär ju att man bygger ihop
-# meningar från delar, och det brukar ju gå sönder i översättningar med
-# olika genus och dylikt. Men författaren har en del bra argument om
-# att förkortningssystemet är en fördel när man skall få plats med så
-# mycket som möjligt på en räddningsdiskett. I det fallet är ändå
-# knappast översättningar med. Så den bästa lösningen är nog att låta
-# systemet som sådant finnas kvar, men inte använda det alls i översatta
+# Jag har felrapporterat hela idén. Det innebär ju att man bygger ihop
+# meningar från delar, och det brukar ju gå sönder i översättningar med
+# olika genus och dylikt. Men författaren har en del bra argument om
+# att förkortningssystemet är en fördel när man skall få plats med så
+# mycket som möjligt på en räddningsdiskett. I det fallet är ändå
+# knappast översättningar med. Så den bästa lösningen är nog att låta
+# systemet som sådant finnas kvar, men inte använda det alls i översatta
# meddelanden.
#: e2fsck/message.c:113
msgid "aextended attribute"
-msgstr "autökat attribut"
+msgstr "autökat attribut"
#: e2fsck/message.c:114
msgid "Aerror allocating"
@@ -278,7 +283,7 @@ msgstr "ckomprimera"
#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
-msgstr "Ckonflikt med något annat fs @b"
+msgstr "Ckonflikt med något annat fs @b"
#: e2fsck/message.c:119
msgid "iinode"
@@ -286,7 +291,7 @@ msgstr "iinod"
#: e2fsck/message.c:120
msgid "Iillegal"
-msgstr "Iotillåten"
+msgstr "Iotillåten"
#: e2fsck/message.c:121
msgid "jjournal"
@@ -314,7 +319,7 @@ msgstr "ffilsystem"
#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
-msgstr "Fför inod %i (%Q) är"
+msgstr "Fför inod %i (%Q) är"
#: e2fsck/message.c:128
msgid "ggroup"
@@ -330,11 +335,11 @@ msgstr "llost+found"
#: e2fsck/message.c:131
msgid "Lis a link"
-msgstr "Lär en länk"
+msgstr "Lär en länk"
#: e2fsck/message.c:132
msgid "mmultiply-claimed"
-msgstr "mflerfaldigt ianspråkstagna"
+msgstr "mflerfaldigt ianspråkstagna"
#: e2fsck/message.c:133
msgid "ninvalid"
@@ -342,7 +347,7 @@ msgstr "nogiltig"
#: e2fsck/message.c:134
msgid "oorphaned"
-msgstr "oföräldralös"
+msgstr "oföräldralös"
#: e2fsck/message.c:135
msgid "pproblem in"
@@ -366,7 +371,7 @@ msgstr "Ssuperblock"
#: e2fsck/message.c:140
msgid "uunattached"
-msgstr "ulös"
+msgstr "ulös"
#: e2fsck/message.c:141
msgid "vdevice"
@@ -374,11 +379,11 @@ msgstr "venhet"
#: e2fsck/message.c:142
msgid "xextent"
-msgstr "xutsträckning"
+msgstr "xutsträckning"
#: e2fsck/message.c:143
msgid "zzero-length"
-msgstr "znollängds"
+msgstr "znollängds"
#: e2fsck/message.c:154
msgid "<The NULL inode>"
@@ -386,15 +391,15 @@ msgstr "<Inod noll>"
#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
-msgstr "<Inoden för dåliga block>"
+msgstr "<Inoden för dåliga block>"
#: e2fsck/message.c:157
msgid "<The user quota inode>"
-msgstr "<Inoden för användarkvoter>"
+msgstr "<Inoden för användarkvoter>"
#: e2fsck/message.c:158
msgid "<The group quota inode>"
-msgstr "<Inoden för gruppkvoter>"
+msgstr "<Inoden för gruppkvoter>"
#: e2fsck/message.c:159
msgid "<The boot loader inode>"
@@ -402,7 +407,7 @@ msgstr "<Uppstartsprograminoden>"
#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
-msgstr "<Inoden för återhämtning av borttagna kataloger>"
+msgstr "<Inoden för återhämtning av borttagna kataloger>"
#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
@@ -420,188 +425,181 @@ msgstr "<Reserverad inod 9>"
msgid "<Reserved inode 10>"
msgstr "<Reserverad inod 10>"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "normal fil"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "katalog"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "teckenenhet"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "blockenhet"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
-msgstr "namngivet rör"
+msgstr "namngivet rör"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
-msgstr "symbolisk länk"
+msgstr "symbolisk länk"
-#: e2fsck/message.c:344 misc/uuidd.c:161
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "uttag (socket)"
-#: e2fsck/message.c:346
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
-msgstr "okänd filtyp med typ 0%o"
+msgstr "okänd filtyp med typ 0%o"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr "indirekt block"
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr "dubbelt indirekt block"
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr "trippelt indirekt block"
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
-msgstr "översättningsblock"
+msgstr "översättningsblock"
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "block nr."
#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
-msgstr "karta över flerfaldigt i anspråkstagna inoder"
+msgstr "karta över flerfaldigt i anspråkstagna inoder"
-#: e2fsck/pass1b.c:608 e2fsck/pass1b.c:727
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
-msgstr "internt fel: kan inte hitta dup_blk för %llu\n"
+msgstr "internt fel: kan inte hitta dup_blk för %llu\n"
-#: e2fsck/pass1b.c:818
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
-msgstr "återvände från clone_file_block"
+msgstr "återvände från clone_file_block"
-#: e2fsck/pass1b.c:840
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
-msgstr "internt fel: det gick inte att slå upp EA-blockpost för %llu"
+msgstr "internt fel: det gick inte att slå upp EA-blockpost för %llu"
-#: e2fsck/pass1b.c:852
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
-msgstr "internt fel: det gick inte att slå upp EA-inodpost för %u"
+msgstr "internt fel: det gick inte att slå upp EA-inodpost för %u"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:777
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
-msgstr "läser katalogblock"
+msgstr "läser katalogblock"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
-msgstr "karta över använda inoder"
+msgstr "karta över använda inoder"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "kataloginodskarta"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
-msgstr "inodskarta över reguljära filer"
+msgstr "inodskarta över reguljära filer"
-#: e2fsck/pass1.c:622
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
-msgstr "karta över använda block"
+msgstr "karta över använda block"
-#: e2fsck/pass1.c:684
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
-msgstr "öppnar inodsökning"
+msgstr "öppnar inodsökning"
-#: e2fsck/pass1.c:718
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
-msgstr "hämtar nästa inod från sökning"
+msgstr "hämtar nästa inod från sökning"
-#: e2fsck/pass1.c:1228
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Pass 1"
-#: e2fsck/pass1.c:1285
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
-msgstr "läser indirektblock för inod %u"
+msgstr "läser indirektblock för inod %u"
-#: e2fsck/pass1.c:1335
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
-msgstr "karta över dåliga inoder"
+msgstr "karta över dåliga inoder"
-#: e2fsck/pass1.c:1357
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
-msgstr "inod i karta över dåliga block"
+msgstr "inod i karta över dåliga block"
-#: e2fsck/pass1.c:1377
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "imagic inodskarta"
-#: e2fsck/pass1.c:1404
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
-msgstr "karta över flerfaldigt i anspråkstagna block"
+msgstr "karta över flerfaldigt i anspråkstagna block"
-#: e2fsck/pass1.c:1504
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
-msgstr "karta över block för utökade attribut"
+msgstr "karta över block för utökade attribut"
-#: e2fsck/pass1.c:2252
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
-msgstr "%6lu(%c): förväntade %6lu fick fys %6lu (blkant %lld)\n"
+msgstr "%6lu(%c): förväntade %6lu fick fys %6lu (blkant %lld)\n"
-#: e2fsck/pass1.c:2613
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "blockbitkarta"
-#: e2fsck/pass1.c:2619
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "inodbitkarta"
-#: e2fsck/pass1.c:2625
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "inodstabell"
-#: e2fsck/pass2.c:278
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Pass 2"
-#: e2fsck/pass2.c:800
+#: e2fsck/pass2.c:805
msgid "Can not continue."
-msgstr "Kan inte fortsätta."
+msgstr "Kan inte fortsätta."
#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr "inod klar bitkarta"
-#: e2fsck/pass3.c:85
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Max minne"
-#: e2fsck/pass3.c:135
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Pass 3"
-#: e2fsck/pass3.c:321
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
-msgstr "bitkarta för upptäckt av inodsslingor"
+msgstr "bitkarta för upptäckt av inodsslingor"
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Pass 4"
@@ -619,7 +617,7 @@ msgstr "Fixa"
#: e2fsck/problem.c:53
msgid "Clear"
-msgstr "Töm"
+msgstr "Töm"
#: e2fsck/problem.c:54
msgid "Relocate"
@@ -643,7 +641,7 @@ msgstr "Skapa"
#: e2fsck/problem.c:59
msgid "Salvage"
-msgstr "Rädda"
+msgstr "Rädda"
#: e2fsck/problem.c:60
msgid "Truncate"
@@ -651,7 +649,7 @@ msgstr "Kapa"
#: e2fsck/problem.c:61
msgid "Clear inode"
-msgstr "Töm inod"
+msgstr "Töm inod"
#: e2fsck/problem.c:62
msgid "Abort"
@@ -663,11 +661,11 @@ msgstr "Dela"
#: e2fsck/problem.c:64
msgid "Continue"
-msgstr "Fortsätt"
+msgstr "Fortsätt"
#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
-msgstr "Klona flerfaldigt ianspråkstagna block"
+msgstr "Klona flerfaldigt ianspråkstagna block"
#: e2fsck/problem.c:66
msgid "Delete file"
@@ -679,15 +677,15 @@ msgstr "Undertryck meddelanden"
#: e2fsck/problem.c:68
msgid "Unlink"
-msgstr "Avlänka"
+msgstr "Avlänka"
#: e2fsck/problem.c:69
msgid "Clear HTree index"
-msgstr "Töm HTree-index"
+msgstr "Töm HTree-index"
#: e2fsck/problem.c:70
msgid "Recreate"
-msgstr "Återskapa"
+msgstr "Ã…terskapa"
#: e2fsck/problem.c:79
msgid "(NONE)"
@@ -699,7 +697,7 @@ msgstr "FIXAT"
#: e2fsck/problem.c:81
msgid "CLEARED"
-msgstr "TÖMD"
+msgstr "TÖMD"
#: e2fsck/problem.c:82
msgid "RELOCATED"
@@ -715,7 +713,7 @@ msgstr "EXPANDERAD"
#: e2fsck/problem.c:85
msgid "RECONNECTED"
-msgstr "ÅTERKOPPLAD"
+msgstr "Ã…TERKOPPLAD"
#: e2fsck/problem.c:86
msgid "CREATED"
@@ -723,7 +721,7 @@ msgstr "SKAPAD"
#: e2fsck/problem.c:87
msgid "SALVAGED"
-msgstr "RÄDDAD"
+msgstr "RÄDDAD"
#: e2fsck/problem.c:88
msgid "TRUNCATED"
@@ -731,7 +729,7 @@ msgstr "KAPAT"
#: e2fsck/problem.c:89
msgid "INODE CLEARED"
-msgstr "INOD TÖMD"
+msgstr "INOD TÖMD"
#: e2fsck/problem.c:90
msgid "ABORTED"
@@ -743,11 +741,11 @@ msgstr "DELAD"
#: e2fsck/problem.c:92
msgid "CONTINUING"
-msgstr "FORTSÄTTER"
+msgstr "FORTSÄTTER"
#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
-msgstr "FLERFALDIG IANSPRÅKSTAGNA BLOCK KLONADE"
+msgstr "FLERFALDIG IANSPRÃ…KSTAGNA BLOCK KLONADE"
#: e2fsck/problem.c:94
msgid "FILE DELETED"
@@ -759,25 +757,25 @@ msgstr "UNDERTRYCKT"
#: e2fsck/problem.c:96
msgid "UNLINKED"
-msgstr "AVLÄNKAD"
+msgstr "AVLÄNKAD"
#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
-msgstr "HTREE-INDEX TÖMT"
+msgstr "HTREE-INDEX TÖMT"
#: e2fsck/problem.c:98
msgid "WILL RECREATE"
-msgstr "KOMMER ÅTERSKAPA"
+msgstr "KOMMER Ã…TERSKAPA"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
-msgstr "blockbitkarta för grupp %g är inte i gruppen. (block %b)\n"
+msgstr "blockbitkarta för grupp %g är inte i gruppen. (block %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
-msgstr "inodsbitkarta för grupp %g är inte i gruppen. (block %b)\n"
+msgstr "inodsbitkarta för grupp %g är inte i gruppen. (block %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
@@ -786,32 +784,36 @@ msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
msgstr ""
-"inodtabell för grupp %g är inte i gruppen. (block %b)\n"
-"VARNING: ALLVARLIG DATAFÖRLUST ÄR MÖJLIG.\n"
+"inodtabell för grupp %g är inte i gruppen. (block %b)\n"
+"VARNING: ALLVARLIG DATAFÖRLUST ÄR MÖJLIG.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
#: e2fsck/problem.c:122
-#, c-format
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
-"Superblocket kunde inte läsas eller beskriver inte ett korrekt\n"
-"ext2-filsystem. Om enheten är giltig och den verkligen innehåller ett\n"
-"ext2-filsystem (och inte växlingsutrymme eller ufs eller något annat)\n"
-"är superblocket trasigt, och du kan försöka köra med ett alternativt\n"
+"Superblocket kunde inte läsas eller beskriver inte ett korrekt\n"
+"ext2-filsystem. Om enheten är giltig och den verkligen innehåller ett\n"
+"ext2-filsystem (och inte växlingsutrymme eller ufs eller något annat)\n"
+"är superblocket trasigt, och du kan försöka köra med ett alternativt\n"
"superblock:\n"
" e2fsck -b %S <enhet>\n"
"\n"
@@ -819,48 +821,48 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
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 ""
-"Filsystemsstorleken (enligt superblocket) är %b block\n"
-"Den fysiska storleken på enheten är %c block\n"
-"Superblocket eller partitionstabellen är förmodligen trasig!\n"
+"Filsystemsstorleken (enligt superblocket) är %b block\n"
+"Den fysiska storleken på enheten är %c block\n"
+"Superblocket eller partitionstabellen är förmodligen trasig!\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:138
+#: e2fsck/problem.c:140
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 ""
"Superblockets blockstorlek = %b, fragmentstorlek = %c.\n"
-"Denna version av e2fsck stödjer inte andra fragmentstorlekar än\n"
+"Denna version av e2fsck stödjer inte andra fragmentstorlekar än\n"
"blockstorleken.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "Superblockets block per grupp = %b, skulle ha varit %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
-msgstr "Superblockets första datablock = %b, skulle ha varit %c\n"
+msgstr "Superblockets första datablock = %b, skulle ha varit %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
msgstr "filsystemet hade ingen UUID; genererar en.\n"
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -870,160 +872,165 @@ msgid ""
"the backup block group descriptors may be OK.\n"
"\n"
msgstr ""
-"Observera: om det är flera inod- eller blockbitkarteblock eller en del\n"
-"av inodstabellen som måste flyttas, kanske du vill köra e2fsck med\n"
-"flaggan \"-b %S\" först. Problemet kan ligga bara i den primära\n"
+"Observera: om det är flera inod- eller blockbitkarteblock eller en del\n"
+"av inodstabellen som måste flyttas, kanske du vill köra e2fsck med\n"
+"flaggan \"-b %S\" först. Problemet kan ligga bara i den primära\n"
"blockgruppbeskrivaren, och reservblockgruppbeskrivaren kan vara OK.\n"
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:169
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "Skada hittad i superblock. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:174
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
-msgstr "Fel vid bestämning av den fysiska enheten: %m\n"
+msgstr "Fel vid bestämning av den fysiska enheten: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
-msgstr "inodsantal i superblock är %i, skall vara %j.\n"
+msgstr "inodsantal i superblock är %i, skall vara %j.\n"
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
-msgstr "Hurd stödjer inte funktionen filtyp.\n"
+msgstr "Hurd stödjer inte funktionen filtyp.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "Superblock har en ogiltig journal (inod %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
-msgstr "Extern journal har flera filsystemsanvändare (stödjs ej).\n"
+msgstr "Extern journal har flera filsystemsanvändare (stödjs ej).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Kan inte hitta extern journal\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
-msgstr "Extern journal har dåligt superblock\n"
+msgstr "Extern journal har dåligt superblock\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
-msgstr "Extern journal stödjer inte detta filsystem\n"
+msgstr "Extern journal stödjer inte detta filsystem\n"
#. @-expanded: filesystem 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:213
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-"Filsystemsjournalsuperblock är av okänd typ %N (ej stött).\n"
-"Det är troligt att ditt exemplar av e2fsck är gammalt och/eller inte\n"
-"stödjer detta journalformat.\n"
-"Det är också möjligt att journalsuperblocket är trasigt.\n"
+"Filsystemsjournalsuperblock är av okänd typ %N (ej stött).\n"
+"Det är troligt att ditt exemplar av e2fsck är gammalt och/eller inte\n"
+"stödjer detta journalformat.\n"
+"Det är också möjligt att journalsuperblocket är trasigt.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
-msgstr "Journalsuperblock är trasigt.\n"
+msgstr "Journalsuperblock är trasigt.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr "Superblocksflagga har_journal är nollställd, men en journal %s finns.\n"
+msgstr ""
+"Superblocksflagga har_journal är nollställd, men en journal %s finns.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
-msgstr "Superblockflagga behöver_rättas är satt, men ingen journal finns.\n"
+msgstr "Superblockflagga behöver_rättas är satt, men ingen journal finns.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr "Superblocksflagga behöver_rättas är nollställd, men journal har data.\n"
+msgstr ""
+"Superblocksflagga behöver_rättas är nollställd, men journal har data.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
msgid "Clear @j"
-msgstr "Töm journal"
+msgstr "Töm journal"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:246 e2fsck/problem.c:690
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr "filsystemet har funktionsflaggor satta, men är ett revision 0-filsystem. "
+msgstr ""
+"filsystemet har funktionsflaggor satta, men är ett revision 0-filsystem. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
-msgstr "%s föräldralös inod %i (uid=%Iu, gid=%Ig, rättighet=%Im, storlek=%Is)\n"
+msgstr ""
+"%s föräldralös inod %i (uid=%Iu, gid=%Ig, rättighet=%Im, storlek=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
-msgstr "Ogiltigt %B (%b) hittat i föräldralös inod %i.\n"
+msgstr "Ogiltigt %B (%b) hittat i föräldralös inod %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
-msgstr "Redan tömt %B (%b) hittat i föräldralös inod %i.\n"
+msgstr "Redan tömt %B (%b) hittat i föräldralös inod %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
-msgstr "Ogiltig föräldralös inod %i i superblock.\n"
+msgstr "Ogiltig föräldralös inod %i i superblock.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
-msgstr "Ogiltig inod %i i föräldralös inodlista.\n"
+msgstr "Ogiltig inod %i i föräldralös inodlista.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "Journalsuperblock har okänd skrivskyddad funktionsflagga satt.\n"
+msgstr "Journalsuperblock har okänd skrivskyddad funktionsflagga satt.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "Journalsuperblock har okänd inkompatibel funktionsflagga satt.\n"
+msgstr "Journalsuperblock har okänd inkompatibel funktionsflagga satt.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:286
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
-msgstr "Journalversion stöds inte av denna e2fsck.\n"
+msgstr "Journalversion stöds inte av denna e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
"\n"
msgstr ""
-"Flyttar journal från /%s till dold inod.\n"
+"Flyttar journal från /%s till dold inod.\n"
"\n"
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1035,306 +1042,321 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:301
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
"\n"
msgstr ""
-"Hittade ogiltiga V2-journalsuperblockfält (från V1-journal).\n"
-"Tömmer fält efter V1-journalsuperblock ...\n"
+"Hittade ogiltiga V2-journalsuperblockfält (från V1-journal).\n"
+"Tömmer fält efter V1-journalsuperblock ...\n"
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
-msgstr "Kör journal ändå"
+msgstr "Kör journal ändå"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
-msgstr "Rättningsflagga inte satt i reservsuperblock, så kör journal ändå.\n"
+msgstr "Rättningsflagga inte satt i reservsuperblock, så kör journal ändå.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
msgstr ""
-"Säkerhetskopierar blockinformation för journalinod.\n"
+"Säkerhetskopierar blockinformation för journalinod.\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:322
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
msgstr ""
"Filsystemet har inte resize_inode aktiverat, men r_reserved_gdt_blocks\n"
-"är %N; skulle varit noll. "
+"är %N; skulle varit noll. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr "Resize_inode är inte aktiverat, men storleksändringsinoden är inte noll. "
+msgstr ""
+"Resize_inode är inte aktiverat, men storleksändringsinoden är inte noll. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
-msgstr "Storleksändringsinod är inte giltig. "
+msgstr "Storleksändringsinod är inte giltig. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
msgstr ""
"Superblockets senaste monteringstid (%t,\n"
-"\tnu = %T) är i framtiden.\n"
+"\tnu = %T) är i framtiden.\n"
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
msgstr ""
"Superblockets senaste skrivningstid (%t,\n"
-"\tnu = %T) är i framtiden.\n"
+"\tnu = %T) är i framtiden.\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
-msgstr "Superblocktips för externt superblock borde vara %X."
+msgstr "Superblocktips för externt superblock borde vara %X."
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
msgstr ""
-"Lägger till dirhash-tips till filsystem.\n"
+"Lägger till dirhash-tips till filsystem.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:357
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
-msgstr "kontrollsumma för gruppbeskrivare %g är ogiltig. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
+msgstr "kontrollsumma för gruppbeskrivare %g är %04x, skall vara %04y. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr "gruppbeskrivare %g är markerad oinitierad utan att egenskapen är satt.\n"
-
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:367
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr "blockbitkarta för grupp %g oinitierad men inodsbitkarta används.\n"
+msgstr ""
+"gruppbeskrivare %g är markerad oinitierad utan att egenskapen är satt.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr "gruppbeskrivare %g har ogiltigt antal oanvända inoder %b. "
+msgstr "gruppbeskrivare %g har ogiltigt antal oanvända inoder %b. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr "Sista gruppblockbitkarta oinitierad. "
-#: e2fsck/problem.c:382
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
-msgstr "Journaltransaktion %i var trasig, återuppspelningen avbröts.\n"
+msgstr "Journaltransaktion %i var trasig, återuppspelningen avbröts.\n"
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
-msgstr "Flaggan test_fs är satt (och ext4 är tillgänligt). "
+msgstr "Flaggan test_fs är satt (och ext4 är tillgänligt). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:391
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
"Superblockets senaste monteringstid ligger i framtiden.\n"
-"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
+"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:397
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
"Superblockets skrevs senast i framtiden.\n"
-"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
+"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr "Kontrollsumma för en eller flera blockgruppbeskrivare är ogiltig. "
+msgstr "Kontrollsumma för en eller flera blockgruppbeskrivare är ogiltig. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:405
msgid "Setting free @is count to %j (was %i)\n"
-msgstr "Sätter antalet fria inoder %j (var %i)\n"
+msgstr "Sätter antalet fria inoder %j (var %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:410
msgid "Setting free @bs count to %c (was %b)\n"
-msgstr "Sätter antalet fria block till %c (var %b)\n"
+msgstr "Sätter antalet fria block till %c (var %b)\n"
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-#: e2fsck/problem.c:418
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
msgstr ""
-"Gör kvotinoder dolda.\n"
+"Gör kvotinod %i (%Q) dold.\n"
"\n"
#. @-expanded: superblock has invalid MMP block.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:420
msgid "@S has invalid MMP block. "
msgstr "superblocket har ett felaktigt MMP-block. "
#. @-expanded: superblock has invalid MMP magic.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:425
msgid "@S has invalid MMP magic. "
msgstr "superblocket har ogiltigt MMP-magiskt tal. "
-#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr "ext2fs_open2: %m\n"
+
#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr "ext2fs_check_desc: %m\n"
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+"superblock på 64-bitars filsystem behöver utsträckningar för att komma åt "
+"hela disken. "
+
+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Pass 1: Kontrollerar inoder, block och storlekar\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:439
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
-msgstr "Rootinod är inte en katalog. "
+msgstr "Rootinod är inte en katalog. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
-msgstr "rotinod har dtid satt (förmodligen på grund av gammal mke2fs). "
+msgstr "rotinod har dtid satt (förmodligen på grund av gammal mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:449
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
-msgstr "Reserverad inod %i %Q har ogiltiga rättigheter. "
+msgstr "Reserverad inod %i %Q har ogiltiga rättigheter. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "Raderad inod %i har dtid noll. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
-msgstr "Inod %i används, men har dtid satt. "
+msgstr "Inod %i används, men har dtid satt. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
-msgstr "Inod %i är en nollängds katalog. "
+msgstr "Inod %i är en nollängds katalog. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
-msgstr "Grupp %g:s blockbitkarta vid %b står i konflikt med annat filsystemblock.\n"
+msgstr ""
+"Grupp %g:s blockbitkarta vid %b står i konflikt med annat filsystemblock.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
-msgstr "Grupp %g:s inodbitkarta vid %b står i konflikt med annat filsystemblock.\n"
+msgstr ""
+"Grupp %g:s inodbitkarta vid %b står i konflikt med annat filsystemblock.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
-msgstr "Grupp %g:s inodtabell vid %b står i konflikt med annat filsystemblock.\n"
+msgstr ""
+"Grupp %g:s inodtabell vid %b står i konflikt med annat filsystemblock.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
-msgstr "Grupp %g:s blockbitkarta (%b) år felaktig. "
+msgstr "Grupp %g:s blockbitkarta (%b) år felaktig. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
-msgstr "Grupp %g:s inodbitkarta (%b) är felaktig. "
+msgstr "Grupp %g:s inodbitkarta (%b) är felaktig. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
-msgstr "Inod %i, i_storlek är %Is, skulle varit %N. "
+msgstr "Inod %i, i_storlek är %Is, skulle varit %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
-msgstr "Inod %i, i_block är %Ib, skulle varit %N. "
+msgstr "Inod %i, i_block är %Ib, skulle varit %N. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
msgstr "Ogiltigt %B (%b) i inod %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
-msgstr "%B (%b) överlappar filsystemmetadata i inod %i. "
+msgstr "%B (%b) överlappar filsystemmetadata i inod %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "Inod %i har ogiltiga block. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
-msgstr "För många ogiltiga block i inod %i.\n"
+msgstr "För många ogiltiga block i inod %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
-msgstr "Ogiltigt %B (%b) i inod för felaktiga block. "
+msgstr "Ogiltigt %B (%b) i inod för felaktiga block. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "Felaktig blockinod har ogiltiga block. "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
-msgstr "Duplicerat eller felaktigt block används!\n"
+msgstr "Duplicerat eller felaktigt block används!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr "Felaktigt block %b använt som indirektblock för inod för dåliga block. "
+msgstr ""
+"Felaktigt block %b använt som indirektblock för inod för dåliga block. "
#. @-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:544
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1342,858 +1364,906 @@ msgid ""
"in the @f.\n"
msgstr ""
"\n"
-"Inoden för dåliga block har antagligen blivit skadad. Du bör\n"
-"antagligen sluta nu och köra e2fsck -c för att söka efter dåliga block\n"
+"Inoden för dåliga block har antagligen blivit skadad. Du bör\n"
+"antagligen sluta nu och köra e2fsck -c för att söka efter dåliga block\n"
"i filsystemet.\n"
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:551
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
"\n"
-"Om blocket verkligen är dåligt kan inte filsystemet lagas.\n"
+"Om blocket verkligen är dåligt kan inte filsystemet lagas.\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:556
+#: e2fsck/problem.c:568
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 ""
-"Du kan ta bort detta block från listan över dåliga block och hoppas\n"
-"att blocket verkligen är OK. men det finns inga garaniter.\n"
+"Du kan ta bort detta block från listan över dåliga block och hoppas\n"
+"att blocket verkligen är OK. men det finns inga garaniter.\n"
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
-msgstr "Det primära superblocket (%b) är på listan över dåliga block.\n"
+msgstr "Det primära superblocket (%b) är på listan över dåliga block.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Block %b i de primära gruppbeskrivarna är på listan över dåliga block\n"
+msgstr ""
+"Block %b i de primära gruppbeskrivarna är på listan över dåliga block\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:573
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
-msgstr "Varning: Grupp %g:s superblock (%b) är dåligt.\n"
+msgstr "Varning: Grupp %g:s superblock (%b) är dåligt.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr "Varning: Grupp %g:s kopia av gruppbeskrivarna har ett dåligt block (%b).\n"
+msgstr ""
+"Varning: Grupp %g:s kopia av gruppbeskrivarna har ett dåligt block (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr "Programmeringsfel? Block nr. %b tas i anspråk utan anledning i process_bad_block.\n"
+msgstr ""
+"Programmeringsfel? Block nr. %b tas i anspråk utan anledning i "
+"process_bad_block.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:590
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
-msgstr "Fel vid allokering av %N konsekutiva block i blockgrupp %g för %s: %m\n"
+msgstr ""
+"Fel vid allokering av %N konsekutiva block i blockgrupp %g för %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
-msgstr "Fil vid allokering av blockbuffert för relokering av %s\n"
+msgstr "Fil vid allokering av blockbuffert för relokering av %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
-msgstr "Relokerar grupp %g:s %s från %b till %c ...\n"
+msgstr "Relokerar grupp %g:s %s från %b till %c ...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Relokerar grupp %g:s %s till %c ...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
-msgstr "Varning: kunde inte läsa block %b av %s: %m\n"
+msgstr "Varning: kunde inte läsa block %b av %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Varning: kunde inte skriva block %b av %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:620 e2fsck/problem.c:1455
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "Fel vid allokering av inodbitkarta (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:625
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "Fel vid allokering av blockbitkarta (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
-msgstr "Fel vid allokering av icount-länkinformation: %m\n"
+msgstr "Fel vid allokering av icount-länkinformation: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "Fel vid allokering av katalogblockvektor: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
-msgstr "Fel vid genomsökning av inoder (%i): %m\n"
+msgstr "Fel vid genomsökning av inoder (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
-msgstr "Fel vid iterering över block i inod %i: %m\n"
+msgstr "Fel vid iterering över block i inod %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr "Fel vid lagring av inodsräknarinformation (inod=%i, antal=%N): %m\n"
+msgstr "Fel vid lagring av inodsräknarinformation (inod=%i, antal=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr "Fel vid lagring av katalogblocksinformation (inod=%i, block=%b, antal=%N): %m\n"
+msgstr ""
+"Fel vid lagring av katalogblocksinformation (inod=%i, block=%b, antal=%N): "
+"%m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:661
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
-msgstr "Fel vid läsning av inod %i: %m\n"
+msgstr "Fel vid läsning av inod %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "Inod %i har flaggan imagic satt. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Specialfil (enhet/uttag (socket)/fifo/symlänk) (inod %i) har flaggan\n"
-"oföränderlig eller endast tillägg satt."
+"Specialfil (enhet/uttag (socket)/fifo/symlänk) (inod %i) har flaggan\n"
+"oföränderlig eller endast tillägg satt."
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:680
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr "Inod %i har kompressionsflagga satt på filsystem utan kompressionsstöd. "
+msgstr ""
+"Inod %i har kompressionsflagga satt på filsystem utan kompressionsstöd. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr "Specialinod (enhet/uttag (socket)/fifo) %i har nollskild storlek. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
-msgstr "Journalinod används, men innehåller data. "
+msgstr "Journalinod används, men innehåller data. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
-msgstr "Journal är inte en vanlig fil. "
+msgstr "Journal är inte en vanlig fil. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
-msgstr "Inod %i var med i listan över föräldralösa inoder. "
+msgstr "Inod %i var med i listan över föräldralösa inoder. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:711
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "Inoder som var med i trasig lista över föräldralösa inoder hittad. "
+msgstr "Inoder som var med i trasig lista över föräldralösa inoder hittad. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
-msgstr "Fel vid allokering av referensräknarstruktur (%N): %m\n"
+msgstr "Fel vid allokering av referensräknarstruktur (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
-msgstr "Fel vid läsning av utökade attribut-block %b för inod %i. "
+msgstr "Fel vid läsning av utökade attribut-block %b för inod %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
-msgstr "Inod %i har ett felaktigt utökade attribut-block %b. "
+msgstr "Inod %i har ett felaktigt utökade attribut-block %b. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
-msgstr "Fel vid läsning av utökade attribut-block %b (%m). "
+msgstr "Fel vid läsning av utökade attribut-block %b (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
-msgstr "Utökade attribut-block %b har referensräknare %r, skall vara %N. "
+msgstr "Utökade attribut-block %b har referensräknare %r, skall vara %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
-msgstr "Fel vid skrivning av utökade attribut-block %b (%m). "
+msgstr "Fel vid skrivning av utökade attribut-block %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
-msgstr "Utökade attribut-block %b har h_blocks > 1. "
+msgstr "Utökade attribut-block %b har h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
-msgstr "Fel vid allokering av block för utökade attribut %b. "
+msgstr "Fel vid allokering av block för utökade attribut %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr "Utökade attribut-block %b är trasigt (allokeringskollision). "
+msgstr "Utökade attribut-block %b är trasigt (allokeringskollision). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
-msgstr "Utökade attribut-block %b är trasigt (ogiltigt namn). "
+msgstr "Utökade attribut-block %b är trasigt (ogiltigt namn). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
-msgstr "Utökade attribut-block %b är trasigt (ogiltigt värde). "
+msgstr "Utökade attribut-block %b är trasigt (ogiltigt värde). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
-msgstr "Inod %i är för stor. "
+msgstr "Inod %i är för stor. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:775
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
-msgstr "%B (%b) får katalog att bli för stor. "
+msgstr "%B (%b) får katalog att bli för stor. "
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
-msgstr "%B (%b) får fil att bli för stor. "
+msgstr "%B (%b) får fil att bli för stor. "
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
-msgstr "%B (%b) får symlänk att bli för stor. "
+msgstr "%B (%b) får symlänk att bli för stor. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr "Inod %i har flagga INDEX_FL satt på filsystem utan stöd för htree.\n"
+msgstr "Inod %i har flagga INDEX_FL satt på filsystem utan stöd för htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
-msgstr "Inod %i har flagga INDEX_FL satt men är inte en katalog.\n"
+msgstr "Inod %i har flagga INDEX_FL satt men är inte en katalog.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "HTREE kataloginod %i har en ogiltig rotnod.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
-msgstr "HTREE katalog-inod %i har en hashversion som inte stöds (%N)\n"
+msgstr "HTREE katalog-inod %i har en hashversion som inte stöds (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr "HTREE katalog-inod %i använder en inkompatibel htree rotnodsflagga.\n"
+msgstr "HTREE katalog-inod %i använder en inkompatibel htree rotnodsflagga.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
-msgstr "HTREE katalog-inod %i har ett träddjup (%N) som är för stort\n"
+msgstr "HTREE katalog-inod %i har ett träddjup (%N) som är för stort\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
msgstr ""
-"Inoden för dåliga block har ett indirektblock (%b) som står i konflikt\n"
+"Inoden för dåliga block har ett indirektblock (%b) som står i konflikt\n"
"med filsystemsmetadata. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:826
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
-msgstr "Misslyckades att återskapa storleksändringsinod: %m."
+msgstr "Misslyckades att återskapa storleksändringsinod: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
-msgstr "Inod %i har en extra storlek (%IS) som är ogiltig\n"
+msgstr "Inod %i har en extra storlek (%IS) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har ett namelen (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har ett namelen (%N) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har en värdeposition (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har en värdeposition (%N) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr "Utökat attribut i inod %i har ett värdeblock (%N) som är ogiltigt (måste vara 0)\n"
+msgstr ""
+"Utökat attribut i inod %i har ett värdeblock (%N) som är ogiltigt (måste "
+"vara 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har ett värdestorlek (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har ett värdestorlek (%N) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har hash (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har hash (%N) som är ogiltig\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr "inod %i är en %It men det ser ut som det egentligen är en katalog.\n"
+msgstr "inod %i är en %It men det ser ut som det egentligen är en katalog.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
-msgstr "Fel vid läsning över utsträckningsträd i inod %i: %m\n"
+msgstr "Fel vid läsning över utsträckningsträd i inod %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
msgstr ""
-"Misslyckades att iterera över utsträckningar i inod %i\n"
+"Misslyckades att iterera över utsträckningar i inod %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:877
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
msgstr ""
-"inod %i har en ogiltig utsträckning\n"
-"\t(logiskt block %c, ogiltigt fysiskt block %b, längd %N)\n"
+"inod %i har en ogiltig utsträckning\n"
+"\t(logiskt block %c, ogiltigt fysiskt block %b, längd %N)\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
-"inod %i har en ogiltig utsträckning\n"
-"\t(logiskt block %c, fysiskt block %b, ogiltig längd %N)\n"
+"inod %i har en ogiltig utsträckning\n"
+"\t(logiskt block %c, fysiskt block %b, ogiltig längd %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr "Inod %i har flaggan EXTENTS_FL satt på filsystemet utan stöd för utsträckningar.\n"
+msgstr ""
+"Inod %i har flaggan EXTENTS_FL satt på filsystemet utan stöd för "
+"utsträckningar.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr "inod %i är i utsträckningsformat, men superblocket saknar egenskapen EXTENTS\n"
+msgstr ""
+"inod %i är i utsträckningsformat, men superblocket saknar egenskapen "
+"EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
-msgstr "inod %i saknar EXTENT_FL, men är i utsträckningsformat\n"
+msgstr "inod %i saknar EXTENT_FL, men är i utsträckningsformat\n"
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
-msgstr "Snabb symlänk %i har EXTENT_FL satt. "
+msgstr "Snabb symlänk %i har EXTENT_FL satt. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
-"inod %i har utsträckningar i oordning\n"
-"\t(ogiltigt logiskt block %c, fysiskt block %b, längd %N)\n"
+"inod %i har utsträckningar i oordning\n"
+"\t(ogiltigt logiskt block %c, fysiskt block %b, längd %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:911
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
-msgstr "inod %i har en ogiltig utsträckningsnod (blk %b, lblk %c)\n"
-
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:915
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr "Inod %i skall inte ha EOFBLOCKS_FL satt (storlek %Is, lblk %r)\n"
+msgstr "inod %i har en ogiltig utsträckningsnod (blk %b, lblk %c)\n"
#. @-expanded: Error converting subcluster block bitmap: %m\n
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
-msgstr "Fel vid konvertering av blockbitkarta över subkluster: %m\n"
+msgstr "Fel vid konvertering av blockbitkarta över subkluster: %m\n"
#. @-expanded: quota inode is not regular file.
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
msgid "@q @i is not regular file. "
-msgstr "Kvotainoden är inte en vanlig fil. "
+msgstr "Kvotainoden är inte en vanlig fil. "
#. @-expanded: quota inode is not in use, but contains data.
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
msgid "@q @i is not in use, but contains data. "
-msgstr "Kvotinoden används inte, men innehåller data. "
+msgstr "Kvotinoden används inte, men innehåller data. "
#. @-expanded: quota inode is visible to the user.
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
msgid "@q @i is visible to the user. "
-msgstr "Kvotinoden är synlig för användaren. "
+msgstr "Kvotinoden är synlig för användaren. "
#. @-expanded: The bad block inode looks invalid.
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
msgid "The bad @b @i looks @n. "
-msgstr "Inoden för dåliga block verkar felaktig."
+msgstr "Inoden för dåliga block verkar felaktig."
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"inod %i har en utsträckning med noll längd\n"
+"\t(ogiltigt logiskt block %c, fysiskt block %b)\n"
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+"Intern utsträckningsnod på nivå %N av inod %i:\n"
+"Logisk start %b stämmer inte med logisk start %c på nästa nivå. "
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"inod %i, slutet på utsträckningen överskrider tillåtet värde\n"
+"\t(logiskt block %c, fysiskt block %b, längd %N)\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:948
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
"\n"
-"Kör ytterliggare pass för att lösa upp block som används av mer än en inod ...\n"
-"Pass 1B: Söker igen efter block som används flera gånger\n"
+"Kör ytterliggare pass för att lösa upp block som används av mer än en "
+"inod ...\n"
+"Pass 1B: Söker igen efter block som används flera gånger\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:954
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
-msgstr "Flerfaldigt ianspråkstagna block i inod %i:"
+msgstr "Flerfaldigt ianspråkstagna block i inod %i:"
-#: e2fsck/problem.c:969
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
-msgstr "Fel vid genomsökning av inoder (%i): %m\n"
+msgstr "Fel vid genomsökning av inoder (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "Fel vid allokering av inodbitkarta (inode_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
-msgstr "Fel vid iterering över block i inod %i (%s): %m\n"
+msgstr "Fel vid iterering över block i inod %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:984 e2fsck/problem.c:1299
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr "Fel vid justering av referensräknare för externa attribut-block %b (inod %i): %m\n"
+msgstr ""
+"Fel vid justering av referensräknare för externa attribut-block %b (inod "
+"%i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:989
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr "Pass 1C: Söker kataloger efter inoder med flerfaldigt ianspråkstagna block\n"
+msgstr ""
+"Pass 1C: Söker kataloger efter inoder med flerfaldigt ianspråkstagna block\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
-msgstr "Pass 1D: Förlikar flerfaldigt ianspråkstagna block\n"
+msgstr "Pass 1D: Förlikar flerfaldigt ianspråkstagna block\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
"Fil %Q (inod nr. %i, modifieringstid %IM) \n"
-" har %r flerfaldigt ianspråkstagna block, delade med %N filer:\n"
+" har %r flerfaldigt ianspråkstagna block, delade med %N filer:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:1006
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (inod nr. %i, modifieringstid %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<filsystemsmetadata>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
msgstr ""
-"(Det finns %N inoder som innehåller flerfaldigt ianspråkstagna block.)\n"
+"(Det finns %N inoder som innehåller flerfaldigt ianspråkstagna block.)\n"
"\n"
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-"Flerfaldig ianspråkstagna block redan överlåtna eller klonade.\n"
+"Flerfaldig ianspråkstagna block redan överlåtna eller klonade.\n"
"\n"
-#: e2fsck/problem.c:1034
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "Kunde inte klona fil: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Pass 2: Kontrollerar katalogstruktur\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
-msgstr "Ogiltigt inodsnummer för \".\" i kataloginod %i.\n"
+msgstr "Ogiltigt inodsnummer för \".\" i kataloginod %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "Post \"%Dn\" i %p (%i) har ogiltigt inodsnummer: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
-msgstr "Post \"%Dn\" i %p (%i) har raderad/oanvänd inod %Di. "
+msgstr "Post \"%Dn\" i %p (%i) har raderad/oanvänd inod %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
-msgstr "Post \"%Dn\" i %p (%i) är en länk till \".\" "
+msgstr "Post \"%Dn\" i %p (%i) är en länk till \".\" "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr "Post \"%Dn\" i %p (%i) pekar på inod (%Di) som finns i ett trasigt block.\n"
+msgstr ""
+"Post \"%Dn\" i %p (%i) pekar på inod (%Di) som finns i ett trasigt block.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
-msgstr "Post \"%Dn\" i %p (%i) är en länk till katalog %P (%Di).\n"
+msgstr "Post \"%Dn\" i %p (%i) är en länk till katalog %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
-msgstr "Post \"%Dn\" i %p (%i) är en länk till rotinoden.\n"
+msgstr "Post \"%Dn\" i %p (%i) är en länk till rotinoden.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "Post \"%Dn\" i %p (%i) har ogiltiga tecken i namnet.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "\".\" saknas i kataloginod %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "\"..\" saknas i kataloginod %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr "Första post \"%Dn\" (inod=%Di) i kataloginod %i (%p) skulle varit \".\"\n"
+msgstr ""
+"Första post \"%Dn\" (inod=%Di) i kataloginod %i (%p) skulle varit \".\"\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr "Andra post \"%Dn\" (inod=%Di) i kataloginod %i skulle varit \"..\"\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
-msgstr "i_faddr för inod %i (%Q) är %IF, skulle varit noll.\n"
+msgstr "i_faddr för inod %i (%Q) är %IF, skulle varit noll.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
-msgstr "i_file_acl för inod %i (%Q) är %If, skulle varit noll.\n"
+msgstr "i_file_acl för inod %i (%Q) är %If, skulle varit noll.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
-msgstr "i_dir_acl för inod %i (%Q) är %Id, skulle varit noll.\n"
+msgstr "i_dir_acl för inod %i (%Q) är %Id, skulle varit noll.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
-msgstr "i_frag för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_frag för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
-msgstr "i_fsize för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_fsize för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
-msgstr "Inod %i (%Q) har ogiltiga rättigheter (%Im).\n"
+msgstr "Inod %i (%Q) har ogiltiga rättigheter (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "Kataloginod %i, %B, position %N: katalogen trasig\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
-msgstr "Kataloginod %i, %B, position %N: för långt filnamn\n"
+msgstr "Kataloginod %i, %B, position %N: för långt filnamn\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "Kataloginod %i har ett oallokerat %B. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "\".\"-katalogpost i kataloginod %i är inte nollterminerad\n"
+msgstr "\".\"-katalogpost i kataloginod %i är inte nollterminerad\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "\"..\"-katalogpost i kataloginod %i är inte nollterminerad\n"
+msgstr "\"..\"-katalogpost i kataloginod %i är inte nollterminerad\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
-msgstr "Inod %i (%Q) är en ogiltig teckenenhet.\n"
+msgstr "Inod %i (%Q) är en ogiltig teckenenhet.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
-msgstr "Inod %i (TQ är en ogiltig blockenhet.\n"
+msgstr "Inod %i (TQ är en ogiltig blockenhet.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
-msgstr "Post \"%Dn\" i %p (%i) är duplicerad \".\"-post.\n"
+msgstr "Post \"%Dn\" i %p (%i) är duplicerad \".\"-post.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
-msgstr "Post \"%Dn\" i %p (%i) är duplicerad \"..\"-post.\n"
+msgstr "Post \"%Dn\" i %p (%i) är duplicerad \"..\"-post.\n"
-#: e2fsck/problem.c:1180 e2fsck/problem.c:1480
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
-msgstr "Internt fel: kunde inte hitta dir_info för %i.\n"
+msgstr "Internt fel: kunde inte hitta dir_info för %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr ""
"Post \"%Dn\" i %p (%i) har rec_len %Dr, skulle varit %N.\n"
"\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "Fel vid allokering av icount-struktur: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
-msgstr "Fel vid iterering över katalogblock: %m\n"
+msgstr "Fel vid iterering över katalogblock: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
-msgstr "Fel vid läsning av katalogblock %b (inod %i): %m\n"
+msgstr "Fel vid läsning av katalogblock %b (inod %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Fel vid skrivning av katalogblock %b (inod %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
-msgstr "Fel vid allokering av nytt katalogblock för inod %i (%s): %m\n"
+msgstr "Fel vid allokering av nytt katalogblock för inod %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Fel vid deallokering av inod %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
-msgstr "Katalogpost för \".\" i %p (%i) är stor.\n"
+msgstr "Katalogpost för \".\" i %p (%i) är stor.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
-msgstr "Inod %i (%Q) är en ogiltig FIFO.\n"
+msgstr "Inod %i (%Q) är en ogiltig FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
-msgstr "Inod %i (%Q) är ett ogiltigt uttag (socket).\n"
+msgstr "Inod %i (%Q) är ett ogiltigt uttag (socket).\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
-msgstr "Sätter filtyp för post \"%Dn\" i %p (%i) till %N.\n"
+msgstr "Sätter filtyp för post \"%Dn\" i %p (%i) till %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
-msgstr "Post \"%Dn\" i %p (%i) har felaktig filtyp (var %Dt, skulle varit %N).\n"
+msgstr ""
+"Post \"%Dn\" i %p (%i) har felaktig filtyp (var %Dt, skulle varit %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "Post \"%Dn\" i %p (%i) har filtyp satt.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
-msgstr "Post \"%Dn\" i %p (%i) har nollängdsnamn.\n"
+msgstr "Post \"%Dn\" i %p (%i) har nollängdsnamn.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
-msgstr "Symlänk %Q (inod nr. %i) är ogiltig.\n"
+msgstr "Symlänk %Q (inod nr. %i) är ogiltig.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
-msgstr "Utökat attribut-block för inod %i (%Q) är ogiltigt (%If).\n"
+msgstr "Utökat attribut-block för inod %i (%Q) är ogiltigt (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr "Filsystem innehåller stora filer, men saknar flaggan LARGE_FILE i superblock.\n"
+msgstr ""
+"Filsystem innehåller stora filer, men saknar flaggan LARGE_FILE i "
+"superblock.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
msgstr "Problem i HTREE-kataloginod %d: %B inte refererad\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
-msgstr "Problem i HTREE-kataloginod %d: %B refererat två gånger\n"
+msgstr "Problem i HTREE-kataloginod %d: %B refererat två gånger\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
msgstr "Problem i HTREE-kataloginod %d: %B har felaktig min-hash\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
msgstr "Problem i HTREE-kataloginod %d: %B har felaktig max-hash\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "Ogiltig HTREE-kataloginod %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "Problem i HTREE-kataloginod %d (%q): felaktigt blocknummer %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1304
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "Problem i HTREE-kataloginod %d: ogiltig rotnod.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
-msgstr "Problem i HTREE-kataloginod %d: %B har ogiltig gräns (%N)\n"
+msgstr "Problem i HTREE-kataloginod %d: %B har ogiltig gräns (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr ""
"Problem i HTREE-kataloginod %d: %B har ogiltigt antal (%N)\n"
"\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr "Problem i HTREE-kataloginod %d: %B har en oordnad hash-tabell\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "Problem i HTREE-kataloginod %d: %B har ogiltigt djup (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "Duplicerad post \"%Dn\" i %p (%i) hittad. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2205,362 +2275,375 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
"\n"
msgstr ""
"Duplicerad post \"%Dn\" hittad.\n"
-"\tMarkerar %p (%i) för ombyggnad.\n"
+"\tMarkerar %p (%i) för ombyggnad.\n"
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
-msgstr "i_blocks_hi för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_blocks_hi för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
-msgstr "Oväntat block i HTREE-katalog %d (%q).\n"
+msgstr "Oväntat block i HTREE-katalog %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr "Post \"%Dn\" i %p (%i) refererar inod %Di i grupp %g där _INODE_UNINIT är satt.\n"
+msgstr ""
+"Post \"%Dn\" i %p (%i) refererar inod %Di i grupp %g där _INODE_UNINIT är "
+"satt.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "Post \"%Dn\" i %p (%i) refererar inod %Di funnen i oanvänt inodsområde i grupp %g.\n"
+msgstr ""
+"Post \"%Dn\" i %p (%i) refererar inod %Di funnen i oanvänt inodsområde i "
+"grupp %g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
-msgstr "i_file_acl_hi för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_file_acl_hi för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
-msgstr "Pass 3: Kontrollerar katalogförbindelser\n"
+msgstr "Pass 3: Kontrollerar katalogförbindelser\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "Rotinod inte allokerad. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "Ingen plats i lost+found-katalog. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
-msgstr "Oförbunden kataloginod %i (%p)\n"
+msgstr "Oförbunden kataloginod %i (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/lost+found inte funnen. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
-msgstr "\"..\" i %Q (%i) är %P (%j), skulle varit %q (%d).\n"
+msgstr "\"..\" i %Q (%i) är %P (%j), skulle varit %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
-msgstr "Felaktig eller ej existerande /lost+found. Kan inte återansluta.\n"
+msgstr "Felaktig eller ej existerande /lost+found. Kan inte återansluta.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "Kunde inte expandera /lost+found: %m\n"
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
-msgstr "Kunde inte återförbinda %i: %m\n"
+msgstr "Kunde inte återförbinda %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
-msgstr "Fel vid försök att hitta /lost+found: %m\n"
+msgstr "Fel vid försök att hitta /lost+found: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_block: %m ved försök att skapa /lost+found-katalog\n"
+msgstr "ext2fs_new_block: %m ved försök att skapa /lost+found-katalog\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_inode: %m vid försök att skapa /lost+found-katalog\n"
+msgstr "ext2fs_new_inode: %m vid försök att skapa /lost+found-katalog\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr "ext2fs_new_dir_block: %m när nytt katalogblock skapades\n"
+msgstr "ext2fs_new_dir_block: %m när nytt katalogblock skapades\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr "ext2fs_write_dir_block: %m vid skrivning av katalogblocket för /lost+found\n"
+msgstr ""
+"ext2fs_write_dir_block: %m vid skrivning av katalogblocket för /lost+found\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
-msgstr "Fel vid justering av inodräknare på inod %i\n"
+msgstr "Fel vid justering av inodräknare på inod %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
"\n"
msgstr ""
-"Kunde inte rätta förälder till inod %i: %m\n"
+"Kunde inte rätta förälder till inod %i: %m\n"
"\n"
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
"\n"
msgstr ""
-"Kunde inte rätta förälder till inod %i: Kunde inte hitta förälderkatalogpost\n"
+"Kunde inte rätta förälder till inod %i: Kunde inte hitta "
+"förälderkatalogpost\n"
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1460
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Fel vid skapande av rotkatalog (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Fel vid skapande av /lost+found-katalog (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
-msgstr "Rotinod är inte en katalog; avbryter.\n"
+msgstr "Rotinod är inte en katalog; avbryter.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
-msgstr "Kan inte fortsätta utan en rotinod.\n"
+msgstr "Kan inte fortsätta utan en rotinod.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1485
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
-msgstr "/lost+found är inte en katalog (ino=%i)\n"
+msgstr "/lost+found är inte en katalog (ino=%i)\n"
-#: e2fsck/problem.c:1492
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Pass 3A: Optimerar kataloger\n"
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Misslyckades att skapa dirs_to_hash-iterator: %m\n"
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Misslyckades att optimera katalog %q (%d): %m\n"
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Optimerar kataloger: "
-#: e2fsck/problem.c:1524
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
-msgstr "Pass 4: Kontrollerar referensräknare\n"
+msgstr "Pass 4: Kontrollerar referensräknare\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
-msgstr "Lös nollängdsinod %i. "
+msgstr "Lös nollängdsinod %i. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
-msgstr "lös inod %i\n"
+msgstr "lös inod %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
-msgstr "Inod %i referensräknare är %Il, skulle varit %N. "
+msgstr "Inod %i referensräknare är %Il, skulle varit %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:1543
+#: e2fsck/problem.c:1569
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 ""
"VARNING: PROGRAMMERINGSFEL I E2FSCK!\n"
-" ELLER NÅGON KLANTSKALLE (DU) KONTROLLERAR ETT MONTERAT (AKTIVT) FILSYSTEM.\n"
-"inod_link_info[%i] är %N, inod.i_links_count är %Il. De skulle vara samma!\n"
+" ELLER NÃ…GON KLANTSKALLE (DU) KONTROLLERAR ETT MONTERAT (AKTIVT) "
+"FILSYSTEM.\n"
+"inod_link_info[%i] är %N, inod.i_links_count är %Il. De skulle vara samma!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1553
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "Pass 5: Kontrollerar gruppsammanfattningsinformation\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
-msgstr "Utfyllnad vid slutet av inodsbitkarta är inte satt. "
+msgstr "Utfyllnad vid slutet av inodsbitkarta är inte satt. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
-msgstr "Utfyllnad vid slutet av blockbitkarta är inte satt. "
+msgstr "Utfyllnad vid slutet av blockbitkarta är inte satt. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "Blockbitkarteskillnader: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1588
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "Inodsbitkarteskillnader: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1608
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Antal fria inoder är fel för grupp nr. %g (%i, räknade=%j).\n"
+msgstr "Antal fria inoder är fel för grupp nr. %g (%i, räknade=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Katalogantal fel för grupp nr. %g (%i, räknade=%j).\n"
+msgstr "Katalogantal fel för grupp nr. %g (%i, räknade=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
-msgstr "Antal fria inoder är fel (%i, räknade=%j).\n"
+msgstr "Antal fria inoder är fel (%i, räknade=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
-msgstr "Antal fria block är fel för grupp nr. %g (%b, räknade=%c).\n"
+msgstr "Antal fria block är fel för grupp nr. %g (%b, räknade=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
-msgstr "Antal fria block är fel (%b, räknade=%c).\n"
+msgstr "Antal fria block är fel (%b, räknade=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1633
-msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+#: e2fsck/problem.c:1659
+msgid ""
+"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
+"endpoints (%i, %j)\n"
msgstr ""
-"PROGRAMMERINGSFEL: filsystem (nr. %N) bitkartas ändpunkter (%b, %c) stämmer\n"
-"inte med beräknade bitkarteändpunkter (%i, %j)\n"
+"PROGRAMMERINGSFEL: filsystem (nr. %N) bitkartas ändpunkter (%b, %c) stämmer\n"
+"inte med beräknade bitkarteändpunkter (%i, %j)\n"
-#: e2fsck/problem.c:1639
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
-msgstr "Internt fel: fuskar till slut på bitkarta (%N)\n"
+msgstr "Internt fel: fuskar till slut på bitkarta (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
-msgstr "Fel vid kopiering av ersättningsinodskarta: %m\n"
+msgstr "Fel vid kopiering av ersättningsinodskarta: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
-msgstr "Fel vid inkopiering av ersättningsbitkarta: %m\n"
+msgstr "Fel vid inkopiering av ersättningsbitkarta: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1674
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr "block i grupp %g används men gruppen är markerad BLOCK_UNINIT\n"
+msgstr "block i grupp %g används men gruppen är markerad BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr "inoder i grupp %g används men gruppen är markerad INODE_UNINIT\n"
+msgstr "inoder i grupp %g används men gruppen är markerad INODE_UNINIT\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1686
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
-msgstr "Återskapa journal"
+msgstr "Ã…terskapa journal"
+
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr "Uppdatera kvotinformation för kvottyp %N"
-#: e2fsck/problem.c:1805
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Ej hanterad felkod (0x%x)!\n"
-#: e2fsck/problem.c:1905
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "IGNORERAT"
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
-msgstr "Använt minne: %d, förlupen tid: %6.3f/%6.3f/%6.3f\n"
+msgstr "Använt minne: %d, förlupen tid: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
-msgstr "storlek på inod=%d\n"
+msgstr "storlek på inod=%d\n"
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
-msgstr "vid start av inodsgenomsökning"
+msgstr "vid start av inodsgenomsökning"
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
-msgstr "vid inodsgenomsökning"
+msgstr "vid inodsgenomsökning"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
-msgstr "vid anrop av ext2fs_block_iterate för inod %d"
+msgstr "vid anrop av ext2fs_block_iterate för inod %d"
-#: e2fsck/super.c:210
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
-msgstr "vid anrop av ext2fs_adjust_ea_refcount2 för inod %d"
+msgstr "vid anrop av ext2fs_adjust_ea_refcount2 för inod %d"
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Kapar"
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
-msgstr "Tömmer"
+msgstr "Tömmer"
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2568,32 +2651,32 @@ msgid ""
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extended-options] device\n"
msgstr ""
-"Användning: %s [-panyrcdfvtDFV] [-b superblock] [-B blockstorlek]\n"
+"Användning: %s [-panyrcdfvtDFV] [-b superblock] [-B blockstorlek]\n"
"\t\t[-I inodbuffertblock] [-P processinodsstorlek]\n"
-"\t\t[-l|-L dåliga_block_fil] [-C fd] [-j extern_journal]\n"
-"\t\t[-E utökade-flaggor] enhet\n"
+"\t\t[-l|-L dåliga_block_fil] [-C fd] [-j extern_journal]\n"
+"\t\t[-E utökade-flaggor] enhet\n"
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
-"Nödhjälp:\n"
-" -p Repearera automatiskt (inga frågor)\n"
-" -n Gör inga förändringar av filsystemet\n"
-" -y Anta \"ja\" som svar på alla frågor\n"
-" -c Leta efter dåliga block och lägg till dem i listan\n"
-" -f Framtvinga kontroll även om filsystemet är markerat rent\n"
+"Nödhjälp:\n"
+" -p Repearera automatiskt (inga frågor)\n"
+" -n Gör inga förändringar av filsystemet\n"
+" -y Anta \"ja\" som svar på alla frågor\n"
+" -c Leta efter dåliga block och lägg till dem i listan\n"
+" -f Framtvinga kontroll även om filsystemet är markerat "
+"rent\n"
-#: e2fsck/unix.c:89
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2602,182 +2685,180 @@ msgid ""
" -l bad_blocks_file Add to badblocks list\n"
" -L bad_blocks_file Set badblocks list\n"
msgstr ""
-" -v Var utförlig\n"
-" -b superblock Använd alternativt superblock\n"
-" -B blockstorlek Framtvinga blockstorlek vid sökande efter superblock\n"
-" -j extern_journal Bestäm plats för den externa journalen\n"
-" -l dåliga_block_fil Lägg till till listan över dåliga block\n"
-" -L dåliga_block_fil Ange lista över dåliga block\n"
+" -v Var utförlig\n"
+" -b superblock Använd alternativt superblock\n"
+" -B blockstorlek Framtvinga blockstorlek vid sökande efter superblock\n"
+" -j extern_journal Bestäm plats för den externa journalen\n"
+" -l dåliga_block_fil Lägg till till listan över dåliga block\n"
+" -L dåliga_block_fil Ange lista över dåliga block\n"
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
-msgstr "%s: %u/%u filer (%0d.%d%% ej sammanhängande), %llu/%llu block\n"
+msgstr "%s: %u/%u filer (%0d.%d%% ej sammanhängande), %llu/%llu block\n"
-#: e2fsck/unix.c:139
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u inod använd (%2.2f %%)\n"
+"%12u inod använd (%2.2f %%, av %u)\n"
msgstr[1] ""
"\n"
-"%8u inoder använda (%2.2f %%)\n"
+"%12u inoder använda (%2.2f %%, av %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u ej konsekutiv fil (%0d.%d %%)\n"
-msgstr[1] "%8u ej konsekutiva filer (%0d.%d %%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u ej konsekutiv fil (%0d.%d %%)\n"
+msgstr[1] "%12u ej konsekutiva filer (%0d.%d %%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u ej konsekutiv katalog (%0d.%d %%)\n"
-msgstr[1] "%8u ej konsekutiva kataloger (%0d.%d %%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u ej konsekutiv katalog (%0d.%d %%)\n"
+msgstr[1] "%12u ej konsekutiva kataloger (%0d.%d %%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " antal inoder med ind/dind/tind-block: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " antal inoder med ind/dind/tind-block: %u/%u/%u\n"
-#: e2fsck/unix.c:158
-#, c-format
-msgid " Extent depth histogram: "
-msgstr " Histogram över utsträckningars djup: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogram över utsträckningars djup: "
-#: e2fsck/unix.c:167
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu använt block (%2.2f %%)\n"
-msgstr[1] "%8llu använda block (%2.2f %%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu använt block (%2.2f %%, av %llu)\n"
+msgstr[1] "%12llu använda block (%2.2f %%, av %llu)\n"
-#: e2fsck/unix.c:170
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u dåligt block\n"
-msgstr[1] "%8u dåliga block\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u dåligt block\n"
+msgstr[1] "%12u dåliga block\n"
-#: e2fsck/unix.c:172
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u stor fil\n"
-msgstr[1] "%8u stora filer\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u stor fil\n"
+msgstr[1] "%12u stora filer\n"
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u normal fil\n"
+"%12u normal fil\n"
msgstr[1] ""
"\n"
-"%8u normala filer\n"
+"%12u normala filer\n"
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u katalog\n"
-msgstr[1] "%8u kataloger\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u katalog\n"
+msgstr[1] "%12u kataloger\n"
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u teckenenhetsfil\n"
-msgstr[1] "%8u teckenenhetsfiler\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u teckenenhetsfil\n"
+msgstr[1] "%12u teckenenhetsfiler\n"
-#: e2fsck/unix.c:181
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u blockenhetsfil\n"
-msgstr[1] "%8u blockenhetsfiler\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u blockenhetsfil\n"
+msgstr[1] "%12u blockenhetsfiler\n"
-#: e2fsck/unix.c:183
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
-msgstr[1] "%8u fifon\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
+msgstr[1] "%12u fifon\n"
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u länk\n"
-msgstr[1] "%8u länkar\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u länk\n"
+msgstr[1] "%12u länkar\n"
-#: e2fsck/unix.c:188
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolisk länk"
-msgstr[1] "%8u symboliska länkar"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolisk länk"
+msgstr[1] "%12u symboliska länkar"
-#: e2fsck/unix.c:190
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
-msgstr[0] " (%u snabb symbolisk länk)\n"
-msgstr[1] " (%u snbba symboliska länkar)\n"
+msgstr[0] " (%u snabb symbolisk länk)\n"
+msgstr[1] " (%u snbba symboliska länkar)\n"
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u uttag (socket)\n"
-msgstr[1] "%8u uttag (sockets)\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u uttag (socket)\n"
+msgstr[1] "%12u uttag (sockets)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u fil\n"
-msgstr[1] "%8u filer\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u fil\n"
+msgstr[1] "%12u filer\n"
-#: e2fsck/unix.c:209 misc/badblocks.c:984 misc/tune2fs.c:1978 misc/util.c:147
-#: resize/main.c:251
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
-msgstr "när det avgjordes om %s är monterat."
+msgstr "när det avgjordes om %s är monterat."
-#: e2fsck/unix.c:227
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
-msgstr "Varning! %s är monterat.\n"
+msgid "Warning! %s is %s.\n"
+msgstr "Varning! %s är %s.\n"
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s är monterat. "
+msgid "%s is %s.\n"
+msgstr "%s är %s.\n"
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
msgstr ""
-"Kan inte fortsätta, avbryter.\n"
+"Kan inte fortsätta, avbryter.\n"
"\n"
-#: e2fsck/unix.c:235
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2787,83 +2868,81 @@ msgid ""
msgstr ""
"\n"
"\n"
-"VARNING!!! Filsystemet är monterat. Om du fortsätter ***KOMMER***\n"
-"du att orsaka ***ALLVARLIG*** skada på filsystemet.\n"
+"VARNING!!! Filsystemet är monterat. Om du fortsätter ***KOMMER***\n"
+"du att orsaka ***ALLVARLIG*** skada på filsystemet.\n"
"\n"
-#: e2fsck/unix.c:239
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
-msgstr "Vill du verkligen fortsätta"
+msgstr "Vill du verkligen fortsätta"
-#: e2fsck/unix.c:241
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "kontroll avbruten.\n"
-#: e2fsck/unix.c:323
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
-msgstr " innehåller ett filsystem med fel"
+msgstr " innehåller ett filsystem med fel"
-#: e2fsck/unix.c:325
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
-msgstr " var inte fläckfritt avmonterat"
+msgstr " var inte fläckfritt avmonterat"
-#: e2fsck/unix.c:327
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
-msgstr " det primära superblockets egenskaper skiljer från reservens"
+msgstr " det primära superblockets egenskaper skiljer från reservens"
-#: e2fsck/unix.c:331
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
-msgstr " har monterats %u gånger utan att kontrolleras"
+msgstr " har monterats %u gånger utan att kontrolleras"
-#: e2fsck/unix.c:338
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
-msgstr " har tidpunkten för senaste filsystemskontroll i framtiden"
+msgstr " har tidpunkten för senaste filsystemskontroll i framtiden"
-#: e2fsck/unix.c:344
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
-msgstr " har inte kontrollerats på %u dagar"
+msgstr " har inte kontrollerats på %u dagar"
-#: e2fsck/unix.c:353
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", kontroll framtvingad.\n"
-#: e2fsck/unix.c:386
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: rent, %u/%u filer, %llu/%llu block"
-#: e2fsck/unix.c:404
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
-msgstr " (kontroll senarelagd; på batteri)"
+msgstr " (kontroll senarelagd; på batteri)"
-#: e2fsck/unix.c:407
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
-msgstr " (kontrollera efter nästa montering)"
+msgstr " (kontrollera efter nästa montering)"
-#: e2fsck/unix.c:409
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (kontrollera om %ld monteringar)"
-#: e2fsck/unix.c:559
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
-msgstr "FEL: Kunde inte öppna /dev/null (%s)\n"
+msgstr "FEL: Kunde inte öppna /dev/null (%s)\n"
-#: e2fsck/unix.c:628
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Ogiltig EA-version.\n"
-#: e2fsck/unix.c:649
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
-msgstr "Okänd utökad flagga: %s\n"
+msgstr "Okänd utökad flagga: %s\n"
-#: e2fsck/unix.c:674
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2872,57 +2951,56 @@ msgstr ""
"Syntaxfel i e2fsck:s konfigurationsfil (%s, rad nr %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:743
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Fel vid validering av filidentifierare %d: %s\n"
-#: e2fsck/unix.c:747
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
-msgstr "Ogiltig filidentifierare för förloppsinformation"
+msgstr "Ogiltig filidentifierare för förloppsinformation"
-#: e2fsck/unix.c:762
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Endast en av flaggorna -p/-a, -n eller -y kan anges."
-#: e2fsck/unix.c:783
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
-msgstr "Flaggan -t stödjs inte i denna version av e2fsck.\n"
+msgstr "Flaggan -t stödjs inte i denna version av e2fsck.\n"
-#: e2fsck/unix.c:814 e2fsck/unix.c:886 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Kan inte hitta \"%s\""
-#: e2fsck/unix.c:865
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
-msgstr "Flaggorna -n och -D är inkompatibla."
+msgstr "Flaggorna -n och -D är inkompatibla."
-#: e2fsck/unix.c:870
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
-msgstr "Flaggorna -n och -c är inkompatibla."
+msgstr "Flaggorna -n och -c är inkompatibla."
-#: e2fsck/unix.c:875
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
-msgstr "Flaggorna -n och -l/-L är inkompatibla."
+msgstr "Flaggorna -n och -l/-L är inkompatibla."
-#: e2fsck/unix.c:915
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
-msgstr "Flaggorna -c och -l/-L kan inte båda användas på samma gång.\n"
+msgstr "Flaggorna -c och -l/-L kan inte båda användas på samma gång.\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-"E2FSCK_JBD_DEBUG \"%s\" är inte ett heltal\n"
+"E2FSCK_JBD_DEBUG \"%s\" är inte ett heltal\n"
"\n"
-#: e2fsck/unix.c:972
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2933,200 +3011,196 @@ msgstr ""
"Ogiltigt ickenumerikst argument till -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1074 e2fsck/unix.c:1079
+#: e2fsck/unix.c:1129
+#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+"MMP-intervall är %u sekunder och den totala väntetiden är %u sekunder. Var "
+"god dröj ...\n"
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
-msgstr "vid uppsättning av MMP-block"
+msgstr "vid uppsättning av MMP-block"
-#: e2fsck/unix.c:1081 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Om du är säker på att filsystemet inte används på någon nod, kör:\n"
+"Om du är säker på att filsystemet inte används på någon nod, kör:\n"
"\"tune2fs-f-E clear_mmp {enhet}\"\n"
-#: e2fsck/unix.c:1130
-#, c-format
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Fel: ext2fs-bibliotekversion inaktuell!\n"
-#: e2fsck/unix.c:1138
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
-msgstr "vid försök att initiera program"
+msgstr "vid försök att initiera program"
-#: e2fsck/unix.c:1149
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
-msgstr "\tAnvänder %s, %s\n"
+msgstr "\tAnvänder %s, %s\n"
-#: e2fsck/unix.c:1161
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
-msgstr "behöver terminal för interaktiva reparationer"
+msgstr "behöver terminal för interaktiva reparationer"
-#: e2fsck/unix.c:1200
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
-msgstr "%s: %s försöker med reservblock ...\n"
+msgstr "%s: %s försöker med reservblock ...\n"
-#: e2fsck/unix.c:1202
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
-msgstr "Superblocket är ogiltigt,"
+msgstr "Superblocket är ogiltigt,"
-#: e2fsck/unix.c:1203
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Gruppbeskrivarna ser trasiga ut ..."
-#: e2fsck/unix.c:1215
+#: e2fsck/unix.c:1312
#, c-format
-msgid "%s: going back to original superblock\n"
-msgstr "%s: går tillbaka till orginalsuperblock\n"
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s när reservblocken användes"
-#: e2fsck/unix.c:1242
+#: e2fsck/unix.c:1316
#, c-format
+msgid "%s: going back to original superblock\n"
+msgstr "%s: går tillbaka till orginalsuperblock\n"
+
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"\n"
msgstr ""
-"Filsystemsrevisionen är uppenbarligen för hög för denna version av e2fsck.\n"
-"(Eller så är filsystemets superblock trasigt)\n"
+"Filsystemsrevisionen är uppenbarligen för hög för denna version av e2fsck.\n"
+"(Eller så är filsystemets superblock trasigt)\n"
"\n"
-#: e2fsck/unix.c:1248
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
-msgstr "Kan detta vara en nollängdspartition?\n"
+msgstr "Kan detta vara en nollängdspartition?\n"
-#: e2fsck/unix.c:1250
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
-msgstr "Du måste ha %s-åtkomst till filsystemet eller vara root\n"
+msgstr "Du måste ha %s-åtkomst till filsystemet eller vara root\n"
-#: e2fsck/unix.c:1255
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
-msgstr "Kanske inte existerar eller växlingsenhet?\n"
+msgstr "Kanske inte existerar eller växlingsenhet?\n"
-#: e2fsck/unix.c:1257
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr "Filsystemet monterat eller öppnat exklusivt av ett annat program?\n"
+msgstr "Filsystemet monterat eller öppnat exklusivt av ett annat program?\n"
-#: e2fsck/unix.c:1260
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr "Kanske en enhet som inte existerar?\n"
-#: e2fsck/unix.c:1263
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-"Skrivskyddad disk; använd flaggan -n för att göra en läsningskontroll\n"
+"Skrivskyddad disk; använd flaggan -n för att göra en läsningskontroll\n"
"av enheten.\n"
-#: e2fsck/unix.c:1327
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
-msgstr "Hämta en nyare version av e2fsck!"
+msgstr "Hämta en nyare version av e2fsck!"
-#: e2fsck/unix.c:1373
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
-msgstr "vid kontroll av ext3-journal för %s"
+msgstr "vid kontroll av ext3-journal för %s"
-#: e2fsck/unix.c:1384
-#, c-format
-msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
-msgstr "Varning: hoppar över journalåterhämtning eftersom en läsningskontroll av filsystem görs.\n"
+#: e2fsck/unix.c:1489
+msgid ""
+"Warning: skipping journal recovery because doing a read-only filesystem "
+"check.\n"
+msgstr ""
+"Varning: hoppar över journalåterhämtning eftersom en läsningskontroll av "
+"filsystem görs.\n"
-#: e2fsck/unix.c:1397
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
-msgstr "kan inte sätta superblocksflaggor på %s\n"
+msgstr "kan inte sätta superblocksflaggor på %s\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
-msgstr "vid återhämtning av ext3-journal för %s"
+msgstr "vid återhämtning av ext3-journal för %s"
-#: e2fsck/unix.c:1428
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
-msgstr "%s har funktioner som inte stöds:"
+msgstr "%s har funktioner som inte stöds:"
-#: e2fsck/unix.c:1444
-msgid "Warning: compression support is experimental.\n"
-msgstr "Varning: komprimeringsstöd är experimentellt.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s: varning: komprimeringsstöd är experimentellt.\n"
-#: e2fsck/unix.c:1449
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"E2fsck är inte kompilerat med HTREE-stöd,\n"
+"%s: e2fsck är inte kompilerat med HTREE-stöd,\n"
"\tmen filsystem %s har HTREE-kataloger.\n"
-#: e2fsck/unix.c:1502
-msgid "while reading bad blocks inode"
-msgstr "vid läsning av inod för dåliga block"
-
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1605
#, c-format
-msgid "This doesn't bode well, but we'll try to go on...\n"
-msgstr "Detta bådar inte gott, men vi skall försöka att fortsätta ...\n"
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s: %s vid läsning av inod för dåliga block\n"
-#: e2fsck/unix.c:1543
-msgid "Couldn't determine journal size"
-msgstr "Det gick inte att avgöra journalstorlek"
+#: e2fsck/unix.c:1608
+msgid "This doesn't bode well, but we'll try to go on...\n"
+msgstr "Detta bådar inte gott, men vi skall försöka att fortsätta ...\n"
-#: e2fsck/unix.c:1546
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Skapar journal (%d block): "
-#: e2fsck/unix.c:1553 misc/mke2fs.c:2535
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tvid försök att skapa journal"
-
-#: e2fsck/unix.c:1556
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr " Klar.\n"
-#: e2fsck/unix.c:1557
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
"\n"
-"*** journalen har återskapats - filsystemet är nu ext3 igen ***\n"
+"*** journalen har återskapats - filsystemet är nu ext3 igen ***\n"
-#: e2fsck/unix.c:1569
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
-msgstr "Startar om e2fsck från början ...\n"
+msgstr "Startar om e2fsck från början ...\n"
-#: e2fsck/unix.c:1573
+#: e2fsck/unix.c:1689
msgid "while resetting context"
-msgstr "vid återställning av omgivning"
+msgstr "vid återställning av omgivning"
-#: e2fsck/unix.c:1580
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
-msgstr "%s: e2fsck inställd.\n"
+msgstr "%s: e2fsck inställd.\n"
-#: e2fsck/unix.c:1585
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "avbruten"
-#: e2fsck/unix.c:1597 e2fsck/util.c:66
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -3135,12 +3209,12 @@ msgstr ""
"\n"
"%s: ***** FILSYSTEMET MODIFIERADES *****\n"
-#: e2fsck/unix.c:1600
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** STARTA OM LINUX *****\n"
-#: e2fsck/unix.c:1608 e2fsck/util.c:72
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -3151,43 +3225,43 @@ msgstr ""
"%s: ********** VARNING: Filsystemet har fortfarande fel **********\n"
"\n"
-#: e2fsck/unix.c:1648
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
-msgstr "när kontrollsummeinformation för blockgrupp sattes"
+msgstr "när kontrollsummeinformation för blockgrupp sattes"
-#: e2fsck/util.c:160 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "yYjJ"
-#: e2fsck/util.c:161
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:175
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<j>"
-#: e2fsck/util.c:177
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:179
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (j/n)"
-#: e2fsck/util.c:194
+#: e2fsck/util.c:223
msgid "cancelled!\n"
-msgstr "inställd!\n"
+msgstr "inställd!\n"
-#: e2fsck/util.c:209
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "ja\n"
-#: e2fsck/util.c:211
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "nej\n"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3196,7 +3270,7 @@ msgstr ""
"%s? nej\n"
"\n"
-#: e2fsck/util.c:225
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3205,38 +3279,38 @@ msgstr ""
"%s? ja\n"
"\n"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "yes"
msgstr "ja"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "no"
msgstr "nej"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
-msgstr "e2fsck_read_bitmaps: ogiltiga bitkarteblock för %s"
+msgstr "e2fsck_read_bitmaps: ogiltiga bitkarteblock för %s"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
-msgstr "läser inod- och blockbitkartor"
+msgstr "läser inod- och blockbitkartor"
-#: e2fsck/util.c:253
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
-msgstr "vid upprepat försök att läsa bitkarta för %s"
+msgstr "vid upprepat försök att läsa bitkarta för %s"
-#: e2fsck/util.c:265
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "skiver block- och inodsbitkartor"
-#: e2fsck/util.c:270
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
-msgstr "vid omskrivning av block- och inodsbitkartor för %s"
+msgstr "vid omskrivning av block- och inodsbitkartor för %s"
-#: e2fsck/util.c:282
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3246,244 +3320,256 @@ msgid ""
msgstr ""
"\n"
"\n"
-"%s: OVÄNTAD INKONSEKVENS; KÖR fsck MANUELLT.\n"
+"%s: OVÄNTAD INKONSEKVENS; KÖR fsck MANUELLT.\n"
"\t(d.v.s., utan flaggorna -a eller -p)\n"
-#: e2fsck/util.c:363
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
-msgstr "Använt minne: %lu k/%lu k (%lu k/%lu k), "
+msgstr "Använt minne: %lu k/%lu k (%lu k/%lu k), "
-#: e2fsck/util.c:367
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
-msgstr "Använt minne: %lu, "
+msgstr "Använt minne: %lu, "
-#: e2fsck/util.c:374
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "tid: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:379
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
-msgstr "förfluten tid: %6.3f\n"
+msgstr "förfluten tid: %6.3f\n"
-#: e2fsck/util.c:413 e2fsck/util.c:427
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
-msgstr "när inod %lu i %s lästes"
+msgstr "när inod %lu i %s lästes"
-#: e2fsck/util.c:441 e2fsck/util.c:454
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
-msgstr "när inod %lu i %s skrevs"
+msgstr "när inod %lu i %s skrevs"
-#: e2fsck/util.c:603
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
-msgstr "vid allokering av nollställningsbuffert"
+msgstr "vid allokering av nollställningsbuffert"
-#: e2fsck/util.c:755
-msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
-msgstr "OVÄNTAD INKONSISTENS: filsystemet modifieras medan fsck körs.\n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr "OVÄNTAD INKONSISTENS: filsystemet modifieras medan fsck körs.\n"
#: misc/badblocks.c:69
msgid "done \n"
msgstr "klar \n"
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-"Användning: %s [-b blockstorlek] [-i infil] [-o utfile] [-svwnf]\n"
-" [-c block_åt_gången] [-d fördröjningsfaktor mellan läsningar]\n"
-" [-e max_dåliga_block] [-p antal_pass]\n"
-" [-t testmönster [-t testmönster [...]]]\n"
-" enhet [sista_block [första_block]]\n"
+"Användning: %s [-b blockstorlek] [-i infil] [-o utfile] [-svwnf]\n"
+" [-c block_åt_gången] [-d fördröjningsfaktor mellan läsningar]\n"
+" [-e max_dåliga_block] [-p antal_pass]\n"
+" [-t testmönster [-t testmönster [...]]]\n"
+" enhet [sista_block [första_block]]\n"
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-"%s: Flaggorna -n och -w är ömsesidigt uteslutande.\n"
+"%s: Flaggorna -n och -w är ömsesidigt uteslutande.\n"
"\n"
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
-msgstr "%6.2f %% klar, %s har gått. (%d/%d/%d fel)"
+msgstr "%6.2f %% klar, %s har gått. (%d/%d/%d fel)"
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
-msgstr "Testar med slumpmönster: "
+msgstr "Testar med slumpmönster: "
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
-msgstr "Testar med mönster 0x"
+msgstr "Testar med mönster 0x"
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
-msgstr "vid sökning"
+msgstr "vid sökning"
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
-msgstr "Underligt värde (%ld) i do_read\n"
+msgstr "Underligt värde (%ld) i do_read\n"
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "vid ext2fs_sync_device"
-#: misc/badblocks.c:489 misc/badblocks.c:750
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
-msgstr "vid början av iteration över lista av dåliga block"
+msgstr "vid början av iteration över lista av dåliga block"
-#: misc/badblocks.c:503 misc/badblocks.c:603 misc/badblocks.c:760
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "vid allokering av buffertar"
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Kontrollerar block %lu till %lu\n"
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
-msgstr "Letar efter dåliga block i skrivskyddat läge\n"
+msgstr "Letar efter dåliga block i skrivskyddat läge\n"
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
-msgstr "Letar efter dåliga block (skrivskyddad test): "
+msgstr "Letar efter dåliga block (skrivskyddad test): "
-#: misc/badblocks.c:529 misc/badblocks.c:635 misc/badblocks.c:677
-#: misc/badblocks.c:823
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
-msgstr "För många dåliga block, avbryter testet\n"
+msgstr "För många dåliga block, avbryter testet\n"
-#: misc/badblocks.c:610
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
-msgstr "Letar efter dåliga block i läs-skriv-läge\n"
+msgstr "Letar efter dåliga block i läs-skriv-läge\n"
-#: misc/badblocks.c:612 misc/badblocks.c:773
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
-msgstr "Från block %lu till %lu\n"
+msgstr "Från block %lu till %lu\n"
-#: misc/badblocks.c:667
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
-msgstr "Läser och jämför: "
+msgstr "Läser och jämför: "
-#: misc/badblocks.c:772
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
-msgstr "Letar efter dåliga block i ickeförstörande läs-skriv-läge\n"
+msgstr "Letar efter dåliga block i ickeförstörande läs-skriv-läge\n"
-#: misc/badblocks.c:778
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr "Letar efter dåliga block (ickeförstörande läs-skriv-test)\n"
+msgstr "Letar efter dåliga block (ickeförstörande läs-skriv-test)\n"
-#: misc/badblocks.c:785
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
msgstr ""
"\n"
-"Avbrott fångat, rensar upp\n"
+"Avbrott fångat, rensar upp\n"
-#: misc/badblocks.c:868
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "vid testdataskrivning, block %lu"
-#: misc/badblocks.c:989 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
-msgstr "%s är monterat, "
+msgstr "%s är monterat, "
-#: misc/badblocks.c:991
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "badblocks framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
+msgstr "badblocks framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
-#: misc/badblocks.c:996
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
-msgstr "det är inte säkert att köra badblocks!\n"
+msgstr "det är inte säkert att köra badblocks!\n"
-#: misc/badblocks.c:1001 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
-msgstr "%s används uppenbarligen av systemet; "
+msgstr "%s används uppenbarligen av systemet; "
-#: misc/badblocks.c:1004
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
-msgstr "badblocks framtvingat ändå.\n"
+msgstr "badblocks framtvingat ändå.\n"
-#: misc/badblocks.c:1024
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "ogiltig %s - %s"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
-msgstr "kunde inte allokera minne för testmönster - %s"
+msgstr "kunde inte allokera minne för testmönster - %s"
-#: misc/badblocks.c:1164
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
-msgstr "Högst ett testmönster får anges i skrivskyddat läge"
+msgstr "Högst ett testmönster får anges i skrivskyddat läge"
-#: misc/badblocks.c:1170
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
-msgstr "Slumpvis testmönster är inte tillåtet i skrivskyddat läge"
+msgstr "Slumpvis testmönster är inte tillåtet i skrivskyddat läge"
-#: misc/badblocks.c:1184
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
msgstr ""
-"Kunde inte avgöra enhetsstorlek; du måste ange\n"
+"Kunde inte avgöra enhetsstorlek; du måste ange\n"
"storleken manuellt\n"
-#: misc/badblocks.c:1190
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
-msgstr "vid försök att avgöra enhetsstorlek"
+msgstr "vid försök att avgöra enhetsstorlek"
-#: misc/badblocks.c:1195
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "sista block"
-#: misc/badblocks.c:1201
+#: misc/badblocks.c:1206
msgid "first block"
-msgstr "första block"
+msgstr "första block"
+
+#: misc/badblocks.c:1209
+#, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "felaktigt startblock (%llu): måste vara mindre än %llu"
-#: misc/badblocks.c:1204
+#: misc/badblocks.c:1216
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
-msgstr "felaktigt startblock (%lu): måste vara mindre än %lu"
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "felaktigt startblock (%llu): måste vara ett 32-bitars värde"
-#: misc/badblocks.c:1260
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
-msgstr "när lista över dåliga block i minnet skapades"
+msgstr "när lista över dåliga block i minnet skapades"
+
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr "indatafil — felaktigt format"
-#: misc/badblocks.c:1275
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
-msgstr "när tillägg gjordes till lista i minnet över dåliga block gjordes"
+msgstr "när tillägg gjordes till lista i minnet över dåliga block gjordes"
-#: misc/badblocks.c:1299
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
-msgstr "Pass avslutat, %u dåliga block hittade. (%d/%d/%d fel)\n"
+msgstr "Pass avslutat, %u dåliga block hittade. (%d/%d/%d fel)\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Användning: %s [-RVf] [-+=AacDdeijsSu] [-v version] filer...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Användning: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] filer…\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "felaktig version - %s\n"
@@ -3491,94 +3577,97 @@ msgstr "felaktig version - %s\n"
#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
-msgstr "vid försök att ta status på %s"
+msgstr "vid försök att ta status på %s"
#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
-msgstr "vid läsning av flaggor på %s"
+msgstr "vid läsning av flaggor på %s"
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr "Att nollställa utsträckningsflaggan stöds inte på %s"
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
-msgstr "Flaggor på %s satta som "
+msgstr "Flaggor på %s satta som "
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
-msgstr "vid sättning av flaggor på %s"
+msgstr "vid sättning av flaggor på %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Version av %s satt som %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
-msgstr "vid sättning av version på %s"
+msgstr "vid sättning av version på %s"
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
-msgstr "Kunde inte allokera sökvägsvariabel i chattr_dir_proc"
+msgstr "Kunde inte allokera sökvägsvariabel i chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
-msgstr "= är inkompatibelt med - och +\n"
+msgstr "= är inkompatibelt med - och +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
-msgstr "Måste använda \"-v\", =, - eller +\n"
+msgstr "Måste använda \"-v\", =, - eller +\n"
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr "Användning: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] enhet\n"
+msgstr ""
+"Användning: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] enhet\n"
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
msgstr "block"
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
msgstr "kluster"
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Grupp %lu: (Block "
-#: misc/dumpe2fs.c:194
+#: misc/dumpe2fs.c:205
#, c-format
-msgid " Checksum 0x%04x, unused inodes %u\n"
-msgstr " Kontrollsumma 0x%04x, oanvända inoder %u\n"
+msgid " Checksum 0x%04x"
+msgstr " Kontrollsumma 0x%04x"
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr " (0x%04x FÖRVÄNTADES)"
+
+#: misc/dumpe2fs.c:208
+#, c-format
+msgid ", unused inodes %u\n"
+msgstr ", oanvända inoder %u\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %ssuperblock vid "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Primary"
-msgstr "Primärt "
+msgstr "Primärt "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Reserv"
-#: misc/dumpe2fs.c:204
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Gruppbeskrivare vid "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3586,20 +3675,19 @@ msgstr ""
"\n"
" Reserverade GDT-block vid "
-#: misc/dumpe2fs.c:215
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Gruppbeskrivare vid "
-#: misc/dumpe2fs.c:221
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Blockbitkarta vid "
-#: misc/dumpe2fs.c:225
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", Inodsbitkarta vid "
-#: misc/dumpe2fs.c:229
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3607,7 +3695,7 @@ msgstr ""
"\n"
" Inodstabell vid "
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
@@ -3616,69 +3704,77 @@ msgstr ""
"\n"
" %u fritt %s, %u fria inoder, %u kataloger%s"
-#: misc/dumpe2fs.c:242
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
-msgstr ", %u oanvända inoder\n"
+msgstr ", %u oanvända inoder\n"
-#: misc/dumpe2fs.c:245
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Fria block: "
-#: misc/dumpe2fs.c:256
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Fria inoder: "
-#: misc/dumpe2fs.c:287
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
-msgstr "vid utskrift av lista över dåliga block"
+msgstr "vid utskrift av lista över dåliga block"
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
-msgstr "Dåliga block: %u"
+msgstr "DÃ¥liga block: %u"
-#: misc/dumpe2fs.c:320 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
-msgstr "vid läsning av journalinod"
+msgstr "vid läsning av journalinod"
-#: misc/dumpe2fs.c:326
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
-msgstr "när journalinoden öppnades"
+msgstr "när journalinoden öppnades"
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
-msgstr "när journalsuperblocket lästes"
+msgstr "när journalsuperblocket lästes"
-#: misc/dumpe2fs.c:342
-#, c-format
+#: misc/dumpe2fs.c:364
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Journalsuperblockets magiska tal felaktigt!\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
msgstr "Journalfunktioner: "
-#: misc/dumpe2fs.c:355
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Journalstorlek: "
-#: misc/dumpe2fs.c:366
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
"Journal sequence: 0x%08x\n"
"Journal start: %u\n"
msgstr ""
-"Journallängd: %u\n"
+"Journallängd: %u\n"
"Journalsekvens: 0x%08x\n"
"Journalstart: %u\n"
-#: misc/dumpe2fs.c:385 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr "Journalfelnummer: %d\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
-msgstr "vid läsning av journalsuperblock"
+msgstr "vid läsning av journalsuperblock"
-#: misc/dumpe2fs.c:393
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Kunde inte hitta journalsuperblockets magiska tal"
-#: misc/dumpe2fs.c:397
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3691,33 +3787,32 @@ msgid ""
msgstr ""
"\n"
"Journalblockstorlek: %u\n"
-"Journallängd: %u\n"
-"Journalens första block: %u\n"
+"Journallängd: %u\n"
+"Journalens första block: %u\n"
"Journalsekvens: 0x%08x\n"
"Journalstart: %u\n"
-"Journalens användarantal: %u\n"
+"Journalens användarantal: %u\n"
-#: misc/dumpe2fs.c:410
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
-msgstr "Journalanvändare: %s\n"
+msgstr "Journalanvändare: %s\n"
-#: misc/dumpe2fs.c:426 misc/mke2fs.c:663 misc/tune2fs.c:1137
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
-msgstr "Kunde inte allokera minne för att tolka flaggor!\n"
+msgstr "Kunde inte allokera minne för att tolka flaggor!\n"
-#: misc/dumpe2fs.c:452
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Ogiltig superblockparameter: %s\n"
-#: misc/dumpe2fs.c:467
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Ogiltig blockstorleksparameter: %s\n"
-#: misc/dumpe2fs.c:478
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3731,118 +3826,335 @@ msgid ""
"\tblocksize=<blocksize>\n"
msgstr ""
"\n"
-"Felaktiga utökade flaggor angivna: %s\n"
+"Felaktiga utökade flaggor angivna: %s\n"
"\n"
-"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas med\n"
+"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas "
+"med\n"
"\tett likhetstecken (\"=\").\n"
"\n"
-"Giltiga utökade flaggor är:\n"
+"Giltiga utökade flaggor är:\n"
"\tsuperblock=<superblocknummer>\n"
"\tblocksize=<blockstorlek>\n"
-#: misc/dumpe2fs.c:538 misc/mke2fs.c:1521
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
-msgstr "\tAnvänder %s\n"
+msgstr "\tAnvänder %s\n"
-#: misc/dumpe2fs.c:574 misc/e2image.c:1290 misc/tune2fs.c:1923
-#: resize/main.c:310
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Kunde inte hitta giltigt filsystemssuperblock.\n"
-#: misc/dumpe2fs.c:599
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
"%s: %s: error reading bitmaps: %s\n"
msgstr ""
"\n"
-"%s: %s: fel vid läsning av bitkartor: %s\n"
+"%s: %s: fel vid läsning av bitkartor: %s\n"
-#: misc/e2image.c:87
+#: misc/e2image.c:101
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Användning: %s [-rsIQ] enhet avbildsfil\n"
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
+msgstr "Användning: %s [ -r|Q ] [ -fr ] enhet avbildsfil\n"
-#: misc/e2image.c:135
+#: misc/e2image.c:103
#, c-format
+msgid " %s -I device image-file\n"
+msgstr " %s -I enhet avbildsfil\n"
+
+#: misc/e2image.c:104
+#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+" %s -ra [ -cfnp ] [ -o källavstånd ] [ -O målavstånd ] käll-fs "
+"[ mål-fs ]\n"
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+msgid "while allocating buffer"
+msgstr "vid allokering av buffert"
+
+#: misc/e2image.c:174
+#, c-format
+msgid "Writing block %llu\n"
+msgstr "När block %llu skrevs\n"
+
+#: misc/e2image.c:188
+#, c-format
+msgid "error writing block %llu"
+msgstr "fel när block %llu skrevs"
+
+#: misc/e2image.c:191
+#, fuzzy
+msgid "error in generic_write()"
+msgstr "fel i write()"
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
-msgstr "Fel: huvudstorlek är större än wrt_size\n"
+msgstr "Fel: huvudstorlek är större än wrt_size\n"
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
msgstr "Kunde inte allokera huvudbuffert\n"
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "vid skrivning av superblock"
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "vid skrivning av inodtabell"
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "vid skrivning av blockbitkarta"
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "vid skrivning av inodbitkarta"
-#: misc/e2image.c:1322
+#: misc/e2image.c:502
+#, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Trasigt katalogblock %llu: felaktig rec_len (%d)\n"
+
+#: misc/e2image.c:514
+#, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Trasigt katalogblock %llu: felaktig name_len (%d)\n"
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%llu / %llu block (%d %%)"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr "Kopierar "
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr "Att sluta nu kommer förstöra filsystemet, avbryt igen om du är säker\n"
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr " %s återstår med %.2f MB/s"
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, c-format
+msgid "error reading block %llu"
+msgstr "fel när block %llu lästes"
+
+#: misc/e2image.c:715
+#, fuzzy, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr "%llu / %llu block (%d %%)"
+
+#: misc/e2image.c:719
+#, fuzzy, c-format
+msgid "at %.2f MB/s"
+msgstr " %s återstår med %.2f MB/s"
+
+#: misc/e2image.c:755
+msgid "while allocating l1 table"
+msgstr "när l1-tabell allokerades"
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr "när l2-cache allokerades"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+"Varning: det finns fortfarande tabeller i cachen medans cachen skrivs, data "
+"kommer gå förlorade så avbilden kommer kanse inte vara korrekt.\n"
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr "när ext2_qcow2_image allokerades"
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr "när ext2_qcow2_image initierades"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+"Programmeringsfel: multipla sekvensiella referensräknarblock skapade!\n"
+
+#: misc/e2image.c:1269
+msgid "while allocating block bitmap"
+msgstr "när blockbitkarta allokerades"
+
+#: misc/e2image.c:1278
+msgid "while allocating scramble block bitmap"
+msgstr "när förvrängd blockbitkarta allokerades"
+
+#: misc/e2image.c:1285
+msgid "Scanning inodes...\n"
+msgstr "Söker igenom inoder …\n"
+
+#: misc/e2image.c:1297
+msgid "Can't allocate block buffer"
+msgstr "Kan inte allokera en blockbuffert"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, c-format
+msgid "while iterating over inode %u"
+msgstr "vid iteration över inod %u"
+
+#: misc/e2image.c:1381
+#, fuzzy
+msgid "Raw and qcow2 images cannot be installed"
+msgstr "Raw- och qcow2-avbilder kan inte installeras"
+
+#: misc/e2image.c:1403
+msgid "error reading bitmaps"
+msgstr "fel när bitkartor lästes"
+
+#: misc/e2image.c:1415
+msgid "while opening device file"
+msgstr "när enhetsfil öppnades"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "vid skrivning av inodtabell"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr "flaggan -a kan endast användas med raw- eller QCOW2-avbilder."
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr "Avstånd är endast tillåtna med raw-avbilder."
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr "Flyttningsläge är endast tillåtet med raw-avbilder."
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr "Flyttningsläge behöver läget all data."
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr "kontrollerar om monterad"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+"\n"
+"Att köra e2image på ett filsystem monterat både för skrivning och läsning\n"
+"kan resultera i en inkonsistent avbild som inte kommer vara användbar för\n"
+"felsökningsändamål. Använd flaggan -f om du verkligen vill göra det.\n"
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr "En QCOW2-avbild kan inte skrivas till standard ut!\n"
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr "Avbilden (%s) är komprimerad\n"
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr "Avbilden (%s) är krypterad\n"
+
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr "vid försök att konvertera en qcow2-bild (%s) till en rå bild (%s)"
+msgstr "vid försök att konvertera en qcow2-bild (%s) till en rå bild (%s)"
+
+#: misc/e2image.c:1639
+msgid "The -c option only supported in raw mode\n"
+msgstr "Flaggan -c stödjs endast i raw-läge\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "Flaggan -c stödjs inte vid skrivning till standard ut\n"
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr "när check_buf allokerades"
+
+#: misc/e2image.c:1657
+msgid "The -p option only supported in raw mode\n"
+msgstr "Flaggan -p stödjs endast i raw-läge\n"
+
+#: misc/e2image.c:1667
+#, fuzzy, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr "%d block innehöll redan de data som skulle kopieras.\n"
#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
-msgstr "e2label: kan inte öppna %s\n"
+msgstr "e2label: kan inte öppna %s\n"
#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
-msgstr "e2label: kan inte söka till superblock\n"
+msgstr "e2label: kan inte söka till superblock\n"
#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
-msgstr "e2label: fel vid läsning av superblock\n"
+msgstr "e2label: fel vid läsning av superblock\n"
#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: inte ett ext2-filsystem\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2073
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
-msgstr "Varning: etikett för lång, avkortar.\n"
+msgstr "Varning: etikett för lång, avkortar.\n"
#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
-msgstr "e2label: kan inte söka till superblock igen\n"
+msgstr "e2label: kan inte söka till superblock igen\n"
#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2label: fel vid skrivning av superblock\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
-msgstr "Användning: e2label enhet [ny-etikett]\n"
+msgstr "Användning: e2label enhet [ny-etikett]\n"
#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
-msgstr "Användning: %s <transaktionsfil> <filsystem>\n"
+msgstr "Användning: %s <transaktionsfil> <filsystem>\n"
#: misc/e2undo.c:52
msgid "Failed to read the file system data \n"
-msgstr "Misslyckades att läsa filsystemdata \n"
+msgstr "Misslyckades att läsa filsystemdata \n"
#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
@@ -3852,11 +4164,11 @@ msgstr "Misslyckades med tdb_fetch %s\n"
#: misc/e2undo.c:70
#, c-format
msgid "The file system Mount time didn't match %u\n"
-msgstr "Filsystemets monterings tid stämmer inte med %u\n"
+msgstr "Filsystemets monterings tid stämmer inte med %u\n"
#: misc/e2undo.c:89
msgid "The file system UUID didn't match \n"
-msgstr "Filsystemets UUID stämmer inte med \n"
+msgstr "Filsystemets UUID stämmer inte med \n"
#: misc/e2undo.c:163
#, c-format
@@ -3866,405 +4178,455 @@ msgstr "tdb_open misslyckades %s\n"
#: misc/e2undo.c:169
#, c-format
msgid "Error while determining whether %s is mounted.\n"
-msgstr "Fel när det avgjordes om %s är monterat.\n"
+msgstr "Fel när det avgjordes om %s är monterat.\n"
#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
-msgstr "e2undo skall endast köras på omonterade filsystem\n"
+msgstr "e2undo skall endast köras på omonterade filsystem\n"
#: misc/e2undo.c:184
#, c-format
msgid "Failed to open %s\n"
-msgstr "Det gick inte att öppna öppna %s\n"
+msgstr "Det gick inte att öppna öppna %s\n"
#: misc/e2undo.c:210
#, c-format
msgid "Replayed transaction of size %zd at location %llu\n"
-msgstr "Återuppspelning av transaktion med storlek %zd på plats %llu\n"
+msgstr "Återuppspelning av transaktion med storlek %zd på plats %llu\n"
#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
msgstr "Misslyckades skriva %s\n"
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
-msgstr "VARNING: kunde inte öppna %s: %s\n"
+msgstr "VARNING: kunde inte öppna %s: %s\n"
-#: misc/fsck.c:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
-msgstr "VARNING: fel format på rad %d av %s\n"
+msgstr "VARNING: fel format på rad %d av %s\n"
-#: misc/fsck.c:371
+#: misc/fsck.c:370
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 ""
-"VARNING: Din /etc/fstab innehåller inte fsck-passnr-fältet.\n"
-"\tJag fixar mig förbi detta åt dig, men du\n"
-"\tbör rätta din /etc/fstab-fil så snart du kan.\n"
+"VARNING: Din /etc/fstab innehåller inte fsck-passnr-fältet.\n"
+"\tJag fixar mig förbi detta åt dig, men du\n"
+"\tbör rätta din /etc/fstab-fil så snart du kan.\n"
"\n"
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: inte funnen\n"
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: wait: Inga fler barnprocesser?!?\n"
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
-msgstr "Varning... %s för enhet %s avslutade med signal %d.\n"
+msgstr "Varning... %s för enhet %s avslutade med signal %d.\n"
-#: misc/fsck.c:623
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
-msgstr "%s %s: status är %x, skulle aldrig inträffa.\n"
+msgstr "%s %s: status är %x, skulle aldrig inträffa.\n"
-#: misc/fsck.c:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "Avslutade med %s (slutstatus %d)\n"
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
-msgstr "%s: Fel %d när fsck.%s kördes för %s\n"
+msgstr "%s: Fel %d när fsck.%s kördes för %s\n"
-#: misc/fsck.c:743
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
msgstr ""
-"Antingen alla eller inga av filsystemstyperna som ges till -t måste ha\n"
+"Antingen alla eller inga av filsystemstyperna som ges till -t måste ha\n"
"prefix \"no\" eller \"!\".\n"
-#: misc/fsck.c:762
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
-msgstr "Kunde inte allokera minne för filsystemtyper\n"
+msgstr "Kunde inte allokera minne för filsystemtyper\n"
-#: misc/fsck.c:885
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
-msgstr "%s: hoppar över felaktig rad i /etc/fstab: bind-montering med fsck-passnummer som inte är noll\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
+msgstr ""
+"%s: hoppar över felaktig rad i /etc/fstab: bind-montering med fsck-"
+"passnummer som inte är noll\n"
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: kan inte kontrollera %s: fsck.%s finns inte\n"
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Kontrollerar alla filsystem.\n"
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
-msgstr "--väntar-- (pass %d)\n"
+msgstr "--väntar-- (pass %d)\n"
-#: misc/fsck.c:1079
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr "Användning: fsck [-AMNPRTV] [ -C [ fh ] ] [-t fstyp] [fs-flaggor] [filsys ...]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr ""
+"Användning: fsck [-AMNPRTV] [ -C [ fh ] ] [-t fstyp] [fs-flaggor] "
+"[filsys ...]\n"
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
-msgstr "%s: för många enheter\n"
+msgstr "%s: för många enheter\n"
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
-msgstr "%s: för många argument\n"
+msgstr "%s: för många argument\n"
#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
-msgstr "Användning: %s [-RVadlv] [filer...]\n"
+msgstr "Användning: %s [-RVadlv] [filer...]\n"
#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
-msgstr "Vid läsning av flaggor på %s"
+msgstr "Vid läsning av flaggor på %s"
#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
-msgstr "Vid läsning av version på %s"
+msgstr "Vid läsning av version på %s"
-#: misc/mke2fs.c:116
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
-"Användning: %s [-c|-l filnamn] [-b blockstorlek] [-C klusterstorlek]\n"
+"Användning: %s [-c|-l filnamn] [-b blockstorlek] [-C klusterstorlek]\n"
"\t[-i byte-per-inod] [-I inodstorlek] [-J journalflaggor]\n"
-"\t[-G metagruppstorlek] [-N antal-inoder]\n"
+"\t[-G flexgruppstorlek] [-N antal-inoder]\n"
"\t[-m reservade-block-procent] [-o skapar-os]\n"
"\t[-g block-per-grupp] [-L volymetikett] [-M senast-monterad-katalog]\n"
-"\t[-O funktion[,...]] [-r fs-revision] [-E utökad-flagga[,...]]\n"
-"\t[-T fs-typ] [-U UUID] [-jnqvFKSV] enhet [blockantal]\n"
+"\t[-O funktion[,...]] [-r fs-revision] [-E utökad-flagga[,...]]\n"
+"\t[-t fs-typ] [-T användningstyp] [-U UUID] [-jnqvDFKSV] enhet [blockantal]\n"
-#: misc/mke2fs.c:218
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
-msgstr "Kör kommando: %s\n"
+msgstr "Kör kommando: %s\n"
-#: misc/mke2fs.c:222
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
-msgstr "vid försök att köra \"%s\""
+msgstr "vid försök att köra \"%s\""
-#: misc/mke2fs.c:229
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
-msgstr "vid bearbetning av lista över dåliga block från program"
+msgstr "vid bearbetning av lista över dåliga block från program"
-#: misc/mke2fs.c:256
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
-msgstr "Block %d i primär superblock-/gruppbeskrivare är felaktigt.\n"
+msgstr "Block %d i primär superblock-/gruppbeskrivare är felaktigt.\n"
-#: misc/mke2fs.c:258
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
-msgstr "Block %u till %u måste vara bra för att bygga ett filsystem.\n"
+msgstr "Block %u till %u måste vara bra för att bygga ett filsystem.\n"
-#: misc/mke2fs.c:261
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Avbryter...\n"
-#: misc/mke2fs.c:281
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tbad blocks.\n"
"\n"
msgstr ""
-"Varning: reservsuperblock-/-gruppbeskrivare vid block %u innehåller\n"
-"\tdåliga block.\n"
+"Varning: reservsuperblock-/-gruppbeskrivare vid block %u innehåller\n"
+"\tdåliga block.\n"
"\n"
-#: misc/mke2fs.c:300
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
-msgstr "vid markering av dåliga block som använda"
+msgstr "vid markering av dåliga block som använda"
-#: misc/mke2fs.c:317
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Skriver inodstabeller: "
-#: misc/mke2fs.c:338
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
-"Kunde inte skriva %d block i inodstabell som börjar vid %llu: %s\n"
+"Kunde inte skriva %d block i inodstabell som börjar vid %llu: %s\n"
-#: misc/mke2fs.c:352 misc/mke2fs.c:2170 misc/mke2fs.c:2422
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
msgstr "klar \n"
-#: misc/mke2fs.c:363
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "vid skapande av rotkatalog"
-#: misc/mke2fs.c:370
+#: misc/mke2fs.c:437
msgid "while reading root inode"
-msgstr "vid läsning av rotinod"
+msgstr "vid läsning av rotinod"
-#: misc/mke2fs.c:384
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
-msgstr "vid inställning av rotinodens ägarskap"
+msgstr "vid inställning av rotinodens ägarskap"
-#: misc/mke2fs.c:402
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "vid skapande av /lost+found"
-#: misc/mke2fs.c:409
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
-msgstr "vid sökning efter /lost+found"
+msgstr "vid sökning efter /lost+found"
-#: misc/mke2fs.c:422
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "vid utvidgning av /lost+found"
-#: misc/mke2fs.c:437
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
-msgstr "vid inställning av inod för dåliga block"
+msgstr "vid inställning av inod för dåliga block"
-#: misc/mke2fs.c:464
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
-msgstr "Slut på mine vid radering av sektorer %d-%d\n"
+msgstr "Slut på mine vid radering av sektorer %d-%d\n"
-#: misc/mke2fs.c:474
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
-msgstr "Varning: kune inte läsa block 0: %s\n"
+msgstr "Varning: kune inte läsa block 0: %s\n"
-#: misc/mke2fs.c:490
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Varning: kunde inte radera sektor %d: %s\n"
-#: misc/mke2fs.c:506
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "vid initiering av journalsuperblock"
-#: misc/mke2fs.c:514
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
-msgstr "Nollställer journalenhet: "
+msgstr "Nollställer journalenhet: "
-#: misc/mke2fs.c:526
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
-msgstr "vid nollställning av journalenhet (block %llu, antal %d)"
+msgstr "vid nollställning av journalenhet (block %llu, antal %d)"
-#: misc/mke2fs.c:544
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "vid skrivning av journalsuperblock"
-#: misc/mke2fs.c:559
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr "Ändrar storlek på filsystemet på %s till %llu (%d k) block.\n"
+
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"\n"
msgstr ""
-"varning: %llu block oanvända.\n"
+"varning: %llu block oanvända.\n"
"\n"
-#: misc/mke2fs.c:564
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Filsystemsetikett=%s\n"
-#: misc/mke2fs.c:567
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr "OS-typ: %s\n"
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Blockstorlek=%u (log=%u)\n"
-#: misc/mke2fs.c:573
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Klusterstorlek=%u (log=%u)\n"
-#: misc/mke2fs.c:577
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Fragmentstorlek=%u (log=%u)\n"
-#: misc/mke2fs.c:579
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Kliv=%u block, remsvidd=%u block\n"
-#: misc/mke2fs.c:581
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u inoder, %llu block\n"
-#: misc/mke2fs.c:583
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
-msgstr "%llu block (%2.2f%%) reserverade för superanvändaren\n"
+msgstr "%llu block (%2.2f%%) reserverade för superanvändaren\n"
-#: misc/mke2fs.c:586
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
-msgstr "Första datablock=%u\n"
+msgstr "Första datablock=%u\n"
-#: misc/mke2fs.c:588
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr "Rotkatalogägare=%u:%u\n"
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximalt antal filsystemsblock=%lu\n"
-#: misc/mke2fs.c:592
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u blockgrupper\n"
-#: misc/mke2fs.c:594
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u blockgrupp\n"
-#: misc/mke2fs.c:597
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u block per grupp, %u kluster per grupp\n"
-#: misc/mke2fs.c:600
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u block per grupp, %u fragment per grupp\n"
-#: misc/mke2fs.c:602
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u inoder per grupp\n"
-#: misc/mke2fs.c:609
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Filsystemsetikett=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
-msgstr "Superblockkopior lagrade på block: "
+msgstr "Superblockkopior lagrade på block: "
+
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr "%s förutsätter â€-O 64bitâ€\n"
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr "â€%s†mÃ¥ste komma före â€resize=%uâ€\n"
-#: misc/mke2fs.c:688 misc/tune2fs.c:1165
+#: misc/mke2fs.c:783
+#, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "Ogiltig desc_size: â€%sâ€\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "Ogiltig ny storlek: %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "Ogiltigt mmp_update_interval: %s\n"
-#: misc/mke2fs.c:702
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Ogiltig superblockparameter: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Ogiltig stride-parameter: %s\n"
-#: misc/mke2fs.c:717
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Ogiltig remsbreddsparameter: %s\n"
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
-msgstr "Ogiltig storleksändringsparameter: %s\n"
+msgstr "Ogiltig storleksändringsparameter: %s\n"
-#: misc/mke2fs.c:747
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr "Storleksändringens maximum måste vara större än filsystemets storlek.\n"
+msgstr ""
+"Storleksändringens maximum måste vara större än filsystemets storlek.\n"
-#: misc/mke2fs.c:771
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
-msgstr "Storleksändring under drift stöds inte med revision 0-filsystem\n"
+msgstr "Storleksändring under drift stöds inte med revision 0-filsystem\n"
+
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Ogiltig rotägare: â€%sâ€\n"
-#: misc/mke2fs.c:809
+#: misc/mke2fs.c:976
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Ogiltig quotatype-parameter: %s\n"
-#: misc/mke2fs.c:820
-#, c-format
+#: misc/mke2fs.c:987
+#, fuzzy, c-format
msgid ""
"\n"
"Bad option(s) specified: %s\n"
@@ -4273,11 +4635,17 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -4287,22 +4655,25 @@ msgstr ""
"\n"
"Felaktiga flaggor angivna: %s\n"
"\n"
-"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas med\n"
+"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas "
+"med\n"
"\tett likhetstecken (\"=\").\n"
"\n"
-"Giltiga utökade flaggor är:\n"
+"Giltiga utökade flaggor är:\n"
"\tstride=<RAID-datastycken per disk i block>\n"
-"\tstripe-width=<RAID-kliv · datadiskar i block>\n"
-"\tresize=<maximal storleksändringsstorlek i block>\n"
-"\tlazy_itable_init=<0 för att avaktivera, 1 för att aktivera>\n"
-"\tlazy_journal_init=<0 för att avaktivera, 1 för att aktivera>\n"
+"\tstripe-width=<RAID-kliv · datadiskar i block>\n"
+"\tresize=<maximal storleksändringsstorlek i block>\n"
+"\tlazy_itable_init=<0 för att avaktivera, 1 för att aktivera>\n"
+"\tlazy_journal_init=<0 för att avaktivera, 1 för att aktivera>\n"
+"\troot_uid=<uid för rotkatalogen>\n"
+"\troot_gid=<gid för rotkatalogen>\n"
"\ttest_fs\n"
-" discard\n"
-" nodiscard\n"
-" quotatype=<usr ELLER grp>\n"
+"\tdiscard\n"
+"\tnodiscard\n"
+"\tquotatype=<usr ELLER grp>\n"
"\n"
-#: misc/mke2fs.c:840
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4310,10 +4681,10 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Varning: RAID-remsbredd %u är inte en jämn multipel av klivet %u.\n"
+"Varning: RAID-remsbredd %u är inte en jämn multipel av klivet %u.\n"
"\n"
-#: misc/mke2fs.c:879
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4322,17 +4693,17 @@ msgstr ""
"Syntaxfel i mke2fs konfigurationsfil (%s, rad nr %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:892 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Ogiltig filsystemsflagga satt: %s\n"
-#: misc/mke2fs.c:904 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Ogiltig monteringsflagga satt: %s\n"
-#: misc/mke2fs.c:1042
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
@@ -4341,21 +4712,19 @@ msgstr ""
"\n"
"Din mke2fs.conf-fil definierar inte filsystemstypen %s.\n"
-#: misc/mke2fs.c:1046
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-"Du behöver förmodligen installera en uppdaterad mke2fs.conf-fil.\n"
+"Du behöver förmodligen installera en uppdaterad mke2fs.conf-fil.\n"
"\n"
-#: misc/mke2fs.c:1050
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr "Avbryter...\n"
-#: misc/mke2fs.c:1090
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4363,131 +4732,137 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Varning: fs_type %s är inte definierad i mke2fs.conf\n"
+"Varning: fs_type %s är inte definierad i mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1248
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
-msgstr "Kunde inte allokera minne för ny SÖKVÄG.\n"
+msgstr "Kunde inte allokera minne för ny SÖKVÄG.\n"
-#: misc/mke2fs.c:1289
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Kunde inte initiera profilen (fel: %ld).\n"
-#: misc/mke2fs.c:1329
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "felaktig blockstorlek - %s"
-#: misc/mke2fs.c:1333
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
-msgstr "Varning: blockstorlek %d är inte användbar på de flesta system.\n"
+msgstr "Varning: blockstorlek %d är inte användbar på de flesta system.\n"
-#: misc/mke2fs.c:1349
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
msgstr "felaktig klusterstorlek - %s"
-#: misc/mke2fs.c:1358
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr "â€-R†undanbedes, använd â€-E†istället"
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
-msgstr "Ogiltigt antal för block per grupp"
+msgstr "Ogiltigt antal för block per grupp"
-#: misc/mke2fs.c:1363
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
-msgstr "block per grupp måste vara en multipel av 8"
+msgstr "block per grupp måste vara en multipel av 8"
-#: misc/mke2fs.c:1371
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
-msgstr "Felaktigt tal för flex_bg-storlek"
+msgstr "Felaktigt tal för flex_bg-storlek"
-#: misc/mke2fs.c:1377
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
-msgstr "storlek på flex_bg måste vara en multipel av 2"
+msgstr "storlek på flex_bg måste vara en multipel av 2"
-#: misc/mke2fs.c:1387
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
-msgstr "ogiltig inodsförhållande %s (min %d/max %d)"
+msgstr "ogiltig inodsförhållande %s (min %d/max %d)"
-#: misc/mke2fs.c:1397
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
-msgstr "Varning: flaggan -K undanbedes och skall inte användas mera. Använd den utökade flaggan \"-E nodiscard\" istället!\n"
+msgid "invalid inode size - %s"
+msgstr "ogiltig inodsstorlek - %s"
-#: misc/mke2fs.c:1411
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+"Varning: flaggan -K undanbedes och skall inte användas mera. Använd den "
+"utökade flaggan \"-E nodiscard\" istället!\n"
+
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
-msgstr "i malloc för bad_blocks_filename"
+msgstr "i malloc för bad_blocks_filename"
-#: misc/mke2fs.c:1421
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "ogiltig procentandel reserverade block - %s"
-#: misc/mke2fs.c:1439
-#, c-format
-msgid "bad revision level - %s"
-msgstr "felaktigt versionsnivå - %s"
-
-#: misc/mke2fs.c:1451
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "ogiltig inodsstorlek - %s"
-
-#: misc/mke2fs.c:1471
+#: misc/mke2fs.c:1642
#, c-format
msgid "bad num inodes - %s"
msgstr "felaktigt antal inoder - %s"
-#: misc/mke2fs.c:1488
+#: misc/mke2fs.c:1659
+#, c-format
+msgid "bad revision level - %s"
+msgstr "felaktigt versionsnivå - %s"
+
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
-msgstr "Flaggan -t får endast anges en gång"
+msgstr "Flaggan -t får endast anges en gång"
-#: misc/mke2fs.c:1496
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
-msgstr "Flaggan -T får endast anges en gång"
+msgstr "Flaggan -T får endast anges en gång"
-#: misc/mke2fs.c:1546 misc/mke2fs.c:2490
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
-msgstr "vid försök att öppna journalenhet %s\n"
+msgstr "vid försök att öppna journalenhet %s\n"
-#: misc/mke2fs.c:1552
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
-msgstr "Journalenhetens blockstorlek (%d) mindre än minsta blockstorlek %d\n"
+msgstr "Journalenhetens blockstorlek (%d) mindre än minsta blockstorlek %d\n"
-#: misc/mke2fs.c:1558
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
-msgstr "Använder journalenhetens blockstorlek: %d\n"
+msgstr "Använder journalenhetens blockstorlek: %d\n"
-#: misc/mke2fs.c:1569
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
-msgstr "felaktiga block \"%s\" på enhet \"%s\""
+msgstr "felaktiga block \"%s\" på enhet \"%s\""
-# "Ett" för att detta sätts in i annan sträng där det föregås av "a".
-# Även "journal" kan sättas in på samma plats. Felrapporterat.
-#: misc/mke2fs.c:1579
+# "Ett" för att detta sätts in i annan sträng där det föregås av "a".
+# Även "journal" kan sättas in på samma plats. Felrapporterat.
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "ett filsystem"
-#: misc/mke2fs.c:1592 resize/main.c:379
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
-msgstr "vid försök att avgöra filsystemstorlek"
+msgstr "vid försök att avgöra filsystemstorlek"
-#: misc/mke2fs.c:1598
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
msgstr ""
-"Kunde inte avgöra enhetsstorlek; du måste ange\n"
-"storleken på filsystemet\n"
+"Kunde inte avgöra enhetsstorlek; du måste ange\n"
+"storleken på filsystemet\n"
-#: misc/mke2fs.c:1605
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4495,188 +4870,225 @@ msgid ""
"\tto re-read your partition table.\n"
msgstr ""
"Enhetsstorlek rapporterades som noll. Ogiltig partition angiven, eller\n"
-"\tpartitionstabellen var inte omläst efter att ha kört fsck, på grund\n"
-"\tav en modifierad partition används och är i bruk. Du kan behöva\n"
-"\tstarta om för att läsa om din partitionstabell.\n"
+"\tpartitionstabellen var inte omläst efter att ha kört fsck, på grund\n"
+"\tav en modifierad partition används och är i bruk. Du kan behöva\n"
+"\tstarta om för att läsa om din partitionstabell.\n"
-#: misc/mke2fs.c:1622
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
-msgstr "Filsystem större än synbar enhetsstorlek."
+msgstr "Filsystem större än synbar enhetsstorlek."
-#: misc/mke2fs.c:1642
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "Misslyckades tolka fs-typlista\n"
-#: misc/mke2fs.c:1696
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "vid försök att avgöra hårdvarusektorstorlek"
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr "vid försök att avgöra fysisk sektorstorlek"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr "när blockstorlek sattes; för liten för enheten\n"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+"Varning: angiven blockstorlek %d är mindre än enhetens fysiska sektorstorlek "
+"%d\n"
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"\tin 32 bits using a blocksize of %d.\n"
msgstr ""
-"%s: Storleken på enhet (0x%llx block) %s är för stor för att uttryckas\n"
-"\tmed 32 bitar med användning av en blockstorlek på %d.\n"
+"%s: Storleken på enhet (0x%llx block) %s är för stor för att uttryckas\n"
+"\tmed 32 bitar med användning av en blockstorlek på %d.\n"
-#: misc/mke2fs.c:1712
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
-msgstr "upplösning av fs_types för mke2fs.conf: "
+msgstr "upplösning av fs_types för mke2fs.conf: "
-#: misc/mke2fs.c:1719
-#, c-format
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
-msgstr "Filsystemsfunktioner som inte stöds med revision 0-filsystem\n"
+msgstr "Filsystemsfunktioner som inte stöds med revision 0-filsystem\n"
-#: misc/mke2fs.c:1726
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
-msgstr "Glesa superblock stöds inte med revision 0-filsystem\n"
+msgstr "Glesa superblock stöds inte med revision 0-filsystem\n"
-#: misc/mke2fs.c:1738
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
-msgstr "Journaler stöds inte med revision 0-filsystem\n"
+msgstr "Journaler stöds inte med revision 0-filsystem\n"
-#: misc/mke2fs.c:1752
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "ogiltig procentandel reserverade block - %lf"
-#: misc/mke2fs.c:1768
-#, c-format
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-"Egenskaperna resize_inode och meta_bg är inte kompatibla\n"
-"De kan inte båda aktiveras samtidigt.\n"
-
-#: misc/mke2fs.c:1785
-msgid "while trying to determine hardware sector size"
-msgstr "vid försök att avgöra hårdvarusektorstorlek"
+"Utsträckningar MÅSTE vara aktiverade på ett 64-bitars filsystem. Skicka -O "
+"extents för att rätta.\n"
-#: misc/mke2fs.c:1791
-msgid "while trying to determine physical sector size"
-msgstr "vid försök att avgöra fysisk sektorstorlek"
-
-#: misc/mke2fs.c:1824
-msgid "while setting blocksize; too small for device\n"
-msgstr "när blockstorlek sattes; för liten för enheten\n"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr "Klusterstorleken får inte vara mindre än blockstorleken.\n"
-#: misc/mke2fs.c:1829
-#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr "Varning: angiven blockstorlek %d är mindre än enhetens fysiska sektorstorlek %d\n"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr "att ange en klusterstorlek förutsätter funktionen bigalloc"
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
-msgstr "varning: Kan inte ta reda på enhetens geometri för %s\n"
+msgstr "varning: Kan inte ta reda på enhetens geometri för %s\n"
-#: misc/mke2fs.c:1863
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
-msgstr "%s justering är förskjuten med %lu byte.\n"
+msgstr "%s justering är förskjuten med %lu byte.\n"
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2072
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr "Detta kan medföra väldigt dåliga prestanda, (om)partitionering föreslås.\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+"Detta kan medföra väldigt dåliga prestanda, (om)partitionering föreslås.\n"
-#: misc/mke2fs.c:1876
+#: misc/mke2fs.c:2093
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
-msgstr "%d-byteblock för stort för systemet (max %d)"
+msgstr "%d-byteblock för stort för systemet (max %d)"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:2097
#, c-format
-msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr "Varning: %d-byteblock för stort för systemet (max %d), tvingas fortsätta\n"
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Varning: %d-byteblock för stort för systemet (max %d), tvingas fortsätta\n"
-#: misc/mke2fs.c:1915
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr "Kan inte stödja funktionen bigalloc utan funktionen utsträckningar"
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"Egenskaperna resize_inode och meta_bg är inte kompatibla\n"
+"De kan inte båda aktiveras samtidigt.\n"
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+"\n"
+"Varning: funktionen bigalloc är fortfarande under utveckling\n"
+"Se https://ext4.wiki.kernel.org/index.php/Bigalloc för mer information\n"
+"\n"
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
-msgstr "reserverade block för storleksändring under drift stöds inte på icke-glesa filsystem"
+msgstr ""
+"reserverade block för storleksändring under drift stöds inte på icke-glesa "
+"filsystem"
-#: misc/mke2fs.c:1924
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
-msgstr "antal block per grupp utanför giltigt intervall"
+msgstr "antal block per grupp utanför giltigt intervall"
-#: misc/mke2fs.c:1939
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr "Funktionen flex_gb är inte aktiverad, så fleg_bg-storleg kan inte anges"
+msgstr ""
+"Funktionen flex_gb är inte aktiverad, så fleg_bg-storleg kan inte anges"
-#: misc/mke2fs.c:1951
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "ogiltig inodstorlek %d (min %d/max %d)"
-#: misc/mke2fs.c:1969
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
-msgstr "för många inoder (%llu), öka inodsförhållandet?"
+msgstr "för många inoder (%llu), öka inodsförhållandet?"
-#: misc/mke2fs.c:1976
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
-msgstr "för många inoder (%llu), ange < 2³² inoder"
+msgstr "för många inoder (%llu), ange < 2³² inoder"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
-"inodsstorlek (%u) · inodantal (%u) för stort för ett\n"
-"\tfilsystem med %llu block, ange högre inodsförhållande (-i)\n"
-"\teller lägre inodantal (-N).\n"
+"inodsstorlek (%u) · inodantal (%u) för stort för ett\n"
+"\tfilsystem med %llu block, ange högre inodsförhållande (-i)\n"
+"\teller lägre inodantal (-N).\n"
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Skriver över existerande filsystem, detta kan göras ogjort med kommandot:\n"
+"Skriver över existerande filsystem, detta kan göras ogjort med kommandot:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2123
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
-msgstr "vid försök att skapa en gör-ogjort-fil\n"
+msgstr "vid försök att skapa en gör-ogjort-fil\n"
-#: misc/mke2fs.c:2149
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
msgstr "Utrangerar enhetsblock: "
-#: misc/mke2fs.c:2165
+#: misc/mke2fs.c:2439
msgid "failed - "
msgstr "misslyckades - "
-#: misc/mke2fs.c:2270
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
-msgstr "vid uppsättning av superblock"
+msgstr "vid uppsättning av superblock"
-#: misc/mke2fs.c:2279
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr "Utrangering lyckades och kommer returnera 0s - hoppar över rensning av inodstabell\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+"Utrangering lyckades och kommer returnera 0s — hoppar över rensning av "
+"inodstabell\n"
-#: misc/mke2fs.c:2362
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
-msgstr "okänt os - %s"
+msgstr "okänt os - %s"
-#: misc/mke2fs.c:2414
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr "Allokerar grupptabeller: "
-#: misc/mke2fs.c:2418
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
-msgstr "vid försök att allokera filsystemstabeller"
+msgstr "vid försök att allokera filsystemstabeller"
-#: misc/mke2fs.c:2427
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
@@ -4684,71 +5096,76 @@ msgstr ""
"\n"
"\tvid konvertering av underklustrets bitkarta"
-#: misc/mke2fs.c:2459
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
-msgstr "vid nollställning av block %llu vid slutet av filsystemet"
+msgstr "vid nollställning av block %llu vid slutet av filsystemet"
-#: misc/mke2fs.c:2472
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
-msgstr "vid reservation av block för storleksändring under drift"
+msgstr "vid reservation av block för storleksändring under drift"
-# "En" för att detta sätts in i annan sträng där det föregås av "a".
-# Även "filsystem" kan sättas in på samma plats. Felrapporterat.
-#: misc/mke2fs.c:2483 misc/tune2fs.c:640
+# "En" för att detta sätts in i annan sträng där det föregås av "a".
+# Även "filsystem" kan sättas in på samma plats. Felrapporterat.
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "en journal"
-#: misc/mke2fs.c:2495
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
-msgstr "Lägger till journal till enhet %s: "
+msgstr "Lägger till journal till enhet %s: "
-#: misc/mke2fs.c:2502
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
"\twhile trying to add journal to device %s"
msgstr ""
"\n"
-"\tvid försök att lägga till journal till enhet %s"
+"\tvid försök att lägga till journal till enhet %s"
-#: misc/mke2fs.c:2507 misc/mke2fs.c:2539 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "klar\n"
-#: misc/mke2fs.c:2516
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
-msgstr "Hoppar över att skapa jornal i läget endast super\n"
+msgstr "Hoppar över att skapa jornal i läget endast super\n"
-#: misc/mke2fs.c:2527
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Skapar journal (%u block): "
-#: misc/mke2fs.c:2546 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tvid försök att skapa journal"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
"\n"
-"Fel vid aktivering av funktionen för skydd mot flerfaldig montering."
+"Fel vid aktivering av funktionen för skydd mot flerfaldig montering."
-#: misc/mke2fs.c:2551
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr "Skydd mot flerfaldig montering är aktiverat med uppdateringsintervall %d sekunder.\n"
+msgstr ""
+"Skydd mot flerfaldig montering är aktiverat med uppdateringsintervall %d "
+"sekunder.\n"
-#: misc/mke2fs.c:2564
-#, c-format
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
-msgstr "Skriver superblock och filsystemsbokföringsinformation: "
+msgstr "Skriver superblock och filsystemsbokföringsinformation: "
-#: misc/mke2fs.c:2571
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4756,8 +5173,7 @@ msgstr ""
"\n"
"Varning, hade problem att skriva ut superblock."
-#: misc/mke2fs.c:2573
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4766,9 +5182,8 @@ msgstr ""
"\n"
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
-msgstr "Användning: mklost+found\n"
+msgstr "Användning: mklost+found\n"
#: misc/partinfo.c:41
#, c-format
@@ -4779,233 +5194,247 @@ msgid ""
"For example: %s /dev/hda\n"
"\n"
msgstr ""
-"Användning: %s enhet...\n"
+"Användning: %s enhet...\n"
"\n"
-"Skriv ut partitionsinformationen för varje angiven enhet.\n"
+"Skriv ut partitionsinformationen för varje angiven enhet.\n"
"Till exempel: %s /dev/hda\n"
"\n"
#: misc/partinfo.c:51
#, c-format
msgid "Cannot open %s: %s"
-msgstr "Kan inte öppna %s: %s"
+msgstr "Kan inte öppna %s: %s"
#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
-msgstr "Kan inte få geometrin för %s: %s"
+msgstr "Kan inte få geometrin för %s: %s"
#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
-msgstr "Kan inte få storlek av %s: %s"
+msgstr "Kan inte få storlek av %s: %s"
#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s: h=%3d s=%3d c=%4d start=%8d storlek=%8lu slut=%8d\n"
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
-msgstr "Kör e2fsck på filsystemet.\n"
+msgstr "Kör e2fsck på filsystemet.\n"
-#: misc/tune2fs.c:116
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-"Användning: %s [-c max_antal_monteringar] [-e felbeteende] [-g grupp]\n"
+"Användning: %s [-c max_antal_monteringar] [-e felbeteende] [-g grupp]\n"
"\t[-i intervall[d|m|w]] [-j] [-J journalflaggor] [-l]\n"
"\t[-m reserverade_block_procent] [-o [^]monteringsflaggor[,...]]\n"
"\t[-p mmp_uppdateringsintervall] [-r antal_reserverade_block]\n"
-"\t[-u användare] [-C antal_monteringar] [-L volymetikett]\n"
+"\t[-u användare] [-C antal_monteringar] [-L volymetikett]\n"
"\t[-M senast_monterad_katalog] [-O [^]funktion[,...]]\n"
-"\t[-E utökad-flagga[,...]] [-T senaste_kontrolltid] [-U UUID]\n"
+"\t[-Q kvotalternativ]\n"
+"\t[-E utökad-flagga[,...]] [-T senaste_kontrolltid] [-U UUID]\n"
"\t[ -I ny_inodstorlek ] enhet\n"
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
-msgstr "vid försök att öppna extern journal"
+msgstr "vid försök att öppna extern journal"
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
-msgstr "%s är inte en journalenhet.\n"
+msgstr "%s är inte en journalenhet.\n"
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Journalsuperblock inte funnet!\n"
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
-msgstr "Filsystems UUID inte funnet på journalenhet.\n"
+msgstr "Filsystems UUID inte funnet på journalenhet.\n"
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
msgstr ""
"Kan inte hitta journalenheten. Den togs INTE bort.\n"
-"Använd flaggan -f för att ta bort en saknad journalenhet.\n"
+"Använd flaggan -f för att ta bort en saknad journalenhet.\n"
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Journal borttagen\n"
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
-msgstr "vid läsning av bitkartor"
+msgstr "vid läsning av bitkartor"
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
-msgstr "vid nollställning av journalinod"
+msgstr "vid nollställning av journalinod"
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "vid skrivning av journalinod"
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
-msgstr "(och starta om efteråt!)\n"
+msgstr "(och starta om efteråt!)\n"
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr "Nollställning av filsystemsfunktion \"%s\" stöds inte.\n"
+msgstr "Nollställning av filsystemsfunktion \"%s\" stöds inte.\n"
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
-msgstr "Att sätta filsystemsfunktion \"%s\" stöds inte.\n"
+msgstr "Att sätta filsystemsfunktion \"%s\" stöds inte.\n"
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-"Flaggan has_journal får endast nollställas när filsystemet är\n"
-"omonterat eller monterat enbart för läsning.\n"
+"Flaggan has_journal får endast nollställas när filsystemet är\n"
+"omonterat eller monterat enbart för läsning.\n"
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
msgstr ""
-"Flaggan needs_recovery är satt. Kör e2fsck före flaggan has_journal\n"
-"nollställs.\n"
+"Flaggan needs_recovery är satt. Kör e2fsck före flaggan has_journal\n"
+"nollställs.\n"
+
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Att ändra inodsstorlek stöds inte för filsystem med funktionen flex_bg\n"
+"aktiverad.\n"
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
"read-only.\n"
msgstr ""
-"Funktionen för skydd mot flerfaldig montering\n"
-"kan inte sättas på om filsystemet är monterat\n"
+"Funktionen för skydd mot flerfaldig montering\n"
+"kan inte sättas på om filsystemet är monterat\n"
"eller skrivskyddat.\n"
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr "Skydd mot flerfaldig montering har aktiverats med uppdateringsintervallet %d s.\n"
+msgstr ""
+"Skydd mot flerfaldig montering har aktiverats med uppdateringsintervallet %d "
+"s.\n"
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
msgstr ""
-"Funktionen för skydd mot flerfaldig montering kan inte\n"
-"avaktiveras om filsystemet är skrivskyddat.\n"
+"Funktionen för skydd mot flerfaldig montering kan inte\n"
+"avaktiveras om filsystemet är skrivskyddat.\n"
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
-msgstr "Fel vid läsning av bitkartor\n"
+msgstr "Fel vid läsning av bitkartor\n"
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr "Magiskt tal i MMP-block stämmer inte. förväntat: %x, faktiskt: %x\n"
+msgstr "Magiskt tal i MMP-block stämmer inte. förväntat: %x, faktiskt: %x\n"
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
-msgstr "vid läsning av MMP-block."
+msgstr "vid läsning av MMP-block."
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-"Att nollställa flaggan flex_bg skulle få filsystemet att bli\n"
+"Att nollställa flaggan flex_bg skulle få filsystemet att bli\n"
"inkonsistent.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-"Flaggan huge_file får endast nollställas när filsystemet är\n"
-"omonterat eller monterat enbart för läsning.\n"
+"Flaggan huge_file får endast nollställas när filsystemet är\n"
+"omonterat eller monterat enbart för läsning.\n"
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
"\n"
-"Varning: flaggan \"^quota\" åsidosätter \"-Q\"-argument.\n"
+"Varning: flaggan \"^quota\" åsidosätter \"-Q\"-argument.\n"
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Filsystemet har redan en journal.\n"
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
"\twhile trying to open journal on %s\n"
msgstr ""
"\n"
-"\tvid försök att öppna journal på %s\n"
+"\tvid försök att öppna journal på %s\n"
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
-msgstr "Skapar journal på enhet %s: "
+msgstr "Skapar journal på enhet %s: "
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
-msgstr "vid tillägg av filsystem till journal på %s"
+msgstr "vid tillägg av filsystem till journal på %s"
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Skapar journalinod: "
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
msgstr ""
"\n"
-"\tvid försök att skapa journalfil"
+"\tvid försök att skapa journalfil"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
-msgstr "Kunde inte allokera minne för att tolka kvotflaggor!\n"
+msgstr "Kunde inte allokera minne för att tolka kvotflaggor!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
@@ -5014,104 +5443,109 @@ msgstr ""
"\n"
"Felaktigt kvotalternativ angivet.\n"
"\n"
-"Följande giltiga kvotalternativ finns (skicka dem separerade med kommatecken):\n"
+"Följande giltiga kvotalternativ finns (skicka dem separerade med "
+"kommatecken):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Kunde inte tolka datum-/tidsangivelse: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "felaktigt antal monteringar - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "felaktigt felbeteende - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "felaktigt gid/gruppnamn - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "felaktigt intervall - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "felaktig andel reserverade block - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
-msgstr "-o får endast anges en gång"
+msgstr "-o får endast anges en gång"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
-msgstr "-O får endast anges en gång"
+msgstr "-O får endast anges en gång"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "felaktigt antal reserverade block - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
-msgstr "felagtigt uid/användarnamn - %s"
+msgstr "felagtigt uid/användarnamn - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "felaktig inodsstorlek - %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
-msgstr "Inodsstorlek måste vara en multipel av två- %s"
+msgstr "Inodsstorlek måste vara en multipel av två- %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
-msgstr "mmp_update_interval är för stort: %lu\n"
+msgstr "mmp_update_interval är för stort: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] "Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu sekund\n"
-msgstr[1] "Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu sekunder\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] ""
+"Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu "
+"sekund\n"
+msgstr[1] ""
+"Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu "
+"sekunder\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Ogiltig RAID-kliv: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Ogiltig RAID-remsbredd: %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Ogiltig hash-algoritm: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
-msgstr "Sätter standardhashalgoritm till %s (%d)\n"
+msgstr "Sätter standardhashalgoritm till %s (%d)\n"
-#: misc/tune2fs.c:1257
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -5131,135 +5565,141 @@ msgstr ""
"\n"
"Felaktiga flaggor angivna.\n"
"\n"
-"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas med\n"
+"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas "
+"med\n"
"\tett likhetstecken (\"=\").\n"
"\n"
-"Giltiga utökade flaggor är:\n"
+"Giltiga utökade flaggor är:\n"
"\tclear_mmp\n"
"\thash_alg=<hash-algoritm>\n"
-" mount_opts=<utökade standardmonteringsflaggor>\n"
+" mount_opts=<utökade standardmonteringsflaggor>\n"
"\tstride=<RAID-styckestorlek per disk i block>\n"
-"\tstripe_width=<RAID-kliv·datadiskar i block>\n"
+"\tstripe_width=<RAID-kliv·datadiskar i block>\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
-msgstr "Misslyckades att läsa inodsbitkarta\n"
+msgstr "Misslyckades att läsa inodsbitkarta\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
-msgstr "Misslyckades att läsa blockbitkarta\n"
+msgstr "Misslyckades att läsa blockbitkarta\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "block att flytta"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr "Kunde inte allokera blockbitkarta när inodsstorleken ökades\n"
+msgstr "Kunde inte allokera blockbitkarta när inodsstorleken ökades\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
-msgstr "Inte tillräckligt med utrymme för att öka inodsstorleken \n"
+msgstr "Inte tillräckligt med utrymme för att öka inodsstorleken \n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
-msgstr "Misslyckades omlokalisera block under storleksändring av inoder \n"
+msgstr "Misslyckades omlokalisera block under storleksändring av inoder \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
-"Fel när storleken på inoder ändrades.\n"
-"Kör e2undo för att göra filsystemsändringarna ogjorda. \n"
+"Fel när storleken på inoder ändrades.\n"
+"Kör e2undo för att göra filsystemsändringarna ogjorda. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
-msgstr "Kunde inte allokera minne för tdb-filnamn\n"
+msgstr "Kunde inte allokera minne för tdb-filnamn\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
-msgstr "vid försök att ta bort %s"
+msgstr "vid försök att ta bort %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"För att göra tune2fs-operationen ogjord, kör kommandot\n"
+"För att göra tune2fs-operationen ogjord, kör kommandot\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-"MMP-blockets magiska tal är felaktigt. Försök att rätta det genom att köra:\n"
+"MMP-blockets magiska tal är felaktigt. Försök att rätta det genom att "
+"köra:\n"
"\"e2fsck-f %s\"\n"
-#: misc/tune2fs.c:1936
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
-msgstr "Inodsstorleken är redan %lu\n"
+msgstr "Inodsstorleken är redan %lu\n"
+
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
+msgstr "Att krympa inodsstorleken stödjs inte\n"
-#: misc/tune2fs.c:1942
+#: misc/tune2fs.c:1987
#, c-format
-msgid "Shrinking the inode size is not supported\n"
-msgstr "Att krympa inodsstorleken stöds inte.\n"
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "Ogiltig inodstorlek %lu (max %d)\n"
-#: misc/tune2fs.c:1989
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
-msgstr "Sätter max antal monteringar till %d\n"
+msgstr "Sätter max antal monteringar till %d\n"
-#: misc/tune2fs.c:1995
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
-msgstr "Sätter aktuellt antal monteringar till %d\n"
+msgstr "Sätter aktuellt antal monteringar till %d\n"
-#: misc/tune2fs.c:2000
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
-msgstr "Sätter felbeteende till %d\n"
+msgstr "Sätter felbeteende till %d\n"
-#: misc/tune2fs.c:2005
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
-msgstr "Sätter gid för reserverade block till %lu\n"
+msgstr "Sätter gid för reserverade block till %lu\n"
-#: misc/tune2fs.c:2010
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
-msgstr "intervall mellan kontroller är för stort (%lu)"
+msgstr "intervall mellan kontroller är för stort (%lu)"
-#: misc/tune2fs.c:2017
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
-msgstr "Sätter intervall mellan kontroller till %lu sekunder\n"
+msgstr "Sätter intervall mellan kontroller till %lu sekunder\n"
-#: misc/tune2fs.c:2024
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
-msgstr "Sätter procent reserverade block till %g %% (%llu block)\n"
+msgstr "Sätter procent reserverade block till %g %% (%llu block)\n"
-#: misc/tune2fs.c:2030
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
-msgstr "antal reserverade block för stort (%llu)"
+msgstr "antal reserverade block för stort (%llu)"
-#: misc/tune2fs.c:2037
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
-msgstr "Sätter antal reserverade block till %llu\n"
+msgstr "Sätter antal reserverade block till %llu\n"
-#: misc/tune2fs.c:2043
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -5267,92 +5707,147 @@ msgstr ""
"\n"
"Filsystemet har redan glesa superblock.\n"
-#: misc/tune2fs.c:2050
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Att ändra inodsstorlek stöds inte för filsystem med funktionen flex_bg\n"
+"aktiverad.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
"Sparse superblock flag set. %s"
msgstr ""
"\n"
-"Flaggan för glesa superblock satt. %s"
+"Flaggan för glesa superblock satt. %s"
-#: misc/tune2fs.c:2055
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
-"Nollställning av superflaggan gles stöds inte.\n"
+"Nollställning av superflaggan gles stöds inte.\n"
-#: misc/tune2fs.c:2063
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
-msgstr "Sätter tidpunkt för senaste filsystemskontroll till %s\n"
+msgstr "Sätter tidpunkt för senaste filsystemskontroll till %s\n"
-#: misc/tune2fs.c:2069
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
-msgstr "Sätter uid för reserverade block till %lu\n"
+msgstr "Sätter uid för reserverade block till %lu\n"
-#: misc/tune2fs.c:2101
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
-msgstr "Fel vid användning av clear_mmp. Det måste användas med -f\n"
+msgstr "Fel vid användning av clear_mmp. Det måste användas med -f\n"
-#: misc/tune2fs.c:2119
-msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr "Kvotafunktionen kan endast ändras när filsystemet är omonterat.\n"
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr "Kvotafunktionen kan endast ändras när filsystemet är omonterat.\n"
+
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr "UUID:n får endast ändras när filsystemet är omonterat.\n"
-#: misc/tune2fs.c:2152
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Ogiltigt UUID-format\n"
-#: misc/tune2fs.c:2165
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
-msgstr "Inodsstorleken får endast ändras när filsystemet är omonterat.\n"
+msgstr "Inodsstorleken får endast ändras när filsystemet är omonterat.\n"
-#: misc/tune2fs.c:2173
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-"Att ändra inodsstorlek stöds inte för filsystem med funktionen flex_bg\n"
+"Att ändra inodsstorlek stöds inte för filsystem med funktionen flex_bg\n"
"aktiverad.\n"
-#: misc/tune2fs.c:2186
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
-msgstr "Sätter inodsstorlek till %lu\n"
+msgstr "Sätter inodsstorlek till %lu\n"
-#: misc/tune2fs.c:2189
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
-msgstr "Misslyckades att ändra inodsstorlek\n"
+msgstr "Misslyckades att ändra inodsstorlek\n"
-#: misc/tune2fs.c:2200
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
-msgstr "Sätter klivstorlek till %d\n"
+msgstr "Sätter klivstorlek till %d\n"
-#: misc/tune2fs.c:2205
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
-msgstr "Sätter remsbredd till %d\n"
+msgstr "Sätter remsbredd till %d\n"
-#: misc/tune2fs.c:2212
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
-msgstr "Sätter utökade standardmonteringsflaggor till \"%s\"\n"
+msgstr "Sätter utökade standardmonteringsflaggor till \"%s\"\n"
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Fortsätt ändå? (j,n) "
-#: misc/util.c:74
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
-msgstr "Fortsätt ändå? (j,n) "
+msgstr "Fortsätt ändå? (j,n) "
+
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "felaktigt antal monteringar - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "felaktigt antal monteringar - %s"
+
+#: misc/util.c:135
+#, c-format
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
-#: misc/util.c:89
+#: misc/util.c:172
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Kunde inte ta status på %s --- %s\n"
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "normal fil"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "Kan inte öppna %s: %s"
-#: misc/util.c:92
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -5360,37 +5855,47 @@ msgstr ""
"\n"
"Enheten existerar uppenbarligen inte; angav du den korrekt?\n"
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
-msgstr "%s är inte en blockspecialenhet.\n"
+msgstr "%s är inte en blockspecialenhet.\n"
-#: misc/util.c:132
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " innehåller ett filsystem med fel"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " innehåller ett filsystem med fel"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
-msgstr "%s är hela enheten, inte bara en partition!\n"
+msgstr "%s är hela enheten, inte bara en partition!\n"
-#: misc/util.c:154
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "mke2fs framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
+msgstr "mke2fs framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
# %s kan bli "filsystem" eller "journal". Jag har lagt till "en"
-# respektive "ett" i översättningarna av dessa strängar istället.
+# respektive "ett" i översättningarna av dessa strängar istället.
# Felrapporterat.
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
-msgstr "skapar inte %s här!\n"
+msgstr "skapar inte %s här!\n"
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
-msgstr "mke2fs framtvingad ändå.\n"
+msgstr "mke2fs framtvingad ändå.\n"
-#: misc/util.c:182
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
-msgstr "Kunde inte allokera minne för att tolka journalflaggor!\n"
+msgstr "Kunde inte allokera minne för att tolka journalflaggor!\n"
-#: misc/util.c:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
@@ -5399,7 +5904,8 @@ msgstr ""
"\n"
"Kunde inte hitta journalenhet som matchar %s\n"
-#: misc/util.c:228
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5410,6 +5916,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -5418,24 +5925,24 @@ msgstr ""
"Felaktiga journalflaggor angivna.\n"
"\n"
"Journalflaggor separeras med kommatecken, och kan ta ett argument som\n"
-"\tavgränsas med ett likhetstecken (\"=\").\n"
+"\tavgränsas med ett likhetstecken (\"=\").\n"
"\n"
-"Giltiga journalflaggor är:\n"
+"Giltiga journalflaggor är:\n"
"\tsize=<journalstorlek i megabyte>\n"
"\tenhet=<journalenhet>\n"
"\n"
-"Journalstorleken måste vara mellan 1024 och 10240000 filsystemsblock.\n"
+"Journalstorleken måste vara mellan 1024 och 10240000 filsystemsblock.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
msgstr ""
"\n"
-"Filsystem för litet för en journal\n"
+"Filsystem för litet för en journal\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5443,30 +5950,30 @@ msgid ""
"between 1024 and 10240000 blocks. Aborting.\n"
msgstr ""
"\n"
-"Den begärda journalstorleken är %d block; den måste vara\n"
+"Den begärda journalstorleken är %d block; den måste vara\n"
"mellan 1024 och 10240000 block. Avbryter.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
msgstr ""
"\n"
-"Journalstorleken för stor för filsystem.\n"
+"Journalstorleken för stor för filsystem.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, 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 ""
"Detta filsystem kommer automatiskt kontrolleras var %d montering eller\n"
-"%g dag, vilket som kommer först. Använd tune2fs -c eller -i för att ändra.\n"
+"%g dag, vilket som kommer först. Använd tune2fs -c eller -i för att ändra.\n"
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr "Användning: %s [-d] [-p pid-fil] [-s uttagssökväg] [-T tidsgräns]\n"
+msgstr "Användning: %s [-d] [-p pid-fil] [-s uttagssökväg] [-T tidsgräns]\n"
#: misc/uuidd.c:50
#, c-format
@@ -5492,21 +5999,21 @@ msgstr "skriv"
#: misc/uuidd.c:199
msgid "read count"
-msgstr "läsantal"
+msgstr "läsantal"
#: misc/uuidd.c:205
msgid "bad response length"
-msgstr "felaktig svarslängd"
+msgstr "felaktig svarslängd"
#: misc/uuidd.c:270
#, c-format
msgid "uuidd daemon already running at pid %s\n"
-msgstr "uuidd-demonen som körs redan med pid %s\n"
+msgstr "uuidd-demonen som körs redan med pid %s\n"
#: misc/uuidd.c:278
#, c-format
msgid "Couldn't create unix stream socket: %s"
-msgstr "Kunde inte skapa unix-strömuttag: %s"
+msgstr "Kunde inte skapa unix-strömuttag: %s"
#: misc/uuidd.c:307
#, c-format
@@ -5516,12 +6023,12 @@ msgstr "Kunde inte binda unix-uttag %s: %s\n"
#: misc/uuidd.c:315
#, c-format
msgid "Couldn't listen on unix socket %s: %s\n"
-msgstr "Kunde inte lyssna på unix-uttag %s: %s\n"
+msgstr "Kunde inte lyssna på unix-uttag %s: %s\n"
#: misc/uuidd.c:353
#, c-format
msgid "Error reading from client, len = %d\n"
-msgstr "Fel vid läsning från klient, len = %d\n"
+msgstr "Fel vid läsning från klient, len = %d\n"
#: misc/uuidd.c:361
#, c-format
@@ -5536,14 +6043,14 @@ msgstr "Genererade tids-UUID: %s\n"
#: misc/uuidd.c:390
#, c-format
msgid "Generated random UUID: %s\n"
-msgstr "Genererade slumpmässigt UUID: %s\n"
+msgstr "Genererade slumpmässigt UUID: %s\n"
#: misc/uuidd.c:399
#, c-format
msgid "Generated time UUID %s and subsequent UUID\n"
msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
-msgstr[0] "Genererade tids-UUID %s och efterföljande UUID\n"
-msgstr[1] "Genererade tids-UUID %s och %d efterföljande UUID:er\n"
+msgstr[0] "Genererade tids-UUID %s och efterföljande UUID\n"
+msgstr[1] "Genererade tids-UUID %s och %d efterföljande UUID:er\n"
#: misc/uuidd.c:420
#, c-format
@@ -5569,331 +6076,366 @@ msgstr "Fel vid anrop av uuidd-demonen (%s): %s\n"
#, c-format
msgid "%s and subsequent UUID\n"
msgid_plural "%s and subsequent %d UUIDs\n"
-msgstr[0] "%s och efterföljande UUID\n"
-msgstr[1] "%s och efterföljande %d UUID:er\n"
+msgstr[0] "%s och efterföljande UUID\n"
+msgstr[1] "%s och efterföljande %d UUID:er\n"
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
-msgstr "Lista över UUID:er:\n"
+msgstr "Lista över UUID:er:\n"
#: misc/uuidd.c:568
#, c-format
msgid "Unexpected reply length from server %d\n"
-msgstr "Oväntad svarslängd från servern %d\n"
+msgstr "Oväntad svarslängd från servern %d\n"
#: misc/uuidd.c:585
#, c-format
msgid "Couldn't kill uuidd running at pid %d: %s\n"
-msgstr "Kunde inte döda uuidd som kör med pid %d: %s\n"
+msgstr "Kunde inte döda uuidd som kör med pid %d: %s\n"
#: misc/uuidd.c:591
#, c-format
msgid "Killed uuidd running at pid %d\n"
-msgstr "Dödade uuidd som körde med pid %d\n"
+msgstr "Dödade uuidd som körde med pid %d\n"
#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
-msgstr "Användning: %s [-r] [-t]\n"
+msgstr "Användning: %s [-r] [-t]\n"
#: resize/extent.c:202
msgid "# Extent dump:\n"
-msgstr "# Områdesdump:\n"
+msgstr "# Områdesdump:\n"
#: resize/extent.c:203
#, c-format
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
-msgstr "#\tAntal=%llu, Storlek=%llu, Markör=%llu, Sorterad=%llu\n"
+msgstr "#\tAntal=%llu, Storlek=%llu, Markör=%llu, Sorterad=%llu\n"
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Användning: %s [-d felsökningflaggor] [-f] [-F] [-M] [-P] [-p] enhet [ny_storlek]\n"
+"Användning: %s [-d felsökningflaggor] [-f] [-F] [-M] [-P] [-p] enhet "
+"[ny_storlek]\n"
"\n"
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
-msgstr "Utökar inodstabellen"
+msgstr "Utökar inodstabellen"
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Flyttar om block"
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
-msgstr "Söker igenom inodstabell"
+msgstr "Söker igenom inodstabell"
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Uppdaterar inodsreferenser"
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Flyttar inodstabell"
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
-msgstr "Okänt pass?!?"
+msgstr "Okänt pass?!?"
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
-msgstr "Börja pass %d (max = %lu)\n"
+msgstr "Börja pass %d (max = %lu)\n"
-#: resize/main.c:263
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+"\n"
+"Att ändra storlek på bigalloc-filsystem har inte testats fullt ut.\n"
+"Fortsätt på egen risk! Använd den tvingande flaggan om du vill göra\n"
+"det ändå.\n"
+"\n"
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
-msgstr "när %s öppnades"
+msgstr "när %s öppnades"
-#: resize/main.c:275
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
-msgstr "när statusinformation för %s hämtades"
-
-#: resize/main.c:336
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Kombinationen av funktionerna flex_bg och\n"
-"\t!resize_inode stöds inte av resize2fs.\n"
+msgstr "när statusinformation för %s hämtades"
-#: resize/main.c:349 resize/main.c:457
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"\n"
msgstr ""
-"Kör \"e2fsck -f %s\" först.\n"
+"Kör \"e2fsck -f %s\" först.\n"
"\n"
-#: resize/main.c:353
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
-msgstr "Uppskattad minsta storlek på filsystemet: %llu\n"
+msgstr "Uppskattad minsta storlek på filsystemet: %llu\n"
-#: resize/main.c:389
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Ogiltig ny storlek: %s\n"
-#: resize/main.c:397
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
-msgstr "Ny storlek för stor för att uttryckas i 32 bitar\n"
+msgstr "Ny storlek för stor för att uttryckas i 32 bitar\n"
-#: resize/main.c:409
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
-msgstr "Ny storlek mindre än minimum (%llu)\n"
+msgstr "Ny storlek mindre än minimum (%llu)\n"
-#: resize/main.c:415
+#: resize/main.c:408
msgid "Invalid stride length"
-msgstr "Ogiltig stride-längd"
+msgstr "Ogiltig stride-längd"
-#: resize/main.c:439
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
-"Den rymmande partitionen (eller enheten) är bara %llu (%d k) block.\n"
-"Du begärde en ny storlek på %llu block.\n"
+"Den rymmande partitionen (eller enheten) är bara %llu (%d k) block.\n"
+"Du begärde en ny storlek på %llu block.\n"
"\n"
-#: resize/main.c:446
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
-"Filsystemet är redan %llu block långt. Inget behöver göras!\n"
+"Filsystemet är redan %llu block långt. Inget behöver göras!\n"
"\n"
-#: resize/main.c:461
+#: resize/main.c:456
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
-msgstr "Ändrar storlek på filsystemet på %s till %llu (%d k) block.\n"
+msgstr "Ändrar storlek på filsystemet på %s till %llu (%d k) block.\n"
-#: resize/main.c:470
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
-msgstr "vid försök att ändra storlek på %s"
+msgstr "vid försök att ändra storlek på %s"
-#: resize/main.c:473
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"after the aborted resize operation.\n"
msgstr ""
-"Kör \"e2fsck -fy %s\" för att laga filsystemet\n"
-"efter den avbrutna storleksändringen.\n"
+"Kör \"e2fsck -fy %s\" för att laga filsystemet\n"
+"efter den avbrutna storleksändringen.\n"
-#: resize/main.c:479
+#: resize/main.c:474
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
-"Filsystemet på %s är nu %llu block långt.\n"
+"Filsystemet på %s är nu %llu block långt.\n"
"\n"
-#: resize/main.c:494
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
-msgstr "vid försök att korta av %s"
+msgstr "vid försök att korta av %s"
+
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Kärnan stödjer inte storleksändring uppkopplat"
-#: resize/online.c:40
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr "Filsystem på %s är monterat på %s, on-line-storleksändring krävs\n"
+msgstr "Filsystem på %s är monterat på %s, on-line-storleksändring krävs\n"
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
-msgstr "Att krympa uppkopplat stödjs inte"
+msgstr "Att krympa uppkopplat stödjs inte"
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
-msgstr "Filsystemet stödjer inte storleksändring uppkopplat"
+msgstr "Filsystemet stödjer inte storleksändring uppkopplat"
+
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Inte tillräckligt med reserverade gdt-block för storleksändring"
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Kärnan stödjer inte ändring av storlek på så stora filsystem"
-#: resize/online.c:70
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
-msgstr "vid försök att öppna monteringspunkt %s"
+msgstr "vid försök att öppna monteringspunkt %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr "Gammalt gränssnitt för storleksändring begärt.\n"
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
-msgstr "Rättighet att ändra storlek på filsystem nekas"
+msgstr "Rättighet att ändra storlek på filsystem nekas"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
-msgstr "Vid kontroll av stöd för storleksändring uppkopplat"
-
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "Kärnan stödjer inte ändring av storlek på så stora filsystem"
+msgstr "Vid kontroll av stöd för storleksändring uppkopplat"
-#: resize/online.c:119
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
-msgstr "Kärnan stödjer inte storleksändring uppkopplat"
+msgstr "Kärnan stödjer inte storleksändring uppkopplat"
-#: resize/online.c:152
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr "Utför en storleksändring on-line av %s till %llu (%d k) block.\n"
+msgstr "Utför en storleksändring on-line av %s till %llu (%d k) block.\n"
-#: resize/online.c:162
+#: resize/online.c:233
msgid "While trying to extend the last group"
-msgstr "Vid försök att utöka den sista gruppen"
+msgstr "Vid försök att utöka den sista gruppen"
-#: resize/online.c:216
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
-msgstr "Vid försök att öppna grupp nr. %d"
+msgstr "Vid försök att öppna grupp nr. %d"
-#: resize/online.c:227
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
-msgstr "Filsystemet på %s är monterat på %s, och storleksändring on-line stöds inte på detta system.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
+msgstr ""
+"Filsystemet på %s är monterat på %s, och storleksändring on-line stöds inte "
+"på detta system.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
-msgstr "inoder (%llu) måste vara mindre än %u"
+msgstr "inoder (%llu) måste vara mindre än %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "reserverade block"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "metadatablock"
-#: resize/resize2fs.c:1735
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "metadatablock"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
-msgstr "Skulle aldrig inträffa: storleksändringsinoden trasig!\n"
+msgstr "Skulle aldrig inträffa: storleksändringsinoden trasig!\n"
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42-WIP"
-msgstr "EXT2FS-bibliotek version 1.42-WIP"
+#, fuzzy
+msgid "EXT2FS Library version 1.42.10"
+msgstr "EXT2FS-bibliotek version 1.42.9"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
-msgstr "Fel magiskt tal för ext2_filsys-post"
+msgstr "Fel magiskt tal för ext2_filsys-post"
#: lib/ext2fs/ext2_err.c:13
msgid "Wrong magic number for badblocks_list structure"
-msgstr "Fel magiskt tal för badblocks_list-post"
+msgstr "Fel magiskt tal för badblocks_list-post"
#: lib/ext2fs/ext2_err.c:14
msgid "Wrong magic number for badblocks_iterate structure"
-msgstr "Fel magiskt tal för badblocks_iterate-post"
+msgstr "Fel magiskt tal för badblocks_iterate-post"
#: lib/ext2fs/ext2_err.c:15
msgid "Wrong magic number for inode_scan structure"
-msgstr "Fel magiskt tal för inode_scan-post"
+msgstr "Fel magiskt tal för inode_scan-post"
#: lib/ext2fs/ext2_err.c:16
msgid "Wrong magic number for io_channel structure"
-msgstr "Fel magiskt tal för io_channel-post"
+msgstr "Fel magiskt tal för io_channel-post"
#: lib/ext2fs/ext2_err.c:17
msgid "Wrong magic number for unix io_channel structure"
-msgstr "Fel magiskt tal för unix-io_channel-post"
+msgstr "Fel magiskt tal för unix-io_channel-post"
#: lib/ext2fs/ext2_err.c:18
msgid "Wrong magic number for io_manager structure"
-msgstr "Fel magiskt tal för io_manager-post"
+msgstr "Fel magiskt tal för io_manager-post"
#: lib/ext2fs/ext2_err.c:19
msgid "Wrong magic number for block_bitmap structure"
-msgstr "Fel magiskt tal för block_bitmap-post"
+msgstr "Fel magiskt tal för block_bitmap-post"
#: lib/ext2fs/ext2_err.c:20
msgid "Wrong magic number for inode_bitmap structure"
-msgstr "Fel magiskt tal för inode_bitmap-post"
+msgstr "Fel magiskt tal för inode_bitmap-post"
#: lib/ext2fs/ext2_err.c:21
msgid "Wrong magic number for generic_bitmap structure"
-msgstr "Fel magiskt tal för generic_bitmap-post"
+msgstr "Fel magiskt tal för generic_bitmap-post"
#: lib/ext2fs/ext2_err.c:22
msgid "Wrong magic number for test io_channel structure"
-msgstr "Fel magiskt tal för test io_channel-post"
+msgstr "Fel magiskt tal för test io_channel-post"
#: lib/ext2fs/ext2_err.c:23
msgid "Wrong magic number for directory block list structure"
-msgstr "Fel magiskt tal för katalogenblocklistepost"
+msgstr "Fel magiskt tal för katalogenblocklistepost"
#: lib/ext2fs/ext2_err.c:24
msgid "Wrong magic number for icount structure"
-msgstr "Fel magiskt tal för icount-post"
+msgstr "Fel magiskt tal för icount-post"
#: lib/ext2fs/ext2_err.c:25
msgid "Wrong magic number for Powerquest io_channel structure"
-msgstr "Fel magiskt tal för PowerQuest-io_channel-post"
+msgstr "Fel magiskt tal för PowerQuest-io_channel-post"
#: lib/ext2fs/ext2_err.c:26
msgid "Wrong magic number for ext2 file structure"
-msgstr "Fel magiskt tal för ext2-filstruktur"
+msgstr "Fel magiskt tal för ext2-filstruktur"
#: lib/ext2fs/ext2_err.c:27
msgid "Wrong magic number for Ext2 Image Header"
-msgstr "Fel magiskt tal för ext2-avbildshuvud"
+msgstr "Fel magiskt tal för ext2-avbildshuvud"
#: lib/ext2fs/ext2_err.c:28
msgid "Wrong magic number for inode io_channel structure"
-msgstr "Fel magiskt tal för inods-io_channel-post"
+msgstr "Fel magiskt tal för inods-io_channel-post"
#: lib/ext2fs/ext2_err.c:29
msgid "Wrong magic number for ext4 extent handle"
-msgstr "Fel magiskt tal för ext4-utsträckningshandtag"
+msgstr "Fel magiskt tal för ext4-utsträckningshandtag"
#: lib/ext2fs/ext2_err.c:30
msgid "Bad magic number in super-block"
@@ -5901,15 +6443,15 @@ msgstr "Fel magiskt tal i superblocket"
#: lib/ext2fs/ext2_err.c:31
msgid "Filesystem revision too high"
-msgstr "Filesystemversionen är för hög"
+msgstr "Filesystemversionen är för hög"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Försök att skriva till ett filsystem öppnat skrivskyddat"
+msgstr "Försök att skriva till ett filsystem öppnat skrivskyddat"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
-msgstr "Kan inte läsa gruppbeskrivare"
+msgstr "Kan inte läsa gruppbeskrivare"
#: lib/ext2fs/ext2_err.c:34
msgid "Can't write group descriptors"
@@ -5917,15 +6459,15 @@ msgstr "Kan inte skriva gruppbeskrivare"
#: lib/ext2fs/ext2_err.c:35
msgid "Corrupt group descriptor: bad block for block bitmap"
-msgstr "Trasig gruppbeskrivare: felaktigt block för blockbitkarta"
+msgstr "Trasig gruppbeskrivare: felaktigt block för blockbitkarta"
#: lib/ext2fs/ext2_err.c:36
msgid "Corrupt group descriptor: bad block for inode bitmap"
-msgstr "Trasig gruppbeskrivare: felaktigt block för inodsbitkarta"
+msgstr "Trasig gruppbeskrivare: felaktigt block för inodsbitkarta"
#: lib/ext2fs/ext2_err.c:37
msgid "Corrupt group descriptor: bad block for inode table"
-msgstr "Trasig gruppbeskrivare: dåligt block för inodstabell"
+msgstr "Trasig gruppbeskrivare: dåligt block för inodstabell"
#: lib/ext2fs/ext2_err.c:38
msgid "Can't write an inode bitmap"
@@ -5933,15 +6475,15 @@ msgstr "Kan inte skriva en inodsbitkarta"
#: lib/ext2fs/ext2_err.c:39
msgid "Can't read an inode bitmap"
-msgstr "Kan inte läsa en inodsbitkarta"
+msgstr "Kan inte läsa en inodsbitkarta"
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
+msgid "Can't write a block bitmap"
msgstr "Kan inte skriva en blockbitkarta"
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
-msgstr "Kan inte läsa en blockbitkarta"
+msgid "Can't read a block bitmap"
+msgstr "Kan inte läsa en blockbitkarta"
#: lib/ext2fs/ext2_err.c:42
msgid "Can't write an inode table"
@@ -5949,15 +6491,15 @@ msgstr "Kan inte skriva en inodstabell"
#: lib/ext2fs/ext2_err.c:43
msgid "Can't read an inode table"
-msgstr "Kan inte läsa en inodstabell"
+msgstr "Kan inte läsa en inodstabell"
#: lib/ext2fs/ext2_err.c:44
msgid "Can't read next inode"
-msgstr "Kan inte läsa nästa inod"
+msgstr "Kan inte läsa nästa inod"
#: lib/ext2fs/ext2_err.c:45
msgid "Filesystem has unexpected block size"
-msgstr "Filsystemet har oväntad blockstorlek."
+msgstr "Filsystemet har oväntad blockstorlek."
#: lib/ext2fs/ext2_err.c:46
msgid "EXT2 directory corrupted"
@@ -5965,11 +6507,12 @@ msgstr "EXT2-katalog skadad"
#: lib/ext2fs/ext2_err.c:47
msgid "Attempt to read block from filesystem resulted in short read"
-msgstr "Försök att läsa block från filsystemet resulterade i en kort läsning"
+msgstr "Försök att läsa block från filsystemet resulterade i en kort läsning"
#: lib/ext2fs/ext2_err.c:48
msgid "Attempt to write block to filesystem resulted in short write"
-msgstr "Försök att skriva block till filsystemet resulterade i en kort skrivning"
+msgstr ""
+"Försök att skriva block till filsystemet resulterade i en kort skrivning"
#: lib/ext2fs/ext2_err.c:49
msgid "No free space in the directory"
@@ -5977,19 +6520,19 @@ msgstr "Inget ledigt utrymme i katalogen"
#: lib/ext2fs/ext2_err.c:50
msgid "Inode bitmap not loaded"
-msgstr "Inodsbitkartan inte inläst"
+msgstr "Inodsbitkartan inte inläst"
#: lib/ext2fs/ext2_err.c:51
msgid "Block bitmap not loaded"
-msgstr "Blockbitkartan inte inläst"
+msgstr "Blockbitkartan inte inläst"
#: lib/ext2fs/ext2_err.c:52
msgid "Illegal inode number"
-msgstr "Otillåtet inodsnummer"
+msgstr "Otillåtet inodsnummer"
#: lib/ext2fs/ext2_err.c:53
msgid "Illegal block number"
-msgstr "Otillåtet blocknummer"
+msgstr "Otillåtet blocknummer"
#: lib/ext2fs/ext2_err.c:54
msgid "Internal error in ext2fs_expand_dir"
@@ -5997,63 +6540,65 @@ msgstr "Internt fel i ext2fs_expand_dir"
#: lib/ext2fs/ext2_err.c:55
msgid "Not enough space to build proposed filesystem"
-msgstr "Inte tillräckligt med utrymme för att bygga det föreslagna filsystemet"
+msgstr "Inte tillräckligt med utrymme för att bygga det föreslagna filsystemet"
#: lib/ext2fs/ext2_err.c:56
msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
-msgstr "Otillåtet blocknummer skickat till ext2fs_mark_block_bitmap"
+msgstr "Otillåtet blocknummer skickat till ext2fs_mark_block_bitmap"
#: lib/ext2fs/ext2_err.c:57
msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
-msgstr "Otillåtet blocknummer skickat till ext2fs_unmark_block_bitmap"
+msgstr "Otillåtet blocknummer skickat till ext2fs_unmark_block_bitmap"
#: lib/ext2fs/ext2_err.c:58
msgid "Illegal block number passed to ext2fs_test_block_bitmap"
-msgstr "Otillåtet blocknummer skickat till ext2fs_test_block_bitmap"
+msgstr "Otillåtet blocknummer skickat till ext2fs_test_block_bitmap"
#: lib/ext2fs/ext2_err.c:59
msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
-msgstr "Otillåtet inodsnummer skickat till ext2fs_mark_inode_bitmap"
+msgstr "Otillåtet inodsnummer skickat till ext2fs_mark_inode_bitmap"
#: lib/ext2fs/ext2_err.c:60
msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
-msgstr "Otillåtet inodsnummer skickat till ext2fs_unmark_inode_bitmap"
+msgstr "Otillåtet inodsnummer skickat till ext2fs_unmark_inode_bitmap"
#: lib/ext2fs/ext2_err.c:61
msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
-msgstr "Otillåtet inodsnummer skickat till ext2fs_test_inode_bitmap"
+msgstr "Otillåtet inodsnummer skickat till ext2fs_test_inode_bitmap"
#: lib/ext2fs/ext2_err.c:62
msgid "Attempt to fudge end of block bitmap past the real end"
-msgstr "Försök att fuska till slutet av blockbitkartan bortom det riktiga slutet"
+msgstr ""
+"Försök att fuska till slutet av blockbitkartan bortom det riktiga slutet"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr "Försök att fuska till slutet av inodsbitkartan bortom det riktiga slutet"
+msgstr ""
+"Försök att fuska till slutet av inodsbitkartan bortom det riktiga slutet"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
-msgstr "Otillåtet indirektblock hittat"
+msgstr "Otillåtet indirektblock hittat"
#: lib/ext2fs/ext2_err.c:65
msgid "Illegal doubly indirect block found"
-msgstr "Otillåtet dubbelt indirektblock hittat"
+msgstr "Otillåtet dubbelt indirektblock hittat"
#: lib/ext2fs/ext2_err.c:66
msgid "Illegal triply indirect block found"
-msgstr "Otillåtet trippelt indirektblock hittat"
+msgstr "Otillåtet trippelt indirektblock hittat"
#: lib/ext2fs/ext2_err.c:67
msgid "Block bitmaps are not the same"
-msgstr "Blockbitkartorna är inte desamma"
+msgstr "Blockbitkartorna är inte desamma"
#: lib/ext2fs/ext2_err.c:68
msgid "Inode bitmaps are not the same"
-msgstr "Inodsbitkartorna är inte desamma"
+msgstr "Inodsbitkartorna är inte desamma"
#: lib/ext2fs/ext2_err.c:69
msgid "Illegal or malformed device name"
-msgstr "Otillåtet eller felformat enhetsnamn"
+msgstr "Otillåtet eller felformat enhetsnamn"
#: lib/ext2fs/ext2_err.c:70
msgid "A block group is missing an inode table"
@@ -6061,43 +6606,43 @@ msgstr "En blockgrupp saknar en inodstabell"
#: lib/ext2fs/ext2_err.c:71
msgid "The ext2 superblock is corrupt"
-msgstr "Ext2-superblocket är skadat"
+msgstr "Ext2-superblocket är skadat"
#: lib/ext2fs/ext2_err.c:72
msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
-msgstr "Otillåtet generiskt bittal skickat till ext2fs_mark_generic_bitmap"
+msgstr "Otillåtet generiskt bittal skickat till ext2fs_mark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:73
msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
-msgstr "Otillåtet generiskt bittal skickat till ext2fs_unmark_generic_bitmap"
+msgstr "Otillåtet generiskt bittal skickat till ext2fs_unmark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:74
msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
-msgstr "Otillåtet generiskt bittal skickat till ext2fs_test_generic_bitmap"
+msgstr "Otillåtet generiskt bittal skickat till ext2fs_test_generic_bitmap"
#: lib/ext2fs/ext2_err.c:75
msgid "Too many symbolic links encountered."
-msgstr "Alltför många symboliska länkar påträffade."
+msgstr "Alltför många symboliska länkar påträffade."
#: lib/ext2fs/ext2_err.c:76
msgid "The callback function will not handle this case"
-msgstr "Återanropsfunktionen kommer inte att hantera detta fall"
+msgstr "Ã…teranropsfunktionen kommer inte att hantera detta fall"
#: lib/ext2fs/ext2_err.c:77
msgid "The inode is from a bad block in the inode table"
-msgstr "Inoden är från ett dåligt block i inodstabellen"
+msgstr "Inoden är från ett dåligt block i inodstabellen"
#: lib/ext2fs/ext2_err.c:78
msgid "Filesystem has unsupported feature(s)"
-msgstr "Filsystemet har funktioner som inte stödjs"
+msgstr "Filsystemet har funktioner som inte stödjs"
#: lib/ext2fs/ext2_err.c:79
msgid "Filesystem has unsupported read-only feature(s)"
-msgstr "Filsystemet har endast-läsbart-funktioner som inte stödjs"
+msgstr "Filsystemet har endast-läsbart-funktioner som inte stödjs"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr "IO-kanalen misslyckades söka vid läsning eller skrivning"
+msgstr "IO-kanalen misslyckades söka vid läsning eller skrivning"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
@@ -6117,11 +6662,11 @@ msgstr "Kunde inte allokera inoder i ext2-filsystem"
#: lib/ext2fs/ext2_err.c:85
msgid "Ext2 inode is not a directory"
-msgstr "Ext2-inod är inte en katalog"
+msgstr "Ext2-inod är inte en katalog"
#: lib/ext2fs/ext2_err.c:86
msgid "Too many references in table"
-msgstr "För många referenser i tabellen"
+msgstr "För många referenser i tabellen"
#: lib/ext2fs/ext2_err.c:87
msgid "File not found by ext2_lookup"
@@ -6129,7 +6674,7 @@ msgstr "Filen hittades inte av ext2_lookup"
#: lib/ext2fs/ext2_err.c:88
msgid "File open read-only"
-msgstr "Filen öppnas skrivskyddad"
+msgstr "Filen öppnas skrivskyddad"
#: lib/ext2fs/ext2_err.c:89
msgid "Ext2 directory block not found"
@@ -6145,15 +6690,15 @@ msgstr "Oimplementerad ext2-biblioteksfunktion"
#: lib/ext2fs/ext2_err.c:92
msgid "User cancel requested"
-msgstr "Användarannullering begärd"
+msgstr "Användarannullering begärd"
#: lib/ext2fs/ext2_err.c:93
msgid "Ext2 file too big"
-msgstr "Ext2-fil för stor"
+msgstr "Ext2-fil för stor"
#: lib/ext2fs/ext2_err.c:94
msgid "Supplied journal device not a block device"
-msgstr "Angiven journalenhet är inte en blockenhet"
+msgstr "Angiven journalenhet är inte en blockenhet"
#: lib/ext2fs/ext2_err.c:95
msgid "Journal superblock not found"
@@ -6161,15 +6706,15 @@ msgstr "Journalsuperblock inte funnet"
#: lib/ext2fs/ext2_err.c:96
msgid "Journal must be at least 1024 blocks"
-msgstr "Journalen måste vara minst 1024 block"
+msgstr "Journalen måste vara minst 1024 block"
#: lib/ext2fs/ext2_err.c:97
msgid "Unsupported journal version"
-msgstr "Ej stödd journalversion"
+msgstr "Ej stödd journalversion"
#: lib/ext2fs/ext2_err.c:98
msgid "Error loading external journal"
-msgstr "Fel vid läsning av en extern journal"
+msgstr "Fel vid läsning av en extern journal"
#: lib/ext2fs/ext2_err.c:99
msgid "Journal not found"
@@ -6177,31 +6722,31 @@ msgstr "Journalen inte funnen"
#: lib/ext2fs/ext2_err.c:100
msgid "Directory hash unsupported"
-msgstr "Katalog-hash stödjs inte"
+msgstr "Katalog-hash stödjs inte"
#: lib/ext2fs/ext2_err.c:101
msgid "Illegal extended attribute block number"
-msgstr "Ogiltigt blocknummer för utökat attribut"
+msgstr "Ogiltigt blocknummer för utökat attribut"
#: lib/ext2fs/ext2_err.c:102
msgid "Cannot create filesystem with requested number of inodes"
-msgstr "Kan inte skapa ett filsystem med begärt antal inoder"
+msgstr "Kan inte skapa ett filsystem med begärt antal inoder"
#: lib/ext2fs/ext2_err.c:103
msgid "E2image snapshot not in use"
-msgstr "E2image-ögonblicksbild används inte"
+msgstr "E2image-ögonblicksbild används inte"
#: lib/ext2fs/ext2_err.c:104
msgid "Too many reserved group descriptor blocks"
-msgstr "För många reserverade gruppidentifierarblock"
+msgstr "För många reserverade gruppidentifierarblock"
#: lib/ext2fs/ext2_err.c:105
msgid "Resize inode is corrupt"
-msgstr "Storleksändringsinoden är trasig"
+msgstr "Storleksändringsinoden är trasig"
#: lib/ext2fs/ext2_err.c:106
msgid "Tried to set block bmap with missing indirect block"
-msgstr "Försökte sätta en blockbitkarta med saknat indirektblock"
+msgstr "Försökte sätta en blockbitkarta med saknat indirektblock"
#: lib/ext2fs/ext2_err.c:107
msgid "TDB: Success"
@@ -6217,11 +6762,11 @@ msgstr "TDB: I/O-fel"
#: lib/ext2fs/ext2_err.c:110
msgid "TDB: Locking error"
-msgstr "TDB: Låsningsfel"
+msgstr "TDB: LÃ¥sningsfel"
#: lib/ext2fs/ext2_err.c:111
msgid "TDB: Out of memory"
-msgstr "TDB: Slut på minne"
+msgstr "TDB: Slut på minne"
#: lib/ext2fs/ext2_err.c:112
msgid "TDB: Record exists"
@@ -6229,7 +6774,7 @@ msgstr "TDB: Posten finns"
#: lib/ext2fs/ext2_err.c:113
msgid "TDB: Lock exists on other keys"
-msgstr "TDB: Lås finns på andra nycklar"
+msgstr "TDB: Lås finns på andra nycklar"
#: lib/ext2fs/ext2_err.c:114
msgid "TDB: Invalid parameter"
@@ -6241,31 +6786,31 @@ msgstr "TDB: Posten finns inte"
#: lib/ext2fs/ext2_err.c:116
msgid "TDB: Write not permitted"
-msgstr "TDB: Skrivning är inte tillåten"
+msgstr "TDB: Skrivning är inte tillåten"
#: lib/ext2fs/ext2_err.c:117
msgid "Ext2fs directory block list is empty"
-msgstr "Ext2fs-katalogblocklistan är tom"
+msgstr "Ext2fs-katalogblocklistan är tom"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr "Försök att ändra en blockmappning via en endast läsbar blockiterator"
+msgstr "Försök att ändra en blockmappning via en endast läsbar blockiterator"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
-msgstr "Fel magiskt nummer för sparad sökväg till ext4-utsträckning"
+msgstr "Fel magiskt nummer för sparad sökväg till ext4-utsträckning"
#: lib/ext2fs/ext2_err.c:120
msgid "Wrong magic number for 64-bit generic bitmap"
-msgstr "Fel magiskt nummer för 64-bitars allmän bitkarta"
+msgstr "Fel magiskt nummer för 64-bitars allmän bitkarta"
#: lib/ext2fs/ext2_err.c:121
msgid "Wrong magic number for 64-bit block bitmap"
-msgstr "Fel magiskt nummer för 64-bitars blockbitkarta"
+msgstr "Fel magiskt nummer för 64-bitars blockbitkarta"
#: lib/ext2fs/ext2_err.c:122
msgid "Wrong magic number for 64-bit inode bitmap"
-msgstr "Fel magiskt nummer för 64-bitars inodsbitkarta"
+msgstr "Fel magiskt nummer för 64-bitars inodsbitkarta"
#: lib/ext2fs/ext2_err.c:123
msgid "Wrong magic number --- RESERVED_13"
@@ -6297,39 +6842,39 @@ msgstr "Fel magiskt nummer --- RESERVERAT_19"
#: lib/ext2fs/ext2_err.c:130
msgid "Corrupt extent header"
-msgstr "Trasigt utsträckningshuvud"
+msgstr "Trasigt utsträckningshuvud"
#: lib/ext2fs/ext2_err.c:131
msgid "Corrupt extent index"
-msgstr "Trasigt utsträckningsindex"
+msgstr "Trasigt utsträckningsindex"
#: lib/ext2fs/ext2_err.c:132
msgid "Corrupt extent"
-msgstr "Trasig utsträckning"
+msgstr "Trasig utsträckning"
#: lib/ext2fs/ext2_err.c:133
msgid "No free space in extent map"
-msgstr "Inget fritt utrymme i utsträckningskartan"
+msgstr "Inget fritt utrymme i utsträckningskartan"
#: lib/ext2fs/ext2_err.c:134
msgid "Inode does not use extents"
-msgstr "Inoder använder inte utsträckningar"
+msgstr "Inoder använder inte utsträckningar"
#: lib/ext2fs/ext2_err.c:135
msgid "No 'next' extent"
-msgstr "Ingen \"nästa\" utsträckning"
+msgstr "Ingen \"nästa\" utsträckning"
#: lib/ext2fs/ext2_err.c:136
msgid "No 'previous' extent"
-msgstr "Ingen \"föregående\" utsträckning"
+msgstr "Ingen \"föregående\" utsträckning"
#: lib/ext2fs/ext2_err.c:137
msgid "No 'up' extent"
-msgstr "Ingen \"upp\"-utsträckning"
+msgstr "Ingen \"upp\"-utsträckning"
#: lib/ext2fs/ext2_err.c:138
msgid "No 'down' extent"
-msgstr "Ingen \"ner\"-utsträckning"
+msgstr "Ingen \"ner\"-utsträckning"
#: lib/ext2fs/ext2_err.c:139
msgid "No current node"
@@ -6337,11 +6882,11 @@ msgstr "Ingen aktuell nod"
#: lib/ext2fs/ext2_err.c:140
msgid "Ext2fs operation not supported"
-msgstr "Ext2fs-operationen stödjs inte"
+msgstr "Ext2fs-operationen stödjs inte"
#: lib/ext2fs/ext2_err.c:141
msgid "No room to insert extent in node"
-msgstr "Ingen plats att lägga in en utsträckning i noden"
+msgstr "Ingen plats att lägga in en utsträckning i noden"
#: lib/ext2fs/ext2_err.c:142
msgid "Splitting would result in empty node"
@@ -6349,27 +6894,28 @@ msgstr "Uppdelning skulle resultera i en tom nod"
#: lib/ext2fs/ext2_err.c:143
msgid "Extent not found"
-msgstr "Utsräckningen inte funnen"
+msgstr "Utsräckningen inte funnen"
#: lib/ext2fs/ext2_err.c:144
msgid "Operation not supported for inodes containing extents"
-msgstr "Operationsn stödjs inte för inoder som innehåller utsträckningar"
+msgstr "Operationsn stödjs inte för inoder som innehåller utsträckningar"
#: lib/ext2fs/ext2_err.c:145
msgid "Extent length is invalid"
-msgstr "Utsträckningslängden är felaktig"
+msgstr "Utsträckningslängden är felaktig"
#: lib/ext2fs/ext2_err.c:146
msgid "I/O Channel does not support 64-bit block numbers"
-msgstr "I/O-kanaler stödjer inte 64-bitars blocknummer"
+msgstr "I/O-kanaler stödjer inte 64-bitars blocknummer"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr "Kan inte kontrollera om filsystem är monterade för att att mtab-filen saknas"
+msgstr ""
+"Kan inte kontrollera om filsystem är monterade för att att mtab-filen saknas"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "Filsystemen är för stora för att använda gammaldags bitkartor"
+msgstr "Filsystemen är för stora för att använda gammaldags bitkartor"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
@@ -6377,27 +6923,72 @@ msgstr "MMP: ogiltigt magiskt nummer"
#: lib/ext2fs/ext2_err.c:150
msgid "MMP: device currently active"
-msgstr "MMP: enheten är för närvarande aktiv"
+msgstr "MMP: enheten är för närvarande aktiv"
#: lib/ext2fs/ext2_err.c:151
msgid "MMP: fsck being run"
-msgstr "MMP: fsck körs"
+msgstr "MMP: fsck körs"
#: lib/ext2fs/ext2_err.c:152
msgid "MMP: block number beyond filesystem range"
-msgstr "MMP: blocknummer utanför filsystemets räckvidd"
+msgstr "MMP: blocknummer utanför filsystemets räckvidd"
#: lib/ext2fs/ext2_err.c:153
msgid "MMP: undergoing an unknown operation"
-msgstr "MMP: utför en okänd operation"
+msgstr "MMP: utför en okänd operation"
#: lib/ext2fs/ext2_err.c:154
msgid "MMP: filesystem still in use"
-msgstr "MMP: filsystemet används fortfarande"
+msgstr "MMP: filsystemet används fortfarande"
#: lib/ext2fs/ext2_err.c:155
msgid "MMP: open with O_DIRECT failed"
-msgstr "MMP: öppning med O_DIRECT misslyckades"
+msgstr "MMP: öppning med O_DIRECT misslyckades"
+
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr "Storlek på blockgruppbeskrivare felaktig"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr "Inodens kontrollsumma stämmer inte med inoden"
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr "Kontrollsumman för inodsbitkartan stämmer inte med bitkartan"
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr "Utökningens blockkontrollsumma stämmer inte utökningsblocket"
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr "Katalogblocket har inte plats för kontrollsumman"
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr "Katalogblocksumman stämmer inte med katalogblocket"
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+"Kontrollsumman för blocket för utökade attribut stämmer inte med blocket"
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr "Kontrollsumman för superblocket stämmer inte med superblocket"
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr "Okänd kontrollsummealgoritm"
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr "Kontrollsumman för MMP-blocket stämmer inte med MMP-blocket"
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr "Ext2-filen finns redan"
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
@@ -6405,7 +6996,7 @@ msgstr "Profil version 0.0"
#: e2fsck/prof_err.c:12
msgid "Bad magic value in profile_node"
-msgstr "Felaktigt magiskt värde i profile_node"
+msgstr "Felaktigt magiskt värde i profile_node"
#: e2fsck/prof_err.c:13
msgid "Profile section not found"
@@ -6417,31 +7008,31 @@ msgstr "Profilrelationen inte funnen"
#: e2fsck/prof_err.c:15
msgid "Attempt to add a relation to node which is not a section"
-msgstr "Försök att lägga till en relation till en nod som inte är en sektion"
+msgstr "Försök att lägga till en relation till en nod som inte är en sektion"
#: e2fsck/prof_err.c:16
msgid "A profile section header has a non-zero value"
-msgstr "Ett huvud till en profilsektion har ett värde skilt från noll"
+msgstr "Ett huvud till en profilsektion har ett värde skilt från noll"
#: e2fsck/prof_err.c:17
msgid "Bad linked list in profile structures"
-msgstr "Felaktig länkad lista i profilstrukturer"
+msgstr "Felaktig länkad lista i profilstrukturer"
#: e2fsck/prof_err.c:18
msgid "Bad group level in profile structures"
-msgstr "Felaktig gruppnivå i profilstrukturer"
+msgstr "Felaktig gruppnivå i profilstrukturer"
#: e2fsck/prof_err.c:19
msgid "Bad parent pointer in profile structures"
-msgstr "Felaktig föräldrapekare i profilstrukturer"
+msgstr "Felaktig föräldrapekare i profilstrukturer"
#: e2fsck/prof_err.c:20
msgid "Bad magic value in profile iterator"
-msgstr "Felaktigt magiskt värde i profiliterator"
+msgstr "Felaktigt magiskt värde i profiliterator"
#: e2fsck/prof_err.c:21
msgid "Can't set value on section node"
-msgstr "Kan inte sätta värde på sektionsnod"
+msgstr "Kan inte sätta värde på sektionsnod"
#: e2fsck/prof_err.c:22
msgid "Invalid argument passed to profile library"
@@ -6449,11 +7040,11 @@ msgstr "Ogiltigt argument skickat till profilbiblioteket"
#: e2fsck/prof_err.c:23
msgid "Attempt to modify read-only profile"
-msgstr "Försök att ändra en endast läsbar profil"
+msgstr "Försök att ändra en endast läsbar profil"
#: e2fsck/prof_err.c:24
msgid "Profile section header not at top level"
-msgstr "Huvudet till profilsektionen är inte på toppnivån"
+msgstr "Huvudet till profilsektionen är inte på toppnivån"
#: e2fsck/prof_err.c:25
msgid "Syntax error in profile section header"
@@ -6473,15 +7064,15 @@ msgstr "Inledande klammer saknas i profilen"
#: e2fsck/prof_err.c:29
msgid "Bad magic value in profile_t"
-msgstr "Felaktigt magiskt värde i profile_t"
+msgstr "Felaktigt magiskt värde i profile_t"
#: e2fsck/prof_err.c:30
msgid "Bad magic value in profile_section_t"
-msgstr "Felaktigt magiskt värde i profile_section_t"
+msgstr "Felaktigt magiskt värde i profile_section_t"
#: e2fsck/prof_err.c:31
msgid "Iteration through all top level section not supported"
-msgstr "Iteration över alla toppnivåsektioner stödjs inte"
+msgstr "Iteration över alla toppnivåsektioner stödjs inte"
#: e2fsck/prof_err.c:32
msgid "Invalid profile_section object"
@@ -6493,19 +7084,19 @@ msgstr "Inga fler sektioner"
#: e2fsck/prof_err.c:34
msgid "Bad nameset passed to query routine"
-msgstr "Felaktig namnmängd skickad till frågerutinen"
+msgstr "Felaktig namnmängd skickad till frågerutinen"
#: e2fsck/prof_err.c:35
msgid "No profile file open"
-msgstr "Ingen profilfil öppen"
+msgstr "Ingen profilfil öppen"
#: e2fsck/prof_err.c:36
msgid "Bad magic value in profile_file_t"
-msgstr "Felaktigt magiskt värde i profile_file_t"
+msgstr "Felaktigt magiskt värde i profile_file_t"
#: e2fsck/prof_err.c:37
msgid "Couldn't open profile file"
-msgstr "Kunde inte öppna profilfilen"
+msgstr "Kunde inte öppna profilfilen"
#: e2fsck/prof_err.c:38
msgid "Section already exists"
@@ -6513,12 +7104,33 @@ msgstr "Sektionen finns redan"
#: e2fsck/prof_err.c:39
msgid "Invalid boolean value"
-msgstr "Ogiltigt booleskt värde"
+msgstr "Ogiltigt booleskt värde"
#: e2fsck/prof_err.c:40
msgid "Invalid integer value"
-msgstr "Ogiltigt heltalsvärde"
+msgstr "Ogiltigt heltalsvärde"
#: e2fsck/prof_err.c:41
msgid "Bad magic value in profile_file_data_t"
-msgstr "Felaktigt magiskt värde i profile_file_data_t"
+msgstr "Felaktigt magiskt värde i profile_file_data_t"
+
+#~ msgid ""
+#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/"
+#~ "s \n"
+#~ msgstr ""
+#~ "\b\b\b\b\b\b\b\bKopierade %llu / %llu block (%llu %%) på %s med %.2f MB/"
+#~ "s \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Warning: the quota feature is still under development\n"
+#~ "See https://ext4.wiki.kernel.org/index.php/Quota for more information\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Varning: funktionen kvot är fortfarande under utveckling\n"
+#~ "Se https://ext4.wiki.kernel.org/index.php/Quota för mer information\n"
+#~ "\n"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Kunde inte ta status på %s --- %s\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index 19f7ede2..ec854ab0 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index f73e370a..aa751774 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,7 +1,9 @@
# Turkish translations for e2fsprogs messages.
-# Copyright (C) 2007 Free Software Foundation, Inc.
-# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001,..., 2007.
+# Copyright (C) 2007 Theodore Tso (msgids)
+# This file is distributed under the same license as the e2fsprogs package.
#
+# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001,..., 2007.
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
#. 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
@@ -62,508 +64,528 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.40\n"
+"Project-Id-Version: e2fsprogs 1.42.8\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2009-01-26 20:41-0500\n"
-"PO-Revision-Date: 2006-04-07 00:22+0300\n"
-"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2013-11-01 22:49+0100\n"
+"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.9.1\n"
+"X-Generator: Lokalize 1.5\n"
-#: e2fsck/badblocks.c:22 misc/mke2fs.c:165
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Hatalı blok %u kapsamdışı; yoksayıldı.\n"
-#: e2fsck/badblocks.c:45
+#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
msgstr "- hatalı bloklar düğümünde doğruluk denetlenirken hata oluştu"
-#: e2fsck/badblocks.c:57
+#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
msgstr "- hatalı bloklar düğümü okunurken hata oluştu"
-#: e2fsck/badblocks.c:71 e2fsck/iscan.c:112 e2fsck/scantest.c:109
-#: e2fsck/unix.c:1037 e2fsck/unix.c:1120 misc/badblocks.c:1148
-#: misc/badblocks.c:1156 misc/badblocks.c:1170 misc/badblocks.c:1182
-#: misc/dumpe2fs.c:505 misc/e2image.c:576 misc/e2image.c:672
-#: misc/e2image.c:688 misc/mke2fs.c:181 misc/tune2fs.c:1515 resize/main.c:309
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "- %s açılmaya çalışılırken hata oluştu"
-#: e2fsck/badblocks.c:82
+#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
msgstr "- '%s' veri yolu açılmaya çalışılırken hata oluştu"
-#: e2fsck/badblocks.c:93 misc/mke2fs.c:188
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "- dosyadan hatalı bloklar listesinin okunması sırasında hata oluştu"
-#: e2fsck/badblocks.c:104
+#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
msgstr "- hatalı bloklar düğümü güncellenirken hata oluştu"
-#: e2fsck/badblocks.c:130
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr "Uyarı: Hatalı blok düğümünde %u. blok kuraldışı; temizlendi.\n"
-#: e2fsck/ehandler.c:54
+#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
msgstr "%3$s işlemi sırasında blok %1$lu okunurken hata oluştu (%2$s). "
-#: e2fsck/ehandler.c:57
+#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
msgstr "blok %lu okunurken hata oluÅŸtu (%s). "
-#: e2fsck/ehandler.c:60 e2fsck/ehandler.c:109
+#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
msgstr "Hata görmezden gelindi"
-#: e2fsck/ehandler.c:61
+#: e2fsck/ehandler.c:62
msgid "Force rewrite"
msgstr "Yeniden yaz"
-#: e2fsck/ehandler.c:103
+#: e2fsck/ehandler.c:104
#, c-format
msgid "Error writing block %lu (%s) while %s. "
msgstr "%3$s işlemi sırasında blok %1$lu yazılırken hata oluştu (%2$s). "
-#: e2fsck/ehandler.c:106
+#: e2fsck/ehandler.c:107
#, c-format
msgid "Error writing block %lu (%s). "
msgstr "%lu bloğu yazılırken hata: %s. "
-#: e2fsck/emptydir.c:56
+#: e2fsck/emptydir.c:57
msgid "empty dirblocks"
msgstr "boş dizin blokları"
-#: e2fsck/emptydir.c:61
+#: e2fsck/emptydir.c:62
msgid "empty dir map"
msgstr "boÅŸ dizin eÅŸlemi"
-#: e2fsck/emptydir.c:97
-#, fuzzy, c-format
+#: e2fsck/emptydir.c:98
+#, c-format
msgid "Empty directory block %u (#%d) in inode %u\n"
-msgstr "Düğüm %3$d deki dizin bloku %1$u (#%2$d) boş\n"
+msgstr "Empty directory block %u (#%d) in inode %u\n"
-#: e2fsck/extend.c:21
+#: e2fsck/extend.c:22
#, c-format
msgid "%s: %s filename nblocks blocksize\n"
msgstr "%s: %s dosya_ismi blok_sayısı blok_boyu\n"
-#: e2fsck/extend.c:43
+#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
msgstr "Blok sayısı kuraldışı!\n"
-#: e2fsck/extend.c:49
+#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
msgstr "Blok tamponu ayrılamadı (boyu=%d)\n"
-#: e2fsck/flushb.c:34
+#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
msgstr "Kullanımı: %s disk\n"
-#: e2fsck/flushb.c:63
+#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr "BLKFLSBUF ioctl desteklenmiyor! Tamponlar boşaltılamadı.\n"
-#: e2fsck/iscan.c:46
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Kullanımı: %s [-F] [-I düğüm_tampon_blokları] aygıt\n"
-#: e2fsck/iscan.c:83 e2fsck/unix.c:818
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
msgstr "%s temizlik için açılırken hata oluştu"
-#: e2fsck/iscan.c:88 e2fsck/unix.c:824 resize/main.c:285
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
msgstr "%s boşaltılmaya çalışılırken hata oluştu"
-#: e2fsck/iscan.c:121 e2fsck/scantest.c:116 misc/e2image.c:482
+#: e2fsck/iscan.c:110
+#, fuzzy, c-format
+msgid "while trying to open '%s'"
+msgstr "- %s açılmaya çalışılırken hata oluştu"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "düğüm taraması başlatılırken hata oluştu"
-#: e2fsck/iscan.c:129 misc/e2image.c:500
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "sonraki düğüme geçilirken hata oluştu"
-#: e2fsck/iscan.c:138
-#, fuzzy, c-format
+#: e2fsck/iscan.c:136
+#, c-format
msgid "%u inodes scanned.\n"
-msgstr "%d düğüm tarandı.\n"
+msgstr "%u düğüm tarandı.\n"
-#: e2fsck/journal.c:507
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "günlük dosyası super bloğu okunuyor\n"
-#: e2fsck/journal.c:564
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: geçerli gümlük dosyası super bloğu yok\n"
-#: e2fsck/journal.c:573
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: gümlük dosyası çok kısa\n"
-#: e2fsck/journal.c:858
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: günlük dosyasına göre kurtarılıyor\n"
-#: e2fsck/journal.c:860
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr "%s: salt-okunur durumdayken günlük dosyasına göre kurtarma yapılamaz\n"
-#: e2fsck/journal.c:881
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "%s yeniden açılmaya çalışılırken hata oluştu"
-#: e2fsck/message.c:110
+#: e2fsck/message.c:113
msgid "aextended attribute"
msgstr "aek özellik"
-#: e2fsck/message.c:111
+#: e2fsck/message.c:114
msgid "Aerror allocating"
msgstr "Aayrılırken hata oluştu"
-#: e2fsck/message.c:112
+#: e2fsck/message.c:115
msgid "bblock"
msgstr "bblok"
-#: e2fsck/message.c:113
+#: e2fsck/message.c:116
msgid "Bbitmap"
msgstr "BbiteÅŸlem"
-#: e2fsck/message.c:114
+#: e2fsck/message.c:117
msgid "ccompress"
msgstr "csıkıştırma"
-#: e2fsck/message.c:115
+#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
msgstr "Cbazı dosya sistemi blokları ile çelişiyor"
-#: e2fsck/message.c:116
+#: e2fsck/message.c:119
msgid "iinode"
msgstr "idüğüm"
-#: e2fsck/message.c:117
+#: e2fsck/message.c:120
msgid "Iillegal"
msgstr "Ikuraldışı"
-#: e2fsck/message.c:118
+#: e2fsck/message.c:121
msgid "jjournal"
msgstr "jgünlük"
-#: e2fsck/message.c:119
+#: e2fsck/message.c:122
msgid "Ddeleted"
msgstr "Dsilinen"
-#: e2fsck/message.c:120
+#: e2fsck/message.c:123
msgid "ddirectory"
msgstr "ddizin"
-#: e2fsck/message.c:121
+#: e2fsck/message.c:124
msgid "eentry"
msgstr "egirdi"
-#: e2fsck/message.c:122
+#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
msgstr "E@E"
-#: e2fsck/message.c:123
+#: e2fsck/message.c:126
msgid "ffilesystem"
msgstr "fdosya sistemi"
-#: e2fsck/message.c:124
+#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
msgstr "F%i (%Q) düğümü için"
-#: e2fsck/message.c:125
+#: e2fsck/message.c:128
msgid "ggroup"
msgstr "ggrup"
-#: e2fsck/message.c:126
+#: e2fsck/message.c:129
msgid "hHTREE @d @i"
msgstr "hHTREE dizin düğüm"
-#: e2fsck/message.c:127
+#: e2fsck/message.c:130
msgid "llost+found"
msgstr "llost+found"
-#: e2fsck/message.c:128
+#: e2fsck/message.c:131
msgid "Lis a link"
msgstr "Lbir bağdır"
-#: e2fsck/message.c:129
+#: e2fsck/message.c:132
msgid "mmultiply-claimed"
msgstr "mçok düğümlü"
-#: e2fsck/message.c:130
+#: e2fsck/message.c:133
msgid "ninvalid"
msgstr "ngeçersiz"
-#: e2fsck/message.c:131
+#: e2fsck/message.c:134
msgid "oorphaned"
msgstr "oartık"
-#: e2fsck/message.c:132
+#: e2fsck/message.c:135
msgid "pproblem in"
msgstr "psorun"
-#: e2fsck/message.c:133
+#: e2fsck/message.c:136
+msgid "qquota"
+msgstr ""
+
+#: e2fsck/message.c:137
msgid "rroot @i"
msgstr "rkök düğümü"
-#: e2fsck/message.c:134
+#: e2fsck/message.c:138
msgid "sshould be"
msgstr "solmalıydı"
-#: e2fsck/message.c:135
+#: e2fsck/message.c:139
msgid "Ssuper@b"
msgstr "Ssüper blok"
-#: e2fsck/message.c:136
+#: e2fsck/message.c:140
msgid "uunattached"
msgstr "ubağlantısız"
-#: e2fsck/message.c:137
+#: e2fsck/message.c:141
msgid "vdevice"
msgstr "vaygıt"
-#: e2fsck/message.c:138
-#, fuzzy
+#: e2fsck/message.c:142
msgid "xextent"
-msgstr "egirdi"
+msgstr ""
-#: e2fsck/message.c:139
+#: e2fsck/message.c:143
msgid "zzero-length"
msgstr "zsıfır uzunluklu"
-#: e2fsck/message.c:150
+#: e2fsck/message.c:154
msgid "<The NULL inode>"
msgstr "<NULL düğüm>"
-#: e2fsck/message.c:151
+#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
msgstr "<Hatalı bloklar düğümü>"
-#: e2fsck/message.c:153
-msgid "<The ACL index inode>"
-msgstr "<ACL indeksinin düğümü>"
+#: e2fsck/message.c:157
+#, fuzzy
+msgid "<The user quota inode>"
+msgstr "<günlük düğümü>"
-#: e2fsck/message.c:154
-msgid "<The ACL data inode>"
-msgstr "<ACL verisinin düğümü>"
+#: e2fsck/message.c:158
+#, fuzzy
+msgid "<The group quota inode>"
+msgstr "<Grup tanımlayıcı düğümü>"
-#: e2fsck/message.c:155
+#: e2fsck/message.c:159
msgid "<The boot loader inode>"
msgstr "<Önyükleyici düğümü>"
-#: e2fsck/message.c:156
+#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
msgstr "<Kurtarılan dizinin düğümü>"
-#: e2fsck/message.c:157
+#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
msgstr "<Grup tanımlayıcı düğümü>"
-#: e2fsck/message.c:158
+#: e2fsck/message.c:162
msgid "<The journal inode>"
msgstr "<günlük düğümü>"
-#: e2fsck/message.c:159
+#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
msgstr "<Yedek düğüm 9>"
-#: e2fsck/message.c:160
+#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
msgstr "<Yedek düğüm 10>"
-#: e2fsck/message.c:323
-#, fuzzy, c-format
+#: e2fsck/message.c:334
msgid "regular file"
-msgstr ""
-"\n"
-"%8d normal dosya\n"
+msgstr "olaÄŸan dosya"
-#: e2fsck/message.c:325
-#, fuzzy, c-format
+#: e2fsck/message.c:336
msgid "directory"
-msgstr "ddizin"
+msgstr "dizin"
-#: e2fsck/message.c:327
-#, fuzzy, c-format
+#: e2fsck/message.c:338
msgid "character device"
-msgstr "%8d karakter aygıtı dosyası\n"
+msgstr "karakter aygıtı"
-#: e2fsck/message.c:329
-#, fuzzy, c-format
+#: e2fsck/message.c:340
msgid "block device"
-msgstr "%8d blok aygıtı dosyası\n"
+msgstr "aygıtı engelle"
-#: e2fsck/message.c:331
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
-msgstr ""
+msgstr "isimli veri yolu"
-#: e2fsck/message.c:333
-#, fuzzy, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
-msgstr "%8d sembolik baÄŸ"
+msgstr "sembolik baÄŸ"
-#: e2fsck/message.c:335
-#, fuzzy, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
-msgstr "%8d soket\n"
+msgstr "yuva"
-#: e2fsck/message.c:337
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
+msgstr "0%o kipinde bilinmeyen dosya türü"
+
+#: e2fsck/message.c:423
+#, fuzzy
+msgid "indirect block"
+msgstr "kullanımdaki blok eşlemi"
+
+#: e2fsck/message.c:425
+msgid "double indirect block"
msgstr ""
-#: e2fsck/pass1b.c:215
+#: e2fsck/message.c:427
+#, fuzzy
+msgid "triple indirect block"
+msgstr "%u düğümünün dolaylı blokları okunuyor"
+
+#: e2fsck/message.c:429
+#, fuzzy
+msgid "translator block"
+msgstr "meta-veri blokları"
+
+#: e2fsck/message.c:431
+#, fuzzy
+msgid "block #"
+msgstr "bblok"
+
+#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
msgstr "tekrarlanan blokların düğüm eşlemi"
-#: e2fsck/pass1b.c:567 e2fsck/pass1b.c:700
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, fuzzy, c-format
-msgid "internal error: can't find dup_blk for %u\n"
+msgid "internal error: can't find dup_blk for %llu\n"
msgstr "iç hata; %u için dup_blk bulunamıyor\n"
-#: e2fsck/pass1b.c:743
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "clone_file_block işlevinden döndürüldü"
-#: e2fsck/pass1b.c:762
+#: e2fsck/pass1b.c:843
#, fuzzy, c-format
-msgid "internal error: couldn't lookup EA block record for %u"
+msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "iç hata; %u için dup_blk bulunamıyor\n"
-#: e2fsck/pass1b.c:774
-#, fuzzy, c-format
+#: e2fsck/pass1b.c:855
+#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
-msgstr "İç hata: %i için dizin bilgileri bulunamıyor.\n"
+msgstr "İç hata: %u için dizin bilgileri bulunamıyor."
-#: e2fsck/pass1.c:430 e2fsck/pass2.c:780
-#, fuzzy
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
-msgstr "%u düğümünün dolaylı blokları okunuyor"
+msgstr "blok dizini okunuyor"
-#: e2fsck/pass1.c:552
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "kullanımdaki düğüm eşlemi"
-#: e2fsck/pass1.c:561
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "dizin düğümü eşlemi"
-#: e2fsck/pass1.c:569
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "normal dosya düğümü eşlemi"
-#: e2fsck/pass1.c:576
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "kullanımdaki blok eşlemi"
-#: e2fsck/pass1.c:630
-#, fuzzy
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
-msgstr "düğüm taraması yapılıyor"
+msgstr "düğüm tarama açılıyor"
-#: e2fsck/pass1.c:654
-#, fuzzy
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
-msgstr "sonraki düğüme geçilirken hata oluştu"
+msgstr ""
-#: e2fsck/pass1.c:1122
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "1. geçiş"
-#: e2fsck/pass1.c:1181
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "%u düğümünün dolaylı blokları okunuyor"
-#: e2fsck/pass1.c:1225
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "hatalı düğüm eşlemi"
-#: e2fsck/pass1.c:1247
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "hatalı blok eşlemindeki düğüm"
-#: e2fsck/pass1.c:1267
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr "imagic düğüm eşlemi"
-#: e2fsck/pass1.c:1294
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr "tekrarlanan blokların eşlemi"
-#: e2fsck/pass1.c:1393
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "ek özellik bloğu eşlemi"
-#: e2fsck/pass1.c:2134
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr ""
-#: e2fsck/pass1.c:2449
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "blok biteÅŸlemi"
-#: e2fsck/pass1.c:2453
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "düğüm biteşlemi"
-#: e2fsck/pass1.c:2457
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "düğüm tablosu"
-#: e2fsck/pass2.c:284
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "2. geçiş"
-#: e2fsck/pass2.c:803
-#, fuzzy
+#: e2fsck/pass2.c:805
msgid "Can not continue."
-msgstr ""
-"Devam edilemiyor. çıkılıyor.\n"
-"\n"
+msgstr "Devam edilemiyor."
-#: e2fsck/pass3.c:79
+#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr "düğümleri indeksli biteşlem"
-#: e2fsck/pass3.c:90
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Doruk bellek"
-#: e2fsck/pass3.c:146
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "3. geçiş"
-#: e2fsck/pass3.c:334
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "düğüm döngüsü saptama biteşlemi"
@@ -571,183 +593,183 @@ msgstr "düğüm döngüsü saptama biteşlemi"
msgid "Pass 4"
msgstr "4. geçiş"
-#: e2fsck/pass5.c:70
+#: e2fsck/pass5.c:74
msgid "Pass 5"
msgstr "5. geçiş"
-#: e2fsck/problem.c:50
+#: e2fsck/problem.c:51
msgid "(no prompt)"
msgstr "(komut istemi yok)"
-#: e2fsck/problem.c:51
+#: e2fsck/problem.c:52
msgid "Fix"
msgstr "Düzelt"
-#: e2fsck/problem.c:52
+#: e2fsck/problem.c:53
msgid "Clear"
msgstr "Temizle"
-#: e2fsck/problem.c:53
+#: e2fsck/problem.c:54
msgid "Relocate"
msgstr "Konumlandır"
-#: e2fsck/problem.c:54
+#: e2fsck/problem.c:55
msgid "Allocate"
msgstr "Tahsis et"
-#: e2fsck/problem.c:55
+#: e2fsck/problem.c:56
msgid "Expand"
msgstr "GeniÅŸlet"
-#: e2fsck/problem.c:56
+#: e2fsck/problem.c:57
msgid "Connect to /lost+found"
msgstr "/lost+found a baÄŸlan"
-#: e2fsck/problem.c:57
+#: e2fsck/problem.c:58
msgid "Create"
msgstr "OluÅŸtur"
-#: e2fsck/problem.c:58
+#: e2fsck/problem.c:59
msgid "Salvage"
msgstr "Kurtarılacaklar"
-#: e2fsck/problem.c:59
+#: e2fsck/problem.c:60
msgid "Truncate"
msgstr "Kırp"
-#: e2fsck/problem.c:60
+#: e2fsck/problem.c:61
msgid "Clear inode"
msgstr "Düğümü temizle"
-#: e2fsck/problem.c:61
+#: e2fsck/problem.c:62
msgid "Abort"
msgstr "Vazgeç"
-#: e2fsck/problem.c:62
+#: e2fsck/problem.c:63
msgid "Split"
msgstr "Ayır"
-#: e2fsck/problem.c:63
+#: e2fsck/problem.c:64
msgid "Continue"
msgstr "Devam et"
-#: e2fsck/problem.c:64
+#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
msgstr "Çok düğümlü blokları kopyalar"
-#: e2fsck/problem.c:65
+#: e2fsck/problem.c:66
msgid "Delete file"
msgstr "Dosyayı Sil"
-#: e2fsck/problem.c:66
+#: e2fsck/problem.c:67
msgid "Suppress messages"
msgstr "Ä°letileri engelle"
-#: e2fsck/problem.c:67
+#: e2fsck/problem.c:68
msgid "Unlink"
msgstr "Bağı kaldır"
-#: e2fsck/problem.c:68
+#: e2fsck/problem.c:69
msgid "Clear HTree index"
msgstr "HTree indeksini temizle"
-#: e2fsck/problem.c:69
+#: e2fsck/problem.c:70
msgid "Recreate"
msgstr "Yeniden oluÅŸtur"
-#: e2fsck/problem.c:78
+#: e2fsck/problem.c:79
msgid "(NONE)"
msgstr "(HİÇBİRİ)"
-#: e2fsck/problem.c:79
+#: e2fsck/problem.c:80
msgid "FIXED"
msgstr "DÃœZELTÄ°LDÄ°"
-#: e2fsck/problem.c:80
+#: e2fsck/problem.c:81
msgid "CLEARED"
msgstr "TEMÄ°ZLENDÄ°"
-#: e2fsck/problem.c:81
+#: e2fsck/problem.c:82
msgid "RELOCATED"
msgstr "KONUMLANDI"
-#: e2fsck/problem.c:82
+#: e2fsck/problem.c:83
msgid "ALLOCATED"
msgstr "TAHSÄ°S EDÄ°LDÄ°"
-#: e2fsck/problem.c:83
+#: e2fsck/problem.c:84
msgid "EXPANDED"
msgstr "GENÄ°ÅžLETÄ°LDÄ°"
-#: e2fsck/problem.c:84
+#: e2fsck/problem.c:85
msgid "RECONNECTED"
msgstr "TEKRAR BAÄžLANDI"
-#: e2fsck/problem.c:85
+#: e2fsck/problem.c:86
msgid "CREATED"
msgstr "OLUÅžTURULDU"
-#: e2fsck/problem.c:86
+#: e2fsck/problem.c:87
msgid "SALVAGED"
msgstr "KURTARILABÄ°LÄ°RLER LÄ°STELENDÄ°"
-#: e2fsck/problem.c:87
+#: e2fsck/problem.c:88
msgid "TRUNCATED"
msgstr "KIRPILDI"
-#: e2fsck/problem.c:88
+#: e2fsck/problem.c:89
msgid "INODE CLEARED"
msgstr "DÜĞÜM TEMİZLENDİ"
-#: e2fsck/problem.c:89
+#: e2fsck/problem.c:90
msgid "ABORTED"
msgstr "VAZGEÇİLDİ"
-#: e2fsck/problem.c:90
+#: e2fsck/problem.c:91
msgid "SPLIT"
msgstr "AYRILDI"
-#: e2fsck/problem.c:91
+#: e2fsck/problem.c:92
msgid "CONTINUING"
msgstr "SÃœRÃœYOR"
-#: e2fsck/problem.c:92
+#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
msgstr "ÇOK DÜĞÜMLÜ BLOKLAR KOPYALANDI"
-#: e2fsck/problem.c:93
+#: e2fsck/problem.c:94
msgid "FILE DELETED"
msgstr "DOSYA SÄ°LÄ°NDÄ°"
-#: e2fsck/problem.c:94
+#: e2fsck/problem.c:95
msgid "SUPPRESSED"
msgstr "ENGELLENDÄ°"
-#: e2fsck/problem.c:95
+#: e2fsck/problem.c:96
msgid "UNLINKED"
msgstr "BAÄž KALDIRILDI"
-#: e2fsck/problem.c:96
+#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
msgstr "HTREE Ä°NDEKSÄ° TEMÄ°ZLENDÄ°"
-#: e2fsck/problem.c:97
+#: e2fsck/problem.c:98
msgid "WILL RECREATE"
msgstr "TEKRAR OLUÅžTURULACAK"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:106
+#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
msgstr "%g grubunun blok biteşlemi grup içinde değil. (blok %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:110
+#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
msgstr "%g grubunun düğüm biteşlemi grup içinde değil. (blok %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
+#: e2fsck/problem.c:116
msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
@@ -756,21 +778,25 @@ msgstr ""
"UYARI: CÄ°DDÄ° VERÄ° KAYBI OLASILIÄžI.\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
-#: e2fsck/problem.c:121
-#, c-format
+#: e2fsck/problem.c:122
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -785,7 +811,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:130
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -798,7 +824,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:137
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -809,18 +835,18 @@ msgstr ""
"farklı olması desteklenmiyor.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:144
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "Süperblok grup_başına_blok_sayısı = %b; %c olmalıydı\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:149
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "Süper blok ilk_veri_bloğu = %b; %c olmalıydı\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:154
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -828,7 +854,7 @@ msgstr ""
"Dosya sistemi bir UUID içermiyor; bir tane üretiliyor.\n"
"\n"
-#: e2fsck/problem.c:159
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -847,49 +873,49 @@ msgstr ""
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:168
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "Süperblok içinde bozukluk saptandı. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:173
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "Aygıtın fiziksel uzunluğu saptanırken hata oluştu: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:178
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "Süperblok içindeki düğüm sayısı %i; %j olmalıydı.\n"
-#: e2fsck/problem.c:182
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "Hurd, dosya türü özelliğini desteklemez.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:187
+#: e2fsck/problem.c:190
#, fuzzy, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "Süperblok hatalı ext3 günlüğü içeriyor (düğüm %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:192
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr ""
"Dış günlük çok sayıda dosya sistemi kullanıcısı içeriyor. (desteklenmiyor)\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:197
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Dış günlük bulunamıyor\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:202
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "Dış günlük hatalı süperblok içeriyor\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:207
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "Dış günlük bu dosya sistemini desteklemiyor\n"
@@ -897,7 +923,7 @@ msgstr "Dış günlük bu dosya sistemini desteklemiyor\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
+#: e2fsck/problem.c:215
#, fuzzy
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
@@ -911,80 +937,70 @@ msgstr ""
"Ayrıca, günlük süperblokunun bozuk olması da mümkün.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:220
+#: e2fsck/problem.c:223
#, fuzzy
msgid "@j @S is corrupt.\n"
msgstr "Ext3 günlüğü süperbloku bozuk.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:225
+#: e2fsck/problem.c:228
#, fuzzy, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr "ext3 kurtarma bayrağı temiz ama günlük veri içeriyor.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:230
+#: e2fsck/problem.c:233
#, fuzzy
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr "Süperblok ext3 needs_recovery bayrağı içeriyor ama günlük yok.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:235
+#: e2fsck/problem.c:238
#, fuzzy
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr "ext3 kurtarma bayrağı temiz ama günlük veri içeriyor.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:240
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Günlüğü Temizle"
-#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:245
-msgid "Run @j anyway"
-msgstr "Günlüğü yine de çalıştır"
-
-#. @-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 ""
-"Yedek süper blokda kurtarma bayrağı temiz olduğundan günlük herşeye rağmen "
-"çalışacak.\n"
+#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
+msgid "@f has feature flag(s) set, but is a revision 0 @f. "
+msgstr "dosyasisteminin özellik bayrakları etkin ama dosyasisteminin sürümü 0."
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:255
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "%s artık düğüm %i (kull_kiml=%Iu, grup_kiml=%Ig, kip=%Im, boy=%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"
+#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:258
+#, fuzzy
+msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "düğüm %i içindeki blok #%B (%b) kuraldışı.\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"
+#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
+#: e2fsck/problem.c:263
+#, fuzzy
+msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "artık düğüm %i içindeki blok #%B (%b) zaten temizlenmiş.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:270
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "süper blok içindeki artık düğüm %i kuraldışı.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:275
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "artık düğüm listesindeki düğüm %i kuraldışı\n"
-#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:280 e2fsck/problem.c:647
-msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr "dosyasisteminin özellik bayrakları etkin ama dosyasisteminin sürümü 0."
-
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:285
+#: e2fsck/problem.c:278
#, fuzzy
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr ""
@@ -992,7 +1008,7 @@ msgstr ""
"içeriyor.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:290
+#: e2fsck/problem.c:283
#, fuzzy
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr ""
@@ -1000,13 +1016,13 @@ msgstr ""
"içeriyor.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:295
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "günlük sürümü bu e2fsck tarafından desteklenmiyor.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:300
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -1017,7 +1033,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:305
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1029,7 +1045,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:310
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1039,9 +1055,21 @@ msgstr ""
"V1 günlüğü süper bloğundan sonraki alanlar temizleniyor...\n"
"\n"
+#. @-expanded: Run journal anyway
+#: e2fsck/problem.c:309
+msgid "Run @j anyway"
+msgstr "Günlüğü yine de çalıştır"
+
+#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
+#: e2fsck/problem.c:314
+msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
+msgstr ""
+"Yedek süper blokda kurtarma bayrağı temiz olduğundan günlük herşeye rağmen "
+"çalışacak.\n"
+
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:316
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1051,7 +1079,7 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:321
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1060,196 +1088,271 @@ msgstr ""
"%N değeri var; sıfır olmalıydı. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:327
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr "Resize_inode etkin değil, ama düğüm boyutlandırma sıfırdan farklı. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:332
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr "Düğüm boyutlandırma geçersiz. "
-#. @-expanded: superblock last mount time is in the future.
-#: e2fsck/problem.c:337
-msgid "@S last mount time is in the future. "
+#. @-expanded: superblock last mount time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:340
+#, fuzzy
+msgid ""
+"@S last mount time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr "Süperbloğun son bağlama zamanı gelecekte. "
-#. @-expanded: superblock last write time is in the future.
-#: e2fsck/problem.c:342
-msgid "@S last write time is in the future. "
+#. @-expanded: superblock last write time (%t,\n
+#. @-expanded: \tnow = %T) is in the future.\n
+#: e2fsck/problem.c:345
+#, fuzzy
+msgid ""
+"@S last write time (%t,\n"
+"\tnow = %T) is in the future.\n"
msgstr "Süperblokun son yazma zamanı gelecekte. "
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:346
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr "harici süperbloku %X olması gereken dosyasistemi için süperblok iması"
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:351
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
msgstr ""
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:356
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
msgstr ""
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:361
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr ""
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:366
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr ""
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:371
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr ""
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:376
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr ""
-#: e2fsck/problem.c:381
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr ""
-#: e2fsck/problem.c:385
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr ""
+#. @-expanded: superblock last mount time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set)
+#: e2fsck/problem.c:388
+msgid ""
+"@S last mount time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
+msgstr ""
+
+#. @-expanded: superblock last write time is in the future.\n
+#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
+#. @-expanded: set).
+#: e2fsck/problem.c:394
+msgid ""
+"@S last write time is in the future.\n"
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
+msgstr ""
+
+#. @-expanded: One or more block group descriptor checksums are invalid.
+#: e2fsck/problem.c:400
+msgid "One or more @b @g descriptor checksums are invalid. "
+msgstr ""
+
+#. @-expanded: Setting free inodes count to %j (was %i)\n
+#: e2fsck/problem.c:405
+#, fuzzy
+msgid "Setting free @is count to %j (was %i)\n"
+msgstr "Yedek blok sayısı %lu olarak belirleniyor\n"
+
+#. @-expanded: Setting free blocks count to %c (was %b)\n
+#: e2fsck/problem.c:410
+#, fuzzy
+msgid "Setting free @bs count to %c (was %b)\n"
+msgstr "Yedek blok sayısı %lu olarak belirleniyor\n"
+
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+#, fuzzy
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr ""
+"Günlük /%s den gizli düğüme taşınıyor.\n"
+"\n"
+
+#. @-expanded: superblock has invalid MMP block.
+#: e2fsck/problem.c:420
+#, fuzzy
+msgid "@S has invalid MMP block. "
+msgstr "blok uzunluğu hatalı - %s"
+
+#. @-expanded: superblock has invalid MMP magic.
+#: e2fsck/problem.c:425
+msgid "@S has invalid MMP magic. "
+msgstr ""
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr ""
+
+#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr ""
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
-#: e2fsck/problem.c:392
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "1. geçiş: düğümler, bloklar ve uzunluklar denetleniyor\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:396
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "Kök düğümü bir dizin değil. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:401
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr "Kök düğümü için dtime belirtilmiş (eski mke2fs'den dolayı olabilir). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:406
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "Yedek düğüm %i (%Q) hatalı kip içeriyor. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:411
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "Silinen düğüm %i sıfır dtime içeriyor. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:416
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "Düğüm %i kullanımda, ama dtime belirtilmiş. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:421
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr "Düğüm %i bir sıfır uzunluklu dizindir. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:426
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
msgstr ""
"%g grubunun %b deki blok biteşlemi diğer dosya sistemi blokları ile "
"çelişiyor.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:431
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
msgstr ""
"%g grubunun %b deki düğüm biteşlemi diğer dosya sistemi blokları ile "
"çelişiyor.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:436
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr ""
"%g grubunun %b deki düğüm tablosu diğer dosya sistemi blokları ile "
"çelişiyor.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:441
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr "%g grubunun blok biteşlemi (%b) hatalı. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:446
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr "%g grubunun düğüm biteşlemi (%b) hatalı. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:451
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "Düğüm %i düğüm uzunluğu %Is, %N olmalıydı. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:456
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "Dosya düğüm %i, blok düğümü %Ib, %N olmalıydı. "
-#. @-expanded: illegal block #%B (%b) in inode %i.
-#: e2fsck/problem.c:461
-msgid "@I @b #%B (%b) in @i %i. "
+#. @-expanded: illegal %B (%b) in inode %i.
+#: e2fsck/problem.c:516
+#, fuzzy
+msgid "@I %B (%b) in @i %i. "
msgstr "Düğüm %i içindeki blok #%B (%b) kuraldışı. "
-#. @-expanded: block #%B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:466
-msgid "@b #%B (%b) overlaps @f metadata in @i %i. "
+#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
+#: e2fsck/problem.c:521
+#, fuzzy
+msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr ""
"Düğüm %i içindeki blok #%B (%b) dosya sistemi metaverisinin üzerine "
"taşıyor. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:471
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "Düğüm %i kuraldışı blok(lar) içeriyor. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:476
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Düğüm %i içinde çok fazla kuraldışı blok.\n"
-#. @-expanded: illegal block #%B (%b) in bad block inode.
-#: e2fsck/problem.c:481
-msgid "@I @b #%B (%b) in bad @b @i. "
+#. @-expanded: illegal %B (%b) in bad block inode.
+#: e2fsck/problem.c:536
+#, fuzzy
+msgid "@I %B (%b) in bad @b @i. "
msgstr "Hatalı blok düğümü içindeki blok %B (%b) kuraldışı. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:486
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "Hatalı blok düğümü kuraldışı blok(lar) içeriyor. "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:491
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "Tekrarlanmış ya da hatalı blok kullanımda!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:496
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr "Hatalı blok %b, hatalı blok düğümü dolaylı bloğu olarak kullanılmış."
@@ -1257,7 +1360,7 @@ msgstr "Hatalı blok %b, hatalı blok düğümü dolaylı bloğu olarak kullanı
#. @-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:501
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1271,7 +1374,7 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:508
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1282,7 +1385,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:513
+#: e2fsck/problem.c:568
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"
@@ -1293,131 +1396,131 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "Birincil dosya sistemi (%b) hatalı bloklar listesinde kayıtlı.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
msgstr ""
"Birincil grup tanımlarındaki blok %b, hatalı bloklar listesinde kayıtlı\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:530
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Uyarı: %g grubunun superbloğu (%b) hatalı.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:535
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
msgstr ""
"Uyarı %g grubunun grup tanımları kopyası bir hatalı blok içeriyor (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:541
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
msgstr ""
"Programlama hatası? blok %b, hatalı blok işleminde sebepsiz olarak talep "
"edildi.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:547
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr ""
"%s için %g blok grubunda %N bitişik bloğa yer ayrılırken hata oluştu: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:552
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "%s tekrar konumlaması için blok tamponuna yer ayrılırken hata oluştu\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:557
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "%g grubunun %s %b den %c ye aktarılıyor...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "%g grubunun %s %c ye aktarılıyor...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Uyarı: %snin %b bloğu okunamadı: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:572
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Uyarı: %snin %b bloğu yazılamadı: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:577 e2fsck/problem.c:1378
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "Düğüm biteşlemi (%N) ayrılırken hata oluştu: %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:582
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "Düğüm biteşlemi (%N) ayrılırken hata oluştu: %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:587
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr "Düğüm sayısı bağ bilgisine yer ayrılırken hata oluştu: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:592
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "Dizin bloğu dizisine yer ayrılırken hata oluştu: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:597
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Düğümler (%i) taranırken hata oluştu: %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:602
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr ""
"Düğüm %i içindeki bloklar üzerinde işlemler tekrarlanırken hata oluştu: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:607
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr ""
"Düğüm sayısı bilgisi (düğüm = %i, sayısı = %N)\n"
"saklanırken hata oluştu: %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:612
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
msgstr ""
"Dizin bloğu bilgisi (düğüm = %i, blok = %b, num = %N)\n"
"saklanırken hata oluştu: %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:618
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Düğüm %i okunurken hata oluştu: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:626
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "Düğüm %i imagic bayrağı içeriyor. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:631
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1427,7 +1530,7 @@ msgstr ""
"salt-eklenir ya da değişmez bayrağı içeriyor. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:637
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr ""
@@ -1435,110 +1538,112 @@ msgstr ""
"içeriyor. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:642
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr "Özel (aygıt/soket/fifo) düğüm %i sıfırdan farklı boyutta. "
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:652
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "Günlük düğümü kullanımda değil ama veri içeriyor. "
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:657
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "Günlük dosyası normal bir dosya değil. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:662
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "Düğüm %i öksüz düğüm listesinin parçasıydı. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:668
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr "Bozuk bir artık bağlı listenin bir parçasını bulunduran düğümler. "
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:673
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "refcount veri yapısı için yer ayrılırken hata oluştu: %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:678
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr "Düğüm %i için ek özellik bloğu %b okunurken hata oluştu. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:683
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "Düğüm %i %b hatalı ek özellik bloğunu içeriyor. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:688
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "Ek özellik bloğu %b okunurken hata oluştu (%m). "
-#. @-expanded: extended attribute block %b has reference count %B, should be %N.
-#: e2fsck/problem.c:693
-msgid "@a @b %b has reference count %B, @s %N. "
+#. @-expanded: extended attribute block %b has reference count %r, should be %N.
+#: e2fsck/problem.c:748
+#, fuzzy
+msgid "@a @b %b has reference count %r, @s %N. "
msgstr "Ek özellikler bloğu %b %B başvuru sayısına sahip, %N olmalıydı. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:698
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "Ek özellik bloğu %b yazılırken hata oluştu (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:703
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr "Ek özellikler bloğu %b için h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:708
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "Ek özellikler bloğu %b ayrılırken hata. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:713
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "Ek özellik bloğu %b bozuk (tahsis çatışması). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:718
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "Ek özellikler bloğu %b bozuk (geçersiz isim). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:723
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "Ek özellikler bloğu %b bozuk (geçersiz değer). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:728
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "düğüm %i çok büyük. "
-#. @-expanded: block #%B (%b) causes directory to be too big.
-#: e2fsck/problem.c:732
-msgid "@b #%B (%b) causes @d to be too big. "
+#. @-expanded: %B (%b) causes directory to be too big.
+#: e2fsck/problem.c:787
+#, fuzzy
+msgid "%B (%b) causes @d to be too big. "
msgstr "Blok #%B (%b) çok büyük dizin oluşturuyor. "
-#. @-expanded: block #%B (%b) causes file to be too big.
-#: e2fsck/problem.c:737
-msgid "@b #%B (%b) causes file to be too big. "
+#: e2fsck/problem.c:792
+#, fuzzy
+msgid "%B (%b) causes file to be too big. "
msgstr "Blok #%B (%b) çok büyük dosya oluşturuyor. "
-#. @-expanded: block #%B (%b) causes symlink to be too big.
-#: e2fsck/problem.c:742
-msgid "@b #%B (%b) causes symlink to be too big. "
+#: e2fsck/problem.c:797
+#, fuzzy
+msgid "%B (%b) causes symlink to be too big. "
msgstr "Blok #%B (%b) çok büyük sembolik bağ oluşturuyor. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:747
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr ""
@@ -1546,37 +1651,37 @@ msgstr ""
"içeriyor.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:752
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "Düğüm %i INDEX_FL bayrağı içeriyor ama o bir dizin değil.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:757
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "HTREE dizin düğümü %i geçersiz bir kök düğümü içeriyor.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:762
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr "HTREE dizin düğümü %i desteklenmeyen bir hash sürümü (%N) içeriyor.\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:767
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr ""
"HTREE dizin düğümü %i uyumsuz bir htree kök düğümü bayrağı kullanıyor.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:772
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "HTREE dizin düğümü %i çok büyük bir ağaç derinliğine (%N) sahip\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:777
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
@@ -1585,50 +1690,50 @@ msgstr ""
"bir dolaylı blok (%b) içeriyor."
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:783
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "Düğümü boyutlandırmak için (tekrar) oluşturma başarısız: %m"
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:788
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "%i. düğüm geçersiz bir ek boyut içeriyor (%IS)\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:793
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "%i. düğümdeki ek özellik geçersiz bir isim alanı içeriyor (%N)\n"
-#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:798
-msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "%i. düğümdeki ek özellik geçersiz bir değer içeriyor (%N)\n"
-
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:803
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr "%i. düğümdeki ek özellik geçersiz bir değer başlangıcı içeriyor (%N)\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:808
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr ""
"%i. düğümdeki ek özellik geçersiz bir değer bloğu içeriyor (%N), 0 olmalı\n"
+#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
+#: e2fsck/problem.c:863
+msgid "@a in @i %i has a value size (%N) which is @n\n"
+msgstr "%i. düğümdeki ek özellik geçersiz bir değer içeriyor (%N)\n"
+
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:813
+#: e2fsck/problem.c:868
#, fuzzy
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "%i. düğümdeki ek özellik geçersiz bir isim alanı içeriyor (%N)\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:818
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr ""
+msgstr "@i %i bir %It ancak gerçekten bir dizin gibi görünüyor.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:823
+#: e2fsck/problem.c:878
#, fuzzy, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr ""
@@ -1636,7 +1741,7 @@ msgstr ""
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:828
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1644,7 +1749,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:834
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1652,14 +1757,14 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:839
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:844
+#: e2fsck/problem.c:899
#, fuzzy, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr ""
@@ -1667,39 +1772,93 @@ msgstr ""
"içeriyor.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:849
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr ""
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:854
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr ""
-#: e2fsck/problem.c:859
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr ""
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:864
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:868
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr ""
+#. @-expanded: Error converting subcluster block bitmap: %m\n
+#: e2fsck/problem.c:928
+#, fuzzy, c-format
+msgid "Error converting subcluster @b @B: %m\n"
+msgstr "Dizin blokları yinelenirken hata: %m\n"
+
+#. @-expanded: quota inode is not regular file.
+#: e2fsck/problem.c:933
+#, fuzzy
+msgid "@q @i is not regular file. "
+msgstr "Günlük dosyası normal bir dosya değil. "
+
+#. @-expanded: quota inode is not in use, but contains data.
+#: e2fsck/problem.c:938
+#, fuzzy
+msgid "@q @i is not in use, but contains data. "
+msgstr "Günlük düğümü kullanımda değil ama veri içeriyor. "
+
+#. @-expanded: quota inode is visible to the user.
+#: e2fsck/problem.c:943
+#, fuzzy
+msgid "@q @i is visible to the user. "
+msgstr "Düğüm %i kullanımda, ama dtime belirtilmiş. "
+
+#. @-expanded: The bad block inode looks invalid.
+#: e2fsck/problem.c:948
+#, fuzzy
+msgid "The bad @b @i looks @n. "
+msgstr "<Hatalı bloklar düğümü>"
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+
#. @-expanded: \n
#. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n
#. @-expanded: Pass 1B: Rescanning for multiply-claimed blocks\n
-#: e2fsck/problem.c:875
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1711,24 +1870,24 @@ msgstr ""
"Geçiş 1B: Çok düğümlü bloklar yeniden taranıyor\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:881
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "Düğüm %i içinde çok düğümlü bloklar var:"
-#: e2fsck/problem.c:896
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Düğümler (%i) taranırken hata oluştu: %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:901
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "Düğüm biteşlemi (inode_dup_map) için yer ayrılırken hata oluştu: %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:906
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr ""
@@ -1736,45 +1895,46 @@ msgstr ""
"hata oluÅŸtu (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:911 e2fsck/problem.c:1227
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr ""
-"Ek özellikler bloğu %b (düğüm %i) için refcount ayarlanırken hata oluştu: %"
-"m\n"
+"Ek özellikler bloğu %b (düğüm %i) için refcount ayarlanırken hata oluştu: "
+"%m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:917
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr "Geçiş 1C: Tekrarlanan blokların düğümleri için dizinler taranıyor.\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:923
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Geçiş 1D: Çok düğümlü bloklar yeniden hallediliyor\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:928
+#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
+#: e2fsck/problem.c:1026
+#, fuzzy
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
-" has %B @m @b(s), shared with %N file(s):\n"
+" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
"Dosya %Q (düğüm %i, değişiklik zamanı %IM) \n"
" %N dosya ile paylaşımlı, çok düğümlü %B blok içeriyor:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:934
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (düğüm %i, değişiklik zamanı %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:939
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<dosya sistemi metaverisi>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:944
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1784,7 +1944,7 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:949
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
@@ -1792,327 +1952,337 @@ msgstr ""
"Çok düğümlü bloklar zaten yeniden atanmış ya da kopyalanmıştı.\n"
"\n"
-#: e2fsck/problem.c:962
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr "Dosya kopyalanamadı: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:968
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Geçiş 2: Dizin yapısı denetleniyor\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:973
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr "Dizin düğümü %i içindeki '.' için düğüm numarası geçersiz.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:978
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "@E hatalı düğüm numarası içeriyor: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:983
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr "@E silinmiş/kullanılmayan düğüm %Di içeriyor. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:988
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr "@E '.' ya bir bağdır. "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:993
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "@E bir hatalı blok içindeki düğümü (%Di) gösteriyor.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:998
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "@E dizin %P (%Di) için bir bağdır.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1003
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "@E kök düğümüne bir bağdır.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1008
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "@E isminde kuraldışı karakterler içeriyor.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1013
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "Dizin düğümü %i içinde '.' eksik.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1018
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "Dizin düğümü %i içinde '..' eksik.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1023
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr ""
"Dizin düğümü %i (%p) içindeki ilk girdi '%Dn' (düğüm=%Di) '.' olmalıydı.\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1028
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr ""
"Dizin düğümü %i içindeki ikinci girdi '%Dn' (düğüm=%Di) '..' olmalıydı.\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1033
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr "düğüm %i (%Q) %IF için i_faddr, sıfır olmalı.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1038
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "düğüm %i (%Q) %If için i_file_acl, sıfır olmalı.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1043
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "düğüm %i (%Q) %Id için i_dir_acl, sıfır olmalı.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1048
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr "düğüm %i (%Q) %N için i_frag, sıfır olmalı.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1053
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "düğüm %i (%Q) %N için i_fsize, sıfır olmalı.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1058
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "Düğüm %i (%Q) bir hatalı kip (%Im) içeriyor.\n"
-#. @-expanded: directory inode %i, block %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1063
-msgid "@d @i %i, @b %B, offset %N: @d corrupted\n"
+#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
+#: e2fsck/problem.c:1161
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "Dizin düğümü %i, blok %B, konum %N: dizin bozuk\n"
-#. @-expanded: directory inode %i, block %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1068
-msgid "@d @i %i, @b %B, offset %N: filename too long\n"
+#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
+#: e2fsck/problem.c:1166
+#, fuzzy
+msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "Dizin düğümü %i, blok %B, konum %N: dosya ismi çok uzun\n"
-#. @-expanded: directory inode %i has an unallocated block #%B.
-#: e2fsck/problem.c:1073
-msgid "@d @i %i has an unallocated @b #%B. "
+#. @-expanded: directory inode %i has an unallocated %B.
+#: e2fsck/problem.c:1171
+#, fuzzy
+msgid "@d @i %i has an unallocated %B. "
msgstr "Dizin düğümü %i bir ayrılmayan blok #%B içeriyor. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1078
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "Dizin düğümü %i deki '.' dizin girdisi NULL sonlandırmalı değil\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1083
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "Dizin düğümü %i deki '..' dizin girdisi NULL sonlandırmalı değil\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1088
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "Düğüm %i (%Q) bir kuraldışı karakter aygıtı.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1093
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "Düğüm %i (%Q) bir kuraldışı blok aygıtı.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1098
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr "@E tekrarlayan '.' girdisi içeriyor.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1103
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr "@E tekrarlayan '..' girdisi içeriyor.\n"
-#: e2fsck/problem.c:1108 e2fsck/problem.c:1403
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr "İç hata: %i için dizin bilgileri bulunamıyor.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1113
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "@E %Dr kayıt uzunluğunda, %N olmalıydı.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1118
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "icount veri yapısı için yer ayrılırken hata oluştu: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1123
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Dizin blokları yinelenirken hata: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1128
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Dizin bloğu %b (düğüm %i) okunurken hata oluştu: %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1133
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Dizin bloğu %b (düğüm %i) yazılırken hata oluştu: %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1138
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "Düğüm %i için yeni dizin bloku ayrılırken hata oluştu (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1143
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Düğüm %i bırakılırken hata: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1148
+#: e2fsck/problem.c:1246
#, fuzzy, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr "'.' için dizin girdisi büyük. "
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1153
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "Düğüm %i (%Q) bir kuraldışı FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1158
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "Düğüm %i (%Q) bir kuraldışı soket.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1163
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "@E için dosya türü %N olarak belirleniyor.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1168
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "@E yanlış dosya türünde (%Dt idi, %N olmalıydı).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1173
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "@E için dosya türü belirtilmiş.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1178
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "@Enin ismi sıfır uzunlukta.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1183
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr "%Q sembolik bağı (düğüm %i) geçersiz.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1188
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "@F ek özellik bloğu geçersiz (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1193
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr ""
"Dosya sistemi çok büyük dosyalar içeriyor, ama süperblokta LARGE_FILE "
"bayrağı yok\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) not referenced\n
-#: e2fsck/problem.c:1198
-msgid "@p @h %d: node (%B) not referenced\n"
+#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
+#: e2fsck/problem.c:1296
+#, fuzzy
+msgid "@p @h %d: %B not referenced\n"
msgstr "HTREE dizin düğümü %d içinde sorun: düğüm (%B) referanssız\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) referenced twice\n
-#: e2fsck/problem.c:1203
-msgid "@p @h %d: node (%B) referenced twice\n"
+#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
+#: e2fsck/problem.c:1301
+#, fuzzy
+msgid "@p @h %d: %B referenced twice\n"
msgstr "HTREE dizin düğümü %d içinde sorun: düğüm (%B) iki kere referanslı\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad min hash\n
-#: e2fsck/problem.c:1208
-msgid "@p @h %d: node (%B) has bad min hash\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
+#: e2fsck/problem.c:1306
+#, fuzzy
+msgid "@p @h %d: %B has bad min hash\n"
msgstr ""
"HTREE dizin düğümü %d içinde sorun: düğüm (%B) hatali asgari hash içeriyor\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad max hash\n
-#: e2fsck/problem.c:1213
-msgid "@p @h %d: node (%B) has bad max hash\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
+#: e2fsck/problem.c:1311
+#, fuzzy
+msgid "@p @h %d: %B has bad max hash\n"
msgstr ""
"HTREE dizin düğümü %d içinde sorun: düğüm (%B) hatali azami hash içeriyor\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1218
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "HTREE dizin düğümü %d (%q) geçersiz. "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1222
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "HTREE dizin düğümü %d içinde sorun: blok numarası %b hatalı.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1232
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "HTREE dizin düğümü %d içinde sorun: kök düğümü geçersiz\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid limit (%N)\n
-#: e2fsck/problem.c:1237
-msgid "@p @h %d: node (%B) has @n limit (%N)\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
+#: e2fsck/problem.c:1335
+#, fuzzy
+msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr ""
"HTREE dizin düğümü %d içinde sorun: düğüm (%B) hatalı sınır (%N) içeriyor\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid count (%N)\n
-#: e2fsck/problem.c:1242
-msgid "@p @h %d: node (%B) has @n count (%N)\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
+#: e2fsck/problem.c:1340
+#, fuzzy
+msgid "@p @h %d: %B has @n count (%N)\n"
msgstr ""
"HTREE dizin düğümü %d içinde sorun: düğüm (%B) hatalı sayım (%N) içeriyor.\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
-#: e2fsck/problem.c:1247
-msgid "@p @h %d: node (%B) has an unordered hash table\n"
+#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
+#: e2fsck/problem.c:1345
+#, fuzzy
+msgid "@p @h %d: %B has an unordered hash table\n"
msgstr ""
"HTREE dizin düğümü %d içinde sorun: düğüm (%B) sırasız bit hash tablosu "
"içeriyor\n"
-#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth (%N)\n
-#: e2fsck/problem.c:1252
+#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
+#: e2fsck/problem.c:1350
#, fuzzy
-msgid "@p @h %d: node (%B) has @n depth (%N)\n"
+msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr ""
"HTREE dizin düğümü %d içinde sorun: düğüm (%B) geçersiz derinlik içeriyor\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1257
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "YinelenmiÅŸ @E bulundu. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1262
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2124,7 +2294,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1267
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2135,82 +2305,86 @@ msgstr ""
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1272
-#, fuzzy
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
-msgstr "düğüm %i (%Q) %N için i_fsize, sıfır olmalı.\n"
+msgstr "i_blocks_hi @F %N, @s sıfır.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1277
-#, fuzzy
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
-msgstr "Dizin düğümü %i (%p) bağlantısız\n"
+msgstr "Beklenmeyen @b, @h içinde %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1281
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1286
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
+#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
+#: e2fsck/problem.c:1389
+#, fuzzy
+msgid "i_file_acl_hi @F %N, @s zero.\n"
+msgstr "düğüm %i (%Q) %If için i_file_acl, sıfır olmalı.\n"
+
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1293
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "Geçiş 3: Dizin bağlanabilirliği denetleniyor\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1298
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr "Kök düğümü tahsisli değil. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1303
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "lost+found dizininde yer yok. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1308
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "Dizin düğümü %i (%p) bağlantısız\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1313
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/lost+found dizini yok. "
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1318
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr "%Q (%i) daki '..' %P (%j), süperblok %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1323
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "/lost+found dizini ya yok ya da hatalı. tekrar bağlanılamıyor.\n"
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1328
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "/lost+found dizini geniÅŸletilemiyor: %m\n"
-#: e2fsck/problem.c:1333
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr "%i ye tekrar bağlanılamıyor: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1338
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "/lost+found dizini bulunmaya çalışılırkan hata oluştu: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1343
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr ""
@@ -2218,7 +2392,7 @@ msgstr ""
"/lost+found dizini oluşturulmaya çalışılırkan hata oluştu.\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1348
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr ""
@@ -2226,7 +2400,7 @@ msgstr ""
"/lost+found dizini oluşturulmaya çalışılırkan hata oluştu.\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr ""
@@ -2234,7 +2408,7 @@ msgstr ""
"yeni dizin bloÄŸu oluÅŸturulurken hata.\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr ""
@@ -2242,14 +2416,14 @@ msgstr ""
"/lost+found için dizin bloğu yazılırken hata oluştu.\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Düğüm %i üzerinde düğüm sayısı ayarlanırken hata oluştu\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1368
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2260,7 +2434,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1373
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2270,76 +2444,76 @@ msgstr ""
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1383
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Kök dizini oluşturulurken hata (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1388
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "/lost+found dizini oluÅŸturulurken hata (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1393
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "Kök düğümü bir dizin değil; çıkılıyor.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1398
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "Bir kök düğümü olmaksızın işlenemez.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1408
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/lost+found bir dizin değil (düğüm = %i)\n"
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr "Pass 3A: Dizinler eniyileniyor\n"
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1523
#, fuzzy, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "dirs_to_hash yineleyici oluşturulamadı: %m"
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1528
#, fuzzy
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Dizin %q (%d) eniyilenemedi: %m"
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Eniyilenen dizinler: "
-#: e2fsck/problem.c:1447
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr "Geçiş 4: Başvuru sayısı denetleniyor\n"
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1452
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "artık düğüm %i sıfır uzunlukta. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1457
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "artık düğüm %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1462
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "Düğüm %i için başvuru sayısı %Il, %N olmalıydı. "
#. @-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:1466
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2352,58 +2526,58 @@ msgstr ""
"Bunlar aynı olmalıydı!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1476
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "5. Geçiş: grup özet bilgileri denetleniyor\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1481
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "Düğüm biteşleminin sonundaki alan belirlenmemiş. "
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1486
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "Blok biteÅŸleminin sonundaki alan belirlenmemiÅŸ. "
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1491
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "blok biteşlemi farkları: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1511
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "düğüm biteşlemi farkları: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1531
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr "%g. grup için serbest düğüm sayısı yanlış (%i, sayılan = %j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1536
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr "%g. grup için dizin sayısı yanlış (%i, sayılan = %j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1541
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "Serbest düğüm sayısı yanlış (%i, sayılan = %j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1546
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr "%g. grup için serbest blok sayısı yanlış (%b, sayılan = %c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1551
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "Serbest blok sayısı yanlış (%b, sayılan = %c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1556
+#: e2fsck/problem.c:1659
msgid ""
"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
"endpoints (%i, %j)\n"
@@ -2411,86 +2585,90 @@ msgstr ""
"PROGRAMLAMA HATASI: dosya sistemi (#%N) biteşlem sınırları (%b, %c)\n"
"ile hesaplanan biteşlem sınırları (%i, %j) uyuşmuyor\n"
-#: e2fsck/problem.c:1562
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr "İç hata: biteşlemin sonunda bozulma (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1567
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Yedek düğüm biteşleminde kopyalama hatası: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1572
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr "Yedek blok biteşleminde kopyalama hatası: %m\n"
-#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1597
-#, fuzzy
-msgid "Recreate @j"
-msgstr "Yeniden oluÅŸtur"
-
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1602
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr ""
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1607
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1725
+#. @-expanded: Recreate journal
+#: e2fsck/problem.c:1712
+#, fuzzy
+msgid "Recreate @j"
+msgstr "Yeniden oluÅŸtur"
+
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr ""
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Elde edilemeyen hata kodu ((0x%x)!\n"
-#: e2fsck/problem.c:1820
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "YOKSAYILDI"
-#: e2fsck/scantest.c:81
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr "Kullanılan bellek: %d, geçen süre: %6.3f/%6.3f/%6.3f\n"
-#: e2fsck/scantest.c:100
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "düğüm uzunluğu = %d\n"
-#: e2fsck/scantest.c:121
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "- düğüm taraması başlatılırken hata oluştu"
-#: e2fsck/scantest.c:132
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "- düğüm taraması yapılırken hata oluştu"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr "Düğüm %d için ext2fs_block_iterate işlevi çağrılırken hata oluştu"
-#: e2fsck/super.c:209
+#: e2fsck/super.c:213
#, fuzzy, c-format
-msgid "while calling ext2fs_adjust_ea_refcount for inode %d"
+msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr "Düğüm %d için ext2fs_block_iterate işlevi çağrılırken hata oluştu"
-#: e2fsck/super.c:267
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Kırpılıyor"
-#: e2fsck/super.c:268
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Temizleniyor"
-#: e2fsck/unix.c:76
+#: e2fsck/unix.c:74
#, fuzzy, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2524,8 +2702,7 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: e2fsck/unix.c:82
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
@@ -2548,8 +2725,7 @@ msgstr ""
" listesine eklenir\n"
" -f disk bölümü temiz bile olsa denetim yapılır\n"
-#: e2fsck/unix.c:88
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2568,38 +2744,165 @@ msgstr ""
" -L hatalı_bloklar_dosyası hatalı bloklar listesi belirtilen dosyadakiler\n"
" ile oluÅŸturulur\n"
-#: e2fsck/unix.c:132
+#: e2fsck/unix.c:131
#, fuzzy, c-format
-msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %u/%u blocks\n"
+msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %d/%d dosya (%%%0d.%d yanyana olmayan düğüm), %u/%u blok\n"
-#: e2fsck/unix.c:150
+#: e2fsck/unix.c:157
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
+msgid_plural ""
+"\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
+msgstr[0] ""
+"\n"
+"%8d düğüm kullanıldı (%%%d)\n"
+msgstr[1] ""
+"\n"
+"%8d düğüm kullanıldı (%%%d)\n"
+
+#: e2fsck/unix.c:161
+#, fuzzy, c-format
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%8d bitişik olmayan düğüm (%%%0d.%d)\n"
+msgstr[1] "%8d bitişik olmayan düğüm (%%%0d.%d)\n"
+
+#: e2fsck/unix.c:166
+#, fuzzy, c-format
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%8d bitişik olmayan düğüm (%%%0d.%d)\n"
+msgstr[1] "%8d bitişik olmayan düğüm (%%%0d.%d)\n"
+
+#: e2fsck/unix.c:171
#, fuzzy, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
msgstr " ind/dind/tind bloklarının düğüm sayıları: %d/%d/%d\n"
-#: e2fsck/unix.c:157
-#, c-format
-msgid " Extent depth histogram: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
msgstr ""
-#: e2fsck/unix.c:207 misc/badblocks.c:916 misc/tune2fs.c:1567 misc/util.c:151
-#: resize/main.c:248
+#: e2fsck/unix.c:188
+#, fuzzy, c-format
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%8d blok kullanıldı (%%%d)\n"
+msgstr[1] "%8d blok kullanıldı (%%%d)\n"
+
+#: e2fsck/unix.c:192
+#, fuzzy, c-format
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%8d hatalı blok\n"
+msgstr[1] "%8d hatalı blok\n"
+
+#: e2fsck/unix.c:194
+#, fuzzy, c-format
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%8d büyük dosya\n"
+msgstr[1] "%8d büyük dosya\n"
+
+#: e2fsck/unix.c:196
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u regular file\n"
+msgid_plural ""
+"\n"
+"%12u regular files\n"
+msgstr[0] ""
+"\n"
+"%8d normal dosya\n"
+msgstr[1] ""
+"\n"
+"%8d normal dosya\n"
+
+#: e2fsck/unix.c:198
+#, fuzzy, c-format
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%8d dizin\n"
+msgstr[1] "%8d dizin\n"
+
+#: e2fsck/unix.c:200
+#, fuzzy, c-format
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%8d karakter aygıtı dosyası\n"
+msgstr[1] "%8d karakter aygıtı dosyası\n"
+
+#: e2fsck/unix.c:203
+#, fuzzy, c-format
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%8d blok aygıtı dosyası\n"
+msgstr[1] "%8d blok aygıtı dosyası\n"
+
+#: e2fsck/unix.c:205
+#, fuzzy, c-format
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%8d fifo\n"
+msgstr[1] "%8d fifo\n"
+
+#: e2fsck/unix.c:207
+#, fuzzy, c-format
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%8d baÄŸ\n"
+msgstr[1] "%8d baÄŸ\n"
+
+#: e2fsck/unix.c:209
+#, fuzzy, c-format
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%8d sembolik baÄŸ"
+msgstr[1] "%8d sembolik baÄŸ"
+
+#: e2fsck/unix.c:211
+#, fuzzy, c-format
+msgid " (%u fast symbolic link)\n"
+msgid_plural " (%u fast symbolic links)\n"
+msgstr[0] " (%d hızlı sembolik bağ)\n"
+msgstr[1] " (%d hızlı sembolik bağ)\n"
+
+#: e2fsck/unix.c:215
+#, fuzzy, c-format
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%8d soket\n"
+msgstr[1] "%8d soket\n"
+
+#: e2fsck/unix.c:219
+#, fuzzy, c-format
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%8d dosya\n"
+msgstr[1] "%8d dosya\n"
+
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr "- %s'in bağlı olup olmadığı saptanmaya çalışılırken hata oluştu."
-#: e2fsck/unix.c:225
-#, c-format
-msgid "Warning! %s is mounted.\n"
+#: e2fsck/unix.c:252
+#, fuzzy, c-format
+msgid "Warning! %s is %s.\n"
msgstr "Uyarı! %s bağlı.\n"
-#: e2fsck/unix.c:229
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s bağlandı. "
+msgid "%s is %s.\n"
+msgstr ""
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2607,13 +2910,13 @@ msgstr ""
"Devam edilemiyor. çıkılıyor.\n"
"\n"
-#: e2fsck/unix.c:232
-#, c-format
+#: e2fsck/unix.c:264
+#, fuzzy
msgid ""
"\n"
"\n"
-"\a\a\a\aWARNING!!! Running e2fsck on a mounted filesystem may cause\n"
-"SEVERE filesystem damage.\a\a\a\n"
+"WARNING!!! The filesystem is mounted. If you continue you ***WILL***\n"
+"cause ***SEVERE*** filesystem damage.\n"
"\n"
msgstr ""
"\n"
@@ -2622,80 +2925,78 @@ msgstr ""
"ÇOK CİDDİ hasarlara sebep olabilir.****\n"
"\n"
-#: e2fsck/unix.c:235
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Gerçekten devam etmek istiyor musunuz?"
-#: e2fsck/unix.c:237
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "denetim durdu.\n"
-#: e2fsck/unix.c:310
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " hatalı bir dosya sistemi içeriyor"
-#: e2fsck/unix.c:312
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " usulünce sistemden ayrılmamış"
-#: e2fsck/unix.c:314
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
-msgstr ""
+msgstr " birincil süperblok özellikleri yedeklemeden farklı"
-#: e2fsck/unix.c:318
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " denetlenmeksizin %u kere bağlandı"
-#: e2fsck/unix.c:324
+#: e2fsck/unix.c:379
#, fuzzy
msgid " has filesystem last checked time in the future"
msgstr "Dosya sisteminin son denetim zamanı %s yapılıyor\n"
-#: e2fsck/unix.c:330
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr " denetlenmeksizin %u gün geçti"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", denetim başlatılacak.\n"
-#: e2fsck/unix.c:342
+#: e2fsck/unix.c:427
#, fuzzy, c-format
-msgid "%s: clean, %u/%u files, %u/%u blocks"
+msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: temiz, %d/%d dosya, %u/%u blok"
-#: e2fsck/unix.c:359
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (denetleme ertelendi; batarya)"
-#: e2fsck/unix.c:362
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr " (sistem bağlandıktan sonra denetle)"
-#: e2fsck/unix.c:364
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (sistem %ld kere bağlandığında denetle)"
-#: e2fsck/unix.c:511
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "HATA: /dev/null açılamadı (%s)\n"
-#: e2fsck/unix.c:581
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Ek özellik sürümü geçersiz.\n"
-#: e2fsck/unix.c:590
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Bilinmeyen ek seçenek: %s\n"
-#: e2fsck/unix.c:612
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2704,83 +3005,128 @@ msgstr ""
"e2fsck yapılandırma dosyasında (%s, %d.satırda) sözdizimi hatası\n"
"\t%s\n"
-#: e2fsck/unix.c:680
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Dosya tanımlayıcı %d değerlendirilirken hata: %s\n"
-#: e2fsck/unix.c:684
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr "Tamamlama bilgisi dosya tanımlayıcısı geçersiz"
-#: e2fsck/unix.c:699
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Sadece -p/-a, -n veya -y seçeneklerinden sadece biri belirtilebilir."
-#: e2fsck/unix.c:720
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr " -t seçeneği e2fsck'nın bu sürümünde desteklenmiyor.\n"
-#: e2fsck/unix.c:801 misc/tune2fs.c:549 misc/tune2fs.c:833 misc/tune2fs.c:850
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr "'%s' çözümlenemiyor"
-#: e2fsck/unix.c:831
-#, c-format
+#: e2fsck/unix.c:918
+msgid "The -n and -D options are incompatible."
+msgstr ""
+
+#: e2fsck/unix.c:923
+msgid "The -n and -c options are incompatible."
+msgstr ""
+
+#: e2fsck/unix.c:928
+#, fuzzy
+msgid "The -n and -l/-L options are incompatible."
+msgstr ""
+" -c seçeneği ile -l ve -L seçenekleri aynı anda birlikte kullanılamaz.\n"
+
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr ""
" -c seçeneği ile -l ve -L seçenekleri aynı anda birlikte kullanılamaz.\n"
-#: e2fsck/unix.c:879
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
+"E2FSCK_JBD_DEBUG \"%s\" bir tamsayı değil\n"
+"\n"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
"Invalid non-numeric argument to -%c (\"%s\")\n"
"\n"
msgstr ""
+"\n"
+"Sayısal olmayan geçersiz bağımsız değişken, -%c (\"%s\")\n"
+"\n"
-#: e2fsck/unix.c:929
+#: e2fsck/unix.c:1129
#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
+#, fuzzy
+msgid "while checking MMP block"
+msgstr "- süperblok ayarlanırken hata oluştu"
+
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
+msgid ""
+"If you are sure the filesystem is not in use on any node, run:\n"
+"'tune2fs -f -E clear_mmp {device}'\n"
+msgstr ""
+
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "Hata: ext2fs kitaplık sürümü uygun değil!\n"
-#: e2fsck/unix.c:937
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr "- uygulama başlatılmaya çelışılırken hata oluştu"
-#: e2fsck/unix.c:951
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\t%s, %s kullanılıyor\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr "etkileşimli onarım için uçbirim gerekli"
-#: e2fsck/unix.c:1010
-#, fuzzy, c-format
+#: e2fsck/unix.c:1299
+#, c-format
msgid "%s: %s trying backup blocks...\n"
-msgstr "%s yedekleme blokları deneniyor...\n"
+msgstr "%s: %s blokları yedeklemeye çalışıyor...\n"
-#: e2fsck/unix.c:1012
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
-msgstr ""
+msgstr "Süperblok geçersiz,"
-#: e2fsck/unix.c:1013
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Grup tanımlayıcılar hatalı görünüyor..."
-#: e2fsck/unix.c:1040
-#, c-format
+#: e2fsck/unix.c:1312
+#, fuzzy, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "- hatalı bloklar düğümü okunurken hata oluştu"
+
+#: e2fsck/unix.c:1316
+#, fuzzy, c-format
+msgid "%s: going back to original superblock\n"
+msgstr "%s: geçerli gümlük dosyası super bloğu yok\n"
+
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2790,30 +3136,31 @@ msgstr ""
"destekliyor gibi. (Ya da dosya sisteminin süperbloğu bozuk olabilir)\n"
"\n"
-#: e2fsck/unix.c:1046
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr "Bu sıfır uzunluklu bir disk bölümü olabilir mi?\n"
-#: e2fsck/unix.c:1048
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Dosya sistemine %s erişiminiz olmalı ya da root olmalısınız\n"
-#: e2fsck/unix.c:1053
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr "Bu mevcut olmayan bir aygıt ya da bir takas aygıtı mı acaba?\n"
-#: e2fsck/unix.c:1055
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"Dosyasistemi başka bir uygulama tarafından özellikle bağlanmış veya açılmış\n"
"olabilir mi?\n"
-#: e2fsck/unix.c:1059
-#, c-format
+#: e2fsck/unix.c:1366
+#, fuzzy
+msgid "Possibly non-existent device?\n"
+msgstr "Bu mevcut olmayan bir aygıt ya da bir takas aygıtı mı acaba?\n"
+
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
@@ -2821,17 +3168,16 @@ msgstr ""
"Disk yazma korumalı; -n seçeneğini kullanarak salt-oku kipinde\n"
"denetim yapınız.\n"
-#: e2fsck/unix.c:1123
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr "e2fsck'nın daha yeni bir sürümünü alın!"
-#: e2fsck/unix.c:1147
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "- %s için ext3 günlüğü denetlenirken hata oluştu"
-#: e2fsck/unix.c:1158
-#, c-format
+#: e2fsck/unix.c:1489
msgid ""
"Warning: skipping journal recovery because doing a read-only filesystem "
"check.\n"
@@ -2839,91 +3185,79 @@ msgstr ""
"Uyarı: Dosya sistemi salt-oku kipinde denetlendiğinden\n"
"günlük dosyasına göre kurtarma atlanıyor.\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "%s üzerine süperblok bayrakları konulamadı\n"
-#: e2fsck/unix.c:1177
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "- %s ext3 günlük dosyası kurtarılmaya çalışılırken hata oluştu"
-#: e2fsck/unix.c:1201
-#, fuzzy, c-format
+#: e2fsck/unix.c:1532
+#, c-format
msgid "%s has unsupported feature(s):"
-msgstr "HTREE dizin düğümü %i desteklenmeyen bir hash sürümü (%N) içeriyor.\n"
+msgstr "%s desteklenmeyen özellik(leri):"
-#: e2fsck/unix.c:1217
-msgid "Warning: compression support is experimental.\n"
+#: e2fsck/unix.c:1547
+#, fuzzy, c-format
+msgid "%s: warning: compression support is experimental.\n"
msgstr "Uyarı: sıkıştırma desteği deneyseldir.\n"
-#: e2fsck/unix.c:1222
-#, c-format
+#: e2fsck/unix.c:1553
+#, fuzzy, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
"E2fsck HTREE desteÄŸi ile derlenmemiÅŸ,\n"
"\tama dosya sistemi %s HTREE dizinleri içeriyor.\n"
-#: e2fsck/unix.c:1276
-msgid "while reading bad blocks inode"
+#: e2fsck/unix.c:1605
+#, fuzzy, c-format
+msgid "%s: %s while reading bad blocks inode\n"
msgstr "- hatalı bloklar düğümü okunmaya çalışılırken hata oluştu"
-#: e2fsck/unix.c:1278
-#, c-format
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Bu pek hayra alamet değil, ama üstüne gidilecek...\n"
-#: e2fsck/unix.c:1304
-msgid "Couldn't determine journal size"
-msgstr ""
-
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Günlük oluşturuluyor (%d blok): "
-#: e2fsck/unix.c:1314 misc/mke2fs.c:2091
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"\tgünlük oluşturulmaya çalışılırken hata oluştu"
-
-#: e2fsck/unix.c:1317
-#, fuzzy, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
-msgstr "tamam\n"
+msgstr " Tamamlandı.\n"
-#: e2fsck/unix.c:1318
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
+"\n"
+"*** günlük yeniden oluşturuldu - dosya sistemi yeniden ext3 ***\n"
-#: e2fsck/unix.c:1325
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "e2fsck baştan başlıyor...\n"
-#: e2fsck/unix.c:1329
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "- bağlam sıfırlanırken hata oluştu"
-#: e2fsck/unix.c:1336
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck durduruldu.\n"
-#: e2fsck/unix.c:1341
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "çıktı"
-#: e2fsck/unix.c:1353
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -2932,12 +3266,12 @@ msgstr ""
"\n"
"%s: ***** DOSYA SİSTEMİ DEĞİŞTİRİLDİ *****\n"
-#: e2fsck/unix.c:1356
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** MAKÄ°NAYI YENÄ°DEN BAÅžLATIN *****\n"
-#: e2fsck/unix.c:1364
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -2948,44 +3282,44 @@ msgstr ""
"%s: ********** UYARI: Dosya sistemi hala hatalı **********\n"
"\n"
-#: e2fsck/unix.c:1400
+#: e2fsck/unix.c:1765
#, fuzzy
msgid "while setting block group checksum info"
msgstr "- hatalı blok düğümü belirlenirken hata oluştu"
-#: e2fsck/util.c:138 misc/util.c:68
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "eE"
-#: e2fsck/util.c:139
+#: e2fsck/util.c:191
msgid "nN"
msgstr "hH"
-#: e2fsck/util.c:153
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<e>"
-#: e2fsck/util.c:155
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<h>"
-#: e2fsck/util.c:157
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (e/h)"
-#: e2fsck/util.c:172
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "durduruldu!\n"
-#: e2fsck/util.c:187
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "evet\n"
-#: e2fsck/util.c:189
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "hayır\n"
-#: e2fsck/util.c:199
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -2994,7 +3328,7 @@ msgstr ""
"%s? hayır\n"
"\n"
-#: e2fsck/util.c:203
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3003,39 +3337,39 @@ msgstr ""
"%s? evet\n"
"\n"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "yes"
msgstr "evet"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "no"
msgstr "hayır"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps: %s için biteşlem blokları kuraldışı"
-#: e2fsck/util.c:226
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "düğüm ve blok biteşlemleri okunuyor"
-#: e2fsck/util.c:231
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr "- %s için biteşlemlerin okunması yinelenirken hata oluştu"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:298
#, fuzzy
msgid "writing block and inode bitmaps"
msgstr "blok biteşlemleri yazılıyor"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:303
#, fuzzy, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr "- %s için düğüm biteşlemlerinin yazılması yinelenirken hata oluştu"
-#: e2fsck/util.c:260
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3048,46 +3382,52 @@ msgstr ""
"%s: BEKLENMEYEN UYGUNSUZLUK; fsck ÇALIŞTIRMALISINIZ.\n"
"\t(-a ve -p seçeneklerini kullanmadan)\n"
-#: e2fsck/util.c:336
-#, c-format
-msgid "Memory used: %dk/%dk (%dk/%dk), "
+#: e2fsck/util.c:396
+#, fuzzy, c-format
+msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Kullanılan bellek: %dk/%dk (%dk/%dk), "
-#: e2fsck/util.c:340
-#, c-format
-msgid "Memory used: %d, "
+#: e2fsck/util.c:400
+#, fuzzy, c-format
+msgid "Memory used: %lu, "
msgstr "Kullanılan bellek: %d, "
-#: e2fsck/util.c:346
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "zaman: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:351
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "geçen süre: %6.3f\n"
-#: e2fsck/util.c:385 e2fsck/util.c:399
-#, c-format
-msgid "while reading inode %ld in %s"
+#: e2fsck/util.c:447 e2fsck/util.c:461
+#, fuzzy, c-format
+msgid "while reading inode %lu in %s"
msgstr "- %ld düğümü %s den okunurken hata oluştu"
-#: e2fsck/util.c:413 e2fsck/util.c:426
-#, c-format
-msgid "while writing inode %ld in %s"
+#: e2fsck/util.c:475 e2fsck/util.c:488
+#, fuzzy, c-format
+msgid "while writing inode %lu in %s"
msgstr "- %ld düğümü %s e yazılırken hata oluştu"
-#: e2fsck/util.c:575
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "- sıfırlama tampon belleği ayrılırken hata oluştu"
-#: misc/badblocks.c:66
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+
+#: misc/badblocks.c:69
#, fuzzy
-msgid "done \n"
+msgid "done \n"
msgstr "bitti .\n"
-#: misc/badblocks.c:89
+#: misc/badblocks.c:92
#, fuzzy, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
@@ -3102,87 +3442,89 @@ msgstr ""
" [...]]]\n"
" aygıt [son_blok [ilk_blok]]\n"
-#: misc/badblocks.c:100
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
+"%s: -n ve -w seçenekleri birbirinden bağımsızdır.\n"
+"\n"
-#: misc/badblocks.c:202
+#: misc/badblocks.c:218
#, c-format
-msgid "%6.2f%% done, %s elapsed"
+msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr ""
-#: misc/badblocks.c:289
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Rasgele şablon ile sınanıyor: "
-#: misc/badblocks.c:307
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Sınama şablonu: 0x"
-#: misc/badblocks.c:335 misc/badblocks.c:404
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr "erişim sırasında"
-#: misc/badblocks.c:346
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr "do_read için tuhaf değer (%ld)\n"
-#: misc/badblocks.c:424
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr "ext2fs_sync_device sırasında"
-#: misc/badblocks.c:440 misc/badblocks.c:699
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "- hatalı blok listesi yinelemesine başlanırken hata oluştu"
-#: misc/badblocks.c:454 misc/badblocks.c:551 misc/badblocks.c:709
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "- tampon bellek ayrılırken hata oluştu"
-#: misc/badblocks.c:458
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "%lu ile %lu arasındaki bloklar denetleniyor\n"
-#: misc/badblocks.c:463
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Hatalı bloklar salt-okunur kipte denetleniyor\n"
-#: misc/badblocks.c:472
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr "Hatalı bloklar için denetleniyor (salt-oku testi): "
-#: misc/badblocks.c:480 misc/badblocks.c:583 misc/badblocks.c:628
-#: misc/badblocks.c:772
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr ""
-#: misc/badblocks.c:558
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Hatalı bloklar oku-yaz kipinde denetleniyor\n"
-#: misc/badblocks.c:560 misc/badblocks.c:722
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr "Blok %lu dan %lu ya kadar\n"
-#: misc/badblocks.c:618
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Okunuyor ve karşılaştırılıyor: "
-#: misc/badblocks.c:721
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr "Hatalı bloklar veri bozmayan oku-yaz kipinde denetleniyor\n"
-#: misc/badblocks.c:727
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr "Hatalı bloklar denetleniyor (yıkıcı olmayan oku-yaz sınaması)\n"
-#: misc/badblocks.c:734
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3190,98 +3532,102 @@ msgstr ""
"\n"
"Kesme yakalandı, kaldırılıyor\n"
-#: misc/badblocks.c:810
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "veri yazma denemesi sırasında, blok %lu"
-#: misc/badblocks.c:921 misc/util.c:156
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s bağlandı; "
-#: misc/badblocks.c:923
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"badblocks n'olursa olsun çalıştırılacak. İnşallah /etc/mtab yanlıştır.\n"
-#: misc/badblocks.c:928
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "'badblocks' çalıştırmak güvenli değil!\n"
-#: misc/badblocks.c:933 misc/util.c:167
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr "%s görünüşe göre sistem tarafından kullanılıyor; "
-#: misc/badblocks.c:936
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "badblocks n'olursa olsun çalıştırılacak.\n"
-#: misc/badblocks.c:956
+#: misc/badblocks.c:1028
#, fuzzy, c-format
msgid "invalid %s - %s"
msgstr "blok uzunluğu hatalı - %s"
-#: misc/badblocks.c:1015
-#, c-format
-msgid "bad block size - %s"
-msgstr "blok uzunluğu hatalı - %s"
-
-#: misc/badblocks.c:1070
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr "sınama şablonu - %s için bellek ayrılamadı"
-#: misc/badblocks.c:1097
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr "Salt okunur kipte en çok bir sınama şablonu belirtilebilir"
-#: misc/badblocks.c:1103
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr "Salt okunur kipte rasgele sınama şablonu kullanımına izin verilmez"
-#: misc/badblocks.c:1117
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
msgstr "Aygıt alanı saptanamadı; Elle bir değer girmelisiniz\n"
-#: misc/badblocks.c:1123
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr "- aygıt alanı saptanmaya çalışılırken hata oluştu"
-#: misc/badblocks.c:1128
+#: misc/badblocks.c:1200
#, fuzzy
msgid "last block"
msgstr "Bloklar yeniden konumlandırılıyor"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1206
#, fuzzy
msgid "first block"
msgstr "Ä°lk veri bloÄŸu = %u\n"
-#: misc/badblocks.c:1137
+#: misc/badblocks.c:1209
+#, fuzzy, c-format
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "başlangıç bloğu hatalı - %s"
+
+#: misc/badblocks.c:1216
#, fuzzy, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+msgid "invalid end block (%llu): must be 32-bit value"
msgstr "başlangıç bloğu hatalı - %s"
-#: misc/badblocks.c:1193
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr "hatalı bloklar listesi bellekte oluşturulurken"
-#: misc/badblocks.c:1208
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr ""
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
msgid "while adding to in-memory bad block list"
msgstr "bellekteki hatalı bloklar listesine eklenirken"
-#: misc/badblocks.c:1232
-#, c-format
-msgid "Pass completed, %u bad blocks found.\n"
+#: misc/badblocks.c:1323
+#, fuzzy, c-format
+msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Geçiş tamamlandı, %u hatalı blok bulundu.\n"
-#: misc/chattr.c:85
+#: misc/chattr.c:86
#, fuzzy, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdijsSu] [-v version] files...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
msgstr ""
"Kullanımı: %s [-RV] [-+=AacDdijsSu] [-v sürüm] dosyalar...\n"
"\n"
@@ -3322,57 +3668,56 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: misc/chattr.c:152
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "sürüm hatalı - %s\n"
-#: misc/chattr.c:198 misc/lsattr.c:113
+#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "- stat %s yapılmaya çalışılırken hata oluştu"
-#: misc/chattr.c:204 misc/chattr.c:222
-#, c-format
-msgid "Flags of %s set as "
-msgstr "Belirlenen %s bayrakları: "
-
-#: misc/chattr.c:214
+#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr "- %s üzerinde bayraklar okunurken hata oluştu"
-#: misc/chattr.c:231
+#: misc/chattr.c:213 misc/chattr.c:225
+#, c-format
+msgid "Flags of %s set as "
+msgstr "Belirlenen %s bayrakları: "
+
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "- %s üzerinde bayraklar belirlenirken hata oluştu"
-#: misc/chattr.c:239
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "%s sürümü %lu olarak belirlendi\n"
-#: misc/chattr.c:243
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "- %s üzerinde sürüm belirlenirken hata oluştu"
-#: misc/chattr.c:263
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "chattr_dir_proc işlevinde dosya yolu değişkenine yer ayrılamadı"
-#: misc/chattr.c:302
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr "= ile + ve - uyumsuz\n"
-#: misc/chattr.c:310
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr "'-v', =, - veya + kullanılmalı\n"
-#: misc/dumpe2fs.c:53
-#, c-format
-msgid "Usage: %s [-bfhixV] [-ob superblock] [-oB blocksize] device\n"
+#: misc/dumpe2fs.c:55
+#, fuzzy, c-format
+msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr ""
"Kullanımı: %s [-bfhixV] [-ob süperblok] [-oB blokboyu] aygıt\n"
"\n"
@@ -3396,38 +3741,55 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: misc/dumpe2fs.c:168
+#: misc/dumpe2fs.c:159
+#, fuzzy
+msgid "blocks"
+msgstr "bblok"
+
+#: misc/dumpe2fs.c:169
+msgid "clusters"
+msgstr ""
+
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Grup %lu: (Bloklar: "
-#: misc/dumpe2fs.c:173
+#: misc/dumpe2fs.c:205
#, c-format
-msgid " Checksum 0x%04x, unused inodes %d\n"
+msgid " Checksum 0x%04x"
msgstr ""
-#: misc/dumpe2fs.c:178
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr ""
+
+#: misc/dumpe2fs.c:208
+#, fuzzy, c-format
+msgid ", unused inodes %u\n"
+msgstr "düğüm sayısı hatalı - %s"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s süperblok: "
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr " Ä°lk"
-#: misc/dumpe2fs.c:179
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Yedek"
-#: misc/dumpe2fs.c:183
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ""
" \n"
" Grup tanımlayıcı: "
-#: misc/dumpe2fs.c:187
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3435,24 +3797,23 @@ msgstr ""
"\n"
" Yedek GDT blokları "
-#: misc/dumpe2fs.c:194
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr ""
" \n"
" Grup tanımlayıcı: "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Blok biteÅŸlemi: "
-#: misc/dumpe2fs.c:205
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ""
" \n"
" Düğüm biteşlemi: "
-#: misc/dumpe2fs.c:210
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3460,55 +3821,95 @@ msgstr ""
"\n"
" Düğüm tablosu: "
-#: misc/dumpe2fs.c:217
+#: misc/dumpe2fs.c:249
#, fuzzy, c-format
msgid ""
"\n"
-" %u free blocks, %u free inodes, %u directories%s"
+" %u free %s, %u free inodes, %u directories%s"
msgstr ""
"\n"
" %d serbest blok, %d serbest düğüm, %d dizin\n"
-#: misc/dumpe2fs.c:224
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ""
-#: misc/dumpe2fs.c:227
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Serbest bloklar: "
-#: misc/dumpe2fs.c:237
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Serbest düğümler: "
-#: misc/dumpe2fs.c:264
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "- hatalı bloklar listesi basılırken hata oluştu"
-#: misc/dumpe2fs.c:270
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:316
+#, c-format
msgid "Bad blocks: %u"
-msgstr "Hatalı bloklar: %d"
+msgstr "Hatalı bloklar: %u"
-#: misc/dumpe2fs.c:292 misc/tune2fs.c:279
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "- günlük düğümü okunurken hata oluştu"
-#: misc/dumpe2fs.c:295
+#: misc/dumpe2fs.c:351
+#, fuzzy
+msgid "while opening journal inode"
+msgstr "- günlük düğümü okunurken hata oluştu"
+
+#: misc/dumpe2fs.c:357
+#, fuzzy
+msgid "while reading journal super block"
+msgstr "- günlük dosyası süperbloğu okunurken hata oluştu"
+
+#: misc/dumpe2fs.c:364
+#, fuzzy
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Günlük süperbloğu yok!\n"
+
+#: misc/dumpe2fs.c:367
+#, fuzzy
+msgid "Journal features: "
+msgstr "Günlük kullanıcıları: %s\n"
+
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "Günlük boyutu: "
-#: misc/dumpe2fs.c:319 misc/tune2fs.c:200
+#: misc/dumpe2fs.c:391
+#, fuzzy, c-format
+msgid ""
+"Journal length: %u\n"
+"Journal sequence: 0x%08x\n"
+"Journal start: %u\n"
+msgstr ""
+"\n"
+"Günlük bloğu boyu: %u\n"
+"Günlük uzunluğu: %u\n"
+"Günlük ilk bloğu: %u\n"
+"Günlük sıralaması: 0x%08x\n"
+"Günlük başlangıcı: %u\n"
+"Günlük kullanıcı sayısı: %lu\n"
+
+#: misc/dumpe2fs.c:398
+#, fuzzy, c-format
+msgid "Journal errno: %d\n"
+msgstr "Günlük kullanıcıları: %s\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "- günlük dosyası süperbloğu okunurken hata oluştu"
-#: misc/dumpe2fs.c:327
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr "Günlük dosyası süperbloğu tanım numarası bulunamadı"
-#: misc/dumpe2fs.c:331
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:427
+#, c-format
msgid ""
"\n"
"Journal block size: %u\n"
@@ -3524,30 +3925,29 @@ msgstr ""
"Günlük ilk bloğu: %u\n"
"Günlük sıralaması: 0x%08x\n"
"Günlük başlangıcı: %u\n"
-"Günlük kullanıcı sayısı: %lu\n"
+"Günlük kullanıcı sayısı: %u\n"
-#: misc/dumpe2fs.c:344
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "Günlük kullanıcıları: %s\n"
-#: misc/dumpe2fs.c:360 misc/mke2fs.c:693 misc/tune2fs.c:868
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Seçenekleri çözümlemek için bellek ayrılamadı!\n"
-#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:482
+#, c-format
msgid "Invalid superblock parameter: %s\n"
-msgstr "'stride' parametresi geçersiz: %s\n"
+msgstr "Geçersiz süper blok parametresi: %s\n"
-#: misc/dumpe2fs.c:401
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:497
+#, c-format
msgid "Invalid blocksize parameter: %s\n"
-msgstr "Yeniden boyutlama parametresi geçersiz: %s\n"
+msgstr "Ge.ers,z blok boyut parametresi: %s\n"
-#: misc/dumpe2fs.c:412
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:508
+#, c-format
msgid ""
"\n"
"Bad extended option(s) specified: %s\n"
@@ -3560,28 +3960,27 @@ msgid ""
"\tblocksize=<blocksize>\n"
msgstr ""
"\n"
-"Belirtilen seçenekler hatalı.\n"
-"\n"
-"Ek seçenekler virgüllerle ayrılarak belirtilir. Bir seçeneğe değer\n"
-"belirtilecekse bu '=' işaretinden sonra yazılır.\n"
+"Bozuk genişletilmiş seçenek(ler) belirtildi: %s\n"
"\n"
-"Geçerli ek seçenekler:\n"
-"\tstride=<blok cinsinden adım uzunluğu>\n"
-"\tresize=<yeniden boyutlanacağı blok sayısı>\n"
+"Uzatılmış seçenekler virgülle ayrılır ve bir eşittir ('=') simgesi ile "
+"ayarlanabilen\n"
+"\tbir argüman alabilirler.\n"
"\n"
+"Geçerli genişletilmiş seçenekler:\n"
+"\tsuperblock=<süperblok sayısı>\n"
+"\tblocksize=<blok boyutu>\n"
-#: misc/dumpe2fs.c:471 misc/mke2fs.c:1355
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\t%s kullanılıyor\n"
-#: misc/dumpe2fs.c:507 misc/e2image.c:674 misc/tune2fs.c:1518
-#: resize/main.c:311
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "Geçerli süperblok bulunamadı.\n"
-#: misc/dumpe2fs.c:532
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3590,9 +3989,9 @@ msgstr ""
"\n"
"%s: %s: biteÅŸlemler okunurken hata oluÅŸtu: %s\n"
-#: misc/e2image.c:52
-#, c-format
-msgid "Usage: %s [-rsI] device image_file\n"
+#: misc/e2image.c:101
+#, fuzzy, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
msgstr ""
"Kullanımı: %s [-rsI] AYGIT DOSYA\n"
"\n"
@@ -3605,67 +4004,303 @@ msgstr ""
"olacağından önerilmez. DOSYA yerine - verilirse dosya standart çıktıya\n"
"yazılır.\n"
-#: misc/e2image.c:64
-msgid "Couldn't allocate header buffer\n"
-msgstr "Başlık için tampon bellek ayrılamadı\n"
+#: misc/e2image.c:103
+#, fuzzy, c-format
+msgid " %s -I device image-file\n"
+msgstr ""
+"Kullanımı: %s [-rsI] AYGIT DOSYA\n"
+"\n"
+"AYGIT üzerindeki ext2 dosya sisteminin kritik verilerini DOSYAya kaydeder.\n"
+"Örn: 4GB lık bir sistem için yaklaşık 3MB lık bir görüntü dosyası\n"
+"oluşturulur. Bu dosya, dosya sistemini kurtarmak için uzmanlarca\n"
+"kullanılabilir. Belli aralıklarla bu dosyanın başka bir dosya sistemine\n"
+"kaydedilmesi önerilir. -r seçeneği temel biçimli bir dosya üretir, çok "
+"büyük\n"
+"olacağından önerilmez. DOSYA yerine - verilirse dosya standart çıktıya\n"
+"yazılır.\n"
-#: misc/e2image.c:83
+#: misc/e2image.c:104
#, c-format
-msgid "short write (only %d bytes) for writing image header"
-msgstr "görüntü başlığını yazmak için kısa yazma (sadece %d bayt)"
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+#, fuzzy
+msgid "while allocating buffer"
+msgstr "- tampon bellek ayrılırken hata oluştu"
+
+#: misc/e2image.c:174
+#, fuzzy, c-format
+msgid "Writing block %llu\n"
+msgstr "%lu ile %lu arasındaki bloklar denetleniyor\n"
+
+#: misc/e2image.c:188
+#, fuzzy, c-format
+msgid "error writing block %llu"
+msgstr "%lu bloğu yazılırken hata: %s. "
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
+
+#: misc/e2image.c:208
+msgid "Error: header size is bigger than wrt_size\n"
+msgstr ""
+
+#: misc/e2image.c:213
+msgid "Couldn't allocate header buffer\n"
+msgstr "Başlık için tampon bellek ayrılamadı\n"
-#: misc/e2image.c:102
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "- süperbloğa yazılırken hata oluştu"
-#: misc/e2image.c:110
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "- düğüm tablosuna yazılırken hata oluştu"
-#: misc/e2image.c:117
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "- blok biteşlemi yazılırken hata oluştu"
-#: misc/e2image.c:124
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "- düğüm biteşlemi yazılırken hata oluştu"
-#: misc/e2label.c:57
+#: misc/e2image.c:502
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Empty directory block %u (#%d) in inode %u\n"
+
+#: misc/e2image.c:514
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Empty directory block %u (#%d) in inode %u\n"
+
+#: misc/e2image.c:555
+#, fuzzy, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%u düğüm, %u blok\n"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, fuzzy, c-format
+msgid "error reading block %llu"
+msgstr "blok %lu okunurken hata oluÅŸtu (%s). "
+
+#: misc/e2image.c:715
+#, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr ""
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+#, fuzzy
+msgid "while allocating l1 table"
+msgstr "- tampon bellek ayrılırken hata oluştu"
+
+#: misc/e2image.c:800
+#, fuzzy
+msgid "while allocating l2 cache"
+msgstr "- tampon bellek ayrılırken hata oluştu"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+#, fuzzy
+msgid "while allocating ext2_qcow2_image"
+msgstr "ext2fs_block_iterate işlevi çağrılırken hata oluştu"
+
+#: misc/e2image.c:1152
+#, fuzzy
+msgid "while initializing ext2_qcow2_image"
+msgstr "ext2fs_block_iterate işlevi çağrılırken hata oluştu"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+#, fuzzy
+msgid "while allocating block bitmap"
+msgstr "- blok biteşlemi yazılırken hata oluştu"
+
+#: misc/e2image.c:1278
+#, fuzzy
+msgid "while allocating scramble block bitmap"
+msgstr "- blok biteşlemi yazılırken hata oluştu"
+
+#: misc/e2image.c:1285
+#, fuzzy
+msgid "Scanning inodes...\n"
+msgstr "Dosya indeksi tablosu taranıyor"
+
+#: misc/e2image.c:1297
+#, fuzzy
+msgid "Can't allocate block buffer"
+msgstr "Blok tamponu ayrılamadı (boyu=%d)\n"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, fuzzy, c-format
+msgid "while iterating over inode %u"
+msgstr "sonraki düğüme geçilirken hata oluştu"
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+#, fuzzy
+msgid "error reading bitmaps"
+msgstr "- biteÅŸlemler okunurken hata oluÅŸtu"
+
+#: misc/e2image.c:1415
+#, fuzzy
+msgid "while opening device file"
+msgstr "düğüm taraması başlatılırken hata oluştu"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "- düğüm tablosuna yazılırken hata oluştu"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+#, fuzzy
+msgid "checking if mounted"
+msgstr " (sistem %ld kere bağlandığında denetle)"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
+#, c-format
+msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
+msgstr ""
+
+#: misc/e2image.c:1639
+#, fuzzy
+msgid "The -c option only supported in raw mode\n"
+msgstr " -t seçeneği e2fsck'nın bu sürümünde desteklenmiyor.\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr " -t seçeneği e2fsck'nın bu sürümünde desteklenmiyor.\n"
+
+#: misc/e2image.c:1651
+#, fuzzy
+msgid "while allocating check_buf"
+msgstr "- tampon bellek ayrılırken hata oluştu"
+
+#: misc/e2image.c:1657
+#, fuzzy
+msgid "The -p option only supported in raw mode\n"
+msgstr " -t seçeneği e2fsck'nın bu sürümünde desteklenmiyor.\n"
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
+
+#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
msgstr "e2label: %s açılamıyor\n"
-#: misc/e2label.c:62
+#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
msgstr "e2label: süperbloka erişilemiyor\n"
-#: misc/e2label.c:67
+#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
msgstr "e2label: süperblok okunurken hata oluştu\n"
-#: misc/e2label.c:71
+#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: bir ext2 dosya sistemi deÄŸil\n"
-#: misc/e2label.c:96 misc/tune2fs.c:1653
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Uyarı: etiket çok uzun, kırpılıyor.\n"
-#: misc/e2label.c:99
+#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
msgstr "e2label: süperbloğa yine erişilemedi\n"
-#: misc/e2label.c:104
+#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2label: süperbloğa yazılırken hata oluştu\n"
-#: misc/e2label.c:116 misc/tune2fs.c:541
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr ""
@@ -3674,7 +4309,7 @@ msgstr ""
"AYGIT bölüm ismini atamak/okumak için kullanılır.\n"
"\n"
-#: misc/e2undo.c:35
+#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
msgstr ""
@@ -3682,9 +4317,9 @@ msgstr ""
#: misc/e2undo.c:52
#, fuzzy
msgid "Failed to read the file system data \n"
-msgstr "dirs_to_hash yineleyici oluşturulamadı: %m"
+msgstr "- dosya sistemi tabloları ayrılmaya çalışılırken hata oluştu"
-#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:204
+#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
msgid "Failed tdb_fetch %s\n"
msgstr ""
@@ -3698,48 +4333,49 @@ msgstr ""
msgid "The file system UUID didn't match \n"
msgstr ""
-#: misc/e2undo.c:161
+#: misc/e2undo.c:163
#, fuzzy, c-format
msgid "Failed tdb_open %s\n"
msgstr "%s açılırken"
-#: misc/e2undo.c:167
+#: misc/e2undo.c:169
#, fuzzy, c-format
msgid "Error while determining whether %s is mounted.\n"
msgstr "- %s'in bağlı olup olmadığı saptanmaya çalışılırken hata oluştu."
-#: misc/e2undo.c:173
+#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
msgstr ""
-#: misc/e2undo.c:182
+#: misc/e2undo.c:184
#, fuzzy, c-format
msgid "Failed to open %s\n"
msgstr "- %s açılmaya çalışılırken hata oluştu"
-#: misc/e2undo.c:208
+#: misc/e2undo.c:210
#, c-format
-msgid "Replayed transaction of size %zd at location %ld\n"
+msgid "Replayed transaction of size %zd at location %llu\n"
msgstr ""
-#: misc/e2undo.c:214
+#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
msgstr ""
-#: misc/fsck.c:347
+#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
msgstr "UYARI: %s açılamadı: %s\n"
-#: misc/fsck.c:357
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "UYARI: %2$s nin %1$d. satırında biçem hatası\n"
-#: misc/fsck.c:372
+#: misc/fsck.c:370
+#, fuzzy
msgid ""
-"\a\a\aWARNING: Your /etc/fstab does not contain the fsck passno\n"
+"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"
@@ -3750,37 +4386,37 @@ msgstr ""
" düzeltmelisiniz.\n"
"\n"
-#: misc/fsck.c:481
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: yok\n"
-#: misc/fsck.c:597
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr "%s: bekliyor: Başka ast süreç yok?!?\n"
-#: misc/fsck.c:619
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr "Uyarı... %s %s aygıtı için %d sinyali ile çıktı.\n"
-#: misc/fsck.c:625
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr "%s %s: durum %x, asla olmamalıydı.\n"
-#: misc/fsck.c:664
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "%s ile bitti (çıkış durumu: %d)\n"
-#: misc/fsck.c:724
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr "%s: Hata %d: fsck.%s %s için çalıtırılırken oluştu.\n"
-#: misc/fsck.c:745
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
@@ -3788,81 +4424,51 @@ msgstr ""
"-t ile ister tüm dosya sistemi türleri belirtilsin ister bir dosya sistemi\n"
"türü belirtilmesin, ya 'no' ya da '!' öneki kullanılmalıdır.\n"
-#: misc/fsck.c:764
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr "Dosya sistemi türleri için bellek ayrılamadı\n"
-#: misc/fsck.c:887
+#: misc/fsck.c:884
#, c-format
msgid ""
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
"number\n"
msgstr ""
+"%s: /etc/fstab içerisindeki bozuk satır atlanıyor: sıfır olmayan fsck geçiş "
+"sayısı ile bağlama ataması\n"
-#: misc/fsck.c:914
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr "fsck: %s denetlenemiyor: fsck.%s yok\n"
-#: misc/fsck.c:970
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Tüm dosya sistemleri denetleniyor.\n"
-#: misc/fsck.c:1061
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--beklemede-- (%d. geçiş)\n"
-#: misc/fsck.c:1081
-#, fuzzy
+#: misc/fsck.c:1078
msgid ""
"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
-"Kullanımı:\n"
-" fsck [-ANPRTV] [ -C [fd] ][-t dstürü] [ds-seçenekleri] "
-"[dosyasistemi ...]\n"
-"\n"
-"Bir ya da daha fazla dosya sistemini denetlemek veya istenirse onarmak\n"
-"için kullanılır. dosyasistemi olarak bir disk bölümü, bir bağlama noktası,\n"
-"bir bölüm etiketi ya da UUID verilebilir.\n"
-"\n"
-"Seçenekler:\n"
-" -t dstürü Denetlenecek dosya sistemlerinin türleri belirtilir.\n"
-" -A /etc/fstab dosyasındaki denetlenmesi öngörülmüş\n"
-" sistemlerin denetimleri yapılır.\n"
-" -C Denetim süreci bir göstergeyle gösterilir.\n"
-" -N Denetim yapılıyormuş gibi görünür, bir şey yapılmaz.\n"
-" -P -A seçeneği ile birlikte kullanılarak kök dosya sistemi\n"
-" denetlenirken diÄŸer dosya sistemleri de paralel "
-"denetlenir\n"
-" -R -A seçeneği ile kullanıldığında kök dosya sistemi\n"
-" denetlenmez.\n"
-" -T Başlangıçta başlık gösterilmez.\n"
-" -V İşlemler sırasında daha fazla ayrıntı verilir.\n"
-"\n"
-"fsck seçenekleri:\n"
-"\n"
-"Bu seçenekler ext2fs dışındaki dosya sistemleri için garanti edilmez.\n"
-"\n"
-" -a Hiç bir soru sormadan sistem otomatik olarak denetlenir\n"
-" ve onarılır.\n"
-" -r İşlemler etkileşimli olarak yapılır. Paralel denetimler\n"
-" için önerilmez.\n"
-"\n"
-"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
-"\n"
+"Kullanımı: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] "
+"[filesys ...]\n"
-#: misc/fsck.c:1123
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: aygıt sayısı çok fazla\n"
-#: misc/fsck.c:1156 misc/fsck.c:1242
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: argüman sayısı fazla\n"
-#: misc/lsattr.c:73
+#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
msgstr ""
@@ -3881,26 +4487,27 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: misc/lsattr.c:83
+#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
msgstr "- %s üzerinde bayraklar okunurken hata oluştu"
-#: misc/lsattr.c:90
+#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
msgstr "- %s üzerinde sürüm okunurken hata oluştu"
-#: misc/mke2fs.c:104
+#: misc/mke2fs.c:123
#, fuzzy, c-format
msgid ""
-"Usage: %s [-c|-l filename] [-b block-size] [-f fragment-size]\n"
+"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
"Kullanımı: %s [seçenekler] aygıt [blok-sayısı]\n"
"\n"
@@ -3955,37 +4562,37 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: misc/mke2fs.c:206
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Çalışan komut: %s\n"
-#: misc/mke2fs.c:210
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "- '%s' çalıştırılırken oldu"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "- hatalı bloklar listesi işlenirken hata oluştu"
-#: misc/mke2fs.c:244
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Birincil süperblok/grup tanımı alanındaki blok %d hatalı\n"
-#: misc/mke2fs.c:246
-#, fuzzy, c-format
+#: misc/mke2fs.c:290
+#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
-"Bir dosya sistemi oluÅŸturulurken %u den %d ye kadar olan\n"
+"Bir dosya sistemi oluÅŸturulurken %u den %u ye kadar olan\n"
"bloklar hatasız olmak zorundadır.\n"
-#: misc/mke2fs.c:249
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Çıkılıyor...\n"
-#: misc/mke2fs.c:269
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -3996,188 +4603,259 @@ msgstr ""
"\thatalı bloklar içeriyor.\n"
"\n"
-#: misc/mke2fs.c:288
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "- hatalı bloklar kullanılmış olarak imlenirken hata oluştu"
-#: misc/mke2fs.c:346
-msgid "done \n"
-msgstr "bitti \n"
-
-#: misc/mke2fs.c:360
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Düğüm tabloları yazılıyor: "
-#: misc/mke2fs.c:383
-#, c-format
+#: misc/mke2fs.c:405
+#, fuzzy, c-format
msgid ""
"\n"
-"Could not write %d blocks in inode table starting at %u: %s\n"
+"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
"%2$u de başlayan düğüm tablosundaki %1$d blok yazılamadı: %3$s\n"
-#: misc/mke2fs.c:407
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
+msgid "done \n"
+msgstr "bitti \n"
+
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "- kök dizin oluşturulurken hata"
-#: misc/mke2fs.c:414
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "- kök düğümü okunurken hata oluştu"
-#: misc/mke2fs.c:428
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "- kök düğümünün sahibi belirlenirken hata oluştu"
-#: misc/mke2fs.c:446
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "- /lost+found dizini oluÅŸturulurken hata oluÅŸtu"
-#: misc/mke2fs.c:453
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "- /lost+found dizine bakılırken hata oluştu"
-#: misc/mke2fs.c:466
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "- /lost+found dizini geniÅŸletilirken hata oluÅŸtu"
-#: misc/mke2fs.c:481
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "- hatalı blok düğümü belirlenirken hata oluştu"
-#: misc/mke2fs.c:508
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "%d-%d arasındaki sektörler silinirken bellek yetmedi\n"
-#: misc/mke2fs.c:518
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Uyarı: blok 0 okunamadı: %s\n"
-#: misc/mke2fs.c:534
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Uyarı: %d. sektör silinemedi: %s\n"
-#: misc/mke2fs.c:550
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr "- gümlük superbloğu ilklendirilirken hata oluştu"
-#: misc/mke2fs.c:556
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "Günlük aygıtı temizleniyor: "
-#: misc/mke2fs.c:569
-#, c-format
-msgid "while zeroing journal device (block %u, count %d)"
+#: misc/mke2fs.c:591
+#, fuzzy, c-format
+msgid "while zeroing journal device (block %llu, count %d)"
msgstr "- günlük aygıtı temizlenirken (blok %u, %d blok) hata oluştu"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "- günlük süperbloğu yazılırken hata oluştu"
-#: misc/mke2fs.c:601
-#, c-format
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"%s üzerindeki dosya sistemi şimdi %u blok uzunlukta.\n"
+"\n"
+
+#: misc/mke2fs.c:632
+#, fuzzy, c-format
msgid ""
-"warning: %u blocks unused.\n"
+"warning: %llu blocks unused.\n"
"\n"
msgstr ""
"uyarı: %u blok kullanılmamış.\n"
"\n"
-#: misc/mke2fs.c:606
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Dosya sistemi ismi = %s\n"
-#: misc/mke2fs.c:607
-msgid "OS type: "
+#: misc/mke2fs.c:640
+#, fuzzy, c-format
+msgid "OS type: %s\n"
msgstr "İşl. Sist. türü: "
-#: misc/mke2fs.c:612
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Blok boyu = %u (günlük kaydı = %u)\n"
-#: misc/mke2fs.c:614
+#: misc/mke2fs.c:646
+#, fuzzy, c-format
+msgid "Cluster size=%u (log=%u)\n"
+msgstr "Blok boyu = %u (günlük kaydı = %u)\n"
+
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Adımlama boyu = %u (günlük kaydı = %u)\n"
-#: misc/mke2fs.c:616
+#: misc/mke2fs.c:652
#, c-format
-msgid "%u inodes, %u blocks\n"
+msgid "Stride=%u blocks, Stripe width=%u blocks\n"
+msgstr ""
+
+#: misc/mke2fs.c:654
+#, fuzzy, c-format
+msgid "%u inodes, %llu blocks\n"
msgstr "%u düğüm, %u blok\n"
-#: misc/mke2fs.c:618
-#, c-format
-msgid "%u blocks (%2.2f%%) reserved for the super user\n"
+#: misc/mke2fs.c:656
+#, fuzzy, c-format
+msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%u blok (%%%2.2f) süper kullanıcı için ayrıldı\n"
-#: misc/mke2fs.c:621
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Ä°lk veri bloÄŸu = %u\n"
-#: misc/mke2fs.c:623
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Azami dosyasistemi bloğu sayısı = %lu\n"
-#: misc/mke2fs.c:627
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u blok grubu\n"
-#: misc/mke2fs.c:629
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u blok grubu\n"
-#: misc/mke2fs.c:630
+#: misc/mke2fs.c:672
+#, fuzzy, c-format
+msgid "%u blocks per group, %u clusters per group\n"
+msgstr "Grup başına %u blok ve %u sekme\n"
+
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "Grup başına %u blok ve %u sekme\n"
-#: misc/mke2fs.c:632
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "grup başına %u düğüm\n"
-#: misc/mke2fs.c:639
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Dosya sistemi ismi = %s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Süperblokların bulunduğu bloklar:"
-#: misc/mke2fs.c:718
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, fuzzy, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "düğüm uzunluğu hatalı - %s"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "düğüm uzunluğu hatalı - %s"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
+#, fuzzy, c-format
+msgid "Invalid mmp_update_interval: %s\n"
+msgstr "sınama şablonu geçersiz: %s\n"
+
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Geçersiz süper blok parametresi: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "'stride' parametresi geçersiz: %s\n"
-#: misc/mke2fs.c:733
-#, fuzzy, c-format
+#: misc/mke2fs.c:861
+#, c-format
msgid "Invalid stripe-width parameter: %s\n"
-msgstr "'stride' parametresi geçersiz: %s\n"
+msgstr "Geçersiz çizgi genişlik parametresi: %s\n"
-#: misc/mke2fs.c:755
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Yeniden boyutlama parametresi geçersiz: %s\n"
-#: misc/mke2fs.c:762
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
"Azami yeniden boyutlama değeri dosya sistemi boyutundan büyük olmalıdır.\n"
-#: misc/mke2fs.c:786
-#, fuzzy, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
-"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
+"Satırda boyutlandırma, 0. gözden geçirmedeki dosya sistemlerinde "
+"desteklenmemektedir\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, fuzzy, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "Geçersiz dosya sistemi seçeneği belirtidi: %s\n"
+
+#: misc/mke2fs.c:976
+#, fuzzy, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "'stride' parametresi geçersiz: %s\n"
+
+#: misc/mke2fs.c:987
#, fuzzy, c-format
msgid ""
"\n"
@@ -4187,11 +4865,21 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
+"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
+"\tdiscard\n"
+"\tnodiscard\n"
+"\tquotatype=<usr OR grp>\n"
"\n"
msgstr ""
"\n"
@@ -4205,7 +4893,7 @@ msgstr ""
"\tresize=<yeniden boyutlanacağı blok sayısı>\n"
"\n"
-#: misc/mke2fs.c:824
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4213,7 +4901,7 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:856
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4222,140 +4910,162 @@ msgstr ""
"mke2fs yapılandırma dosyasında (%s, %d.satırda) sözdizimi hatası\n"
"\t%s\n"
-#: misc/mke2fs.c:869 misc/tune2fs.c:353
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Geçersiz dosya sistemi seçeneği: %s\n"
-#: misc/mke2fs.c:979
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
+#, c-format
+msgid "Invalid mount option set: %s\n"
+msgstr "Geçersiz dosya sistemi seçeneği belirtidi: %s\n"
+
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
-"Warning! Your mke2fs.conf file does not define the %s filesystem type.\n"
+"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
-#: misc/mke2fs.c:982
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:1177
+#: misc/mke2fs.c:1226
+#, fuzzy
+msgid "Aborting...\n"
+msgstr "Çıkılıyor...\n"
+
+#: misc/mke2fs.c:1267
+#, c-format
+msgid ""
+"\n"
+"Warning: the fs_type %s is not defined in mke2fs.conf\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:1435
+#, fuzzy
+msgid "Couldn't allocate memory for new PATH.\n"
+msgstr "Dosya sistemi türleri için bellek ayrılamadı\n"
+
+#: misc/mke2fs.c:1476
+#, c-format
+msgid "Couldn't init profile successfully (error: %ld).\n"
+msgstr ""
+
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "blok uzunluğu hatalı - %s"
-#: misc/mke2fs.c:1181
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Uyarı: blok uzunluğu %d birçok sistemde kullanımdışıdır.\n"
-#: misc/mke2fs.c:1197
-#, c-format
-msgid "invalid fragment size - %s"
-msgstr "sekme boyu hatalı - %s"
+#: misc/mke2fs.c:1529
+#, fuzzy, c-format
+msgid "invalid cluster size - %s"
+msgstr "blok uzunluğu hatalı - %s"
-#: misc/mke2fs.c:1203
-#, c-format
-msgid "Warning: fragments not supported. Ignoring -f option\n"
-msgstr "Uyarı: sekmeler desteklenmediğinden -f seçeneği yoksayılıyor\n"
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr ""
-#: misc/mke2fs.c:1210
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Grup başına blok sayısı kuraldışı"
-#: misc/mke2fs.c:1215
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr "grup başına blok sayısı 8'in katları olmalıdır"
-#: misc/mke2fs.c:1223
+#: misc/mke2fs.c:1564
#, fuzzy
msgid "Illegal number for flex_bg size"
-msgstr "Blok sayısı kuraldışı!\n"
+msgstr "Grup başına blok sayısı kuraldışı"
-#: misc/mke2fs.c:1229
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr ""
-#: misc/mke2fs.c:1239
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "düğüm oranı %s hatalı (en az %d/en çok %d)"
-#: misc/mke2fs.c:1256
+#: misc/mke2fs.c:1590
+#, c-format
+msgid "invalid inode size - %s"
+msgstr "düğüm uzunluğu hatalı - %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr "- bad_blocks_filename için bellek ayrılırken"
-#: misc/mke2fs.c:1265
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "yedek blok yüzdesi hatalı - %s"
-#: misc/mke2fs.c:1283
+#: misc/mke2fs.c:1642
+#, c-format
+msgid "bad num inodes - %s"
+msgstr "düğüm sayısı hatalı - %s"
+
+#: misc/mke2fs.c:1659
#, c-format
msgid "bad revision level - %s"
msgstr "değişiklik seviyesi hatalı - %s"
-#: misc/mke2fs.c:1295
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "düğüm uzunluğu hatalı - %s"
+#: misc/mke2fs.c:1673
+#, fuzzy
+msgid "The -t option may only be used once"
+msgstr "-o yalnız bir kere kullanılabilir"
-#: misc/mke2fs.c:1315
-#, c-format
-msgid "bad num inodes - %s"
-msgstr "düğüm sayısı hatalı - %s"
+#: misc/mke2fs.c:1681
+#, fuzzy
+msgid "The -T option may only be used once"
+msgstr "-o yalnız bir kere kullanılabilir"
-#: misc/mke2fs.c:1380 misc/mke2fs.c:2052
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "- %s günlük aygıtı açılmaya çalışılırken hata\n"
-#: misc/mke2fs.c:1386
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr "Günlük aygıtının blok boyu (%d) asgari blok boyundan (%d) küçük\n"
-#: misc/mke2fs.c:1392
+#: misc/mke2fs.c:1746
#, fuzzy, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "%s'e günlük ekleniyor: "
-#: misc/mke2fs.c:1401
-#, c-format
-msgid "%d-byte blocks too big for system (max %d)"
-msgstr "%d baytlık bloklar sistem için çok büyük (en çok %d)"
-
-#: misc/mke2fs.c:1405
-#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Uyarı: %d baytlık bloklar sistem için çok büyük (en çok %d), ama devam "
-"ediliyor\n"
-
-#: misc/mke2fs.c:1413
-#, c-format
-msgid "invalid blocks count - %s"
+#: misc/mke2fs.c:1757
+#, fuzzy, c-format
+msgid "invalid blocks '%s' on device '%s'"
msgstr "blok sayısı hatalı - %s"
-#: misc/mke2fs.c:1423
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "dosya sistemi"
-#: misc/mke2fs.c:1459
-#, c-format
-msgid ""
-"%s: Size of device %s too big to be expressed in 32 bits\n"
-"\tusing a blocksize of %d.\n"
-msgstr ""
-
-#: misc/mke2fs.c:1468 resize/main.c:371
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr "- dosya sistemi uzunluğu saptanmaya çalışılırken hata oluştu"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
@@ -4363,7 +5073,7 @@ msgstr ""
"Aygıt alanı saptanamadı; dosya sistemi için\n"
"bir uzunluk belirtmelisiniz\n"
-#: misc/mke2fs.c:1482
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4376,91 +5086,164 @@ msgstr ""
"Disk bölümleme tablosunun yeniden okunması için sisteminizi yeniden\n"
"başlatmalısınız.\n"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr "Dosya sisteminin uzunluğu görünürdeki uzunluktan büyük."
-#: misc/mke2fs.c:1506
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr ""
-#: misc/mke2fs.c:1542
-msgid "fs_types for mke2fs.conf resolution: "
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "- donanımsal sektör boyu saptanmaya çalışılırken"
+
+#: misc/mke2fs.c:1887
+#, fuzzy
+msgid "while trying to determine physical sector size"
+msgstr "- donanımsal sektör boyu saptanmaya çalışılırken"
+
+#: misc/mke2fs.c:1919
+#, fuzzy
+msgid "while setting blocksize; too small for device\n"
+msgstr "- yeniden boyutlama için bloklar yedeklenirken hata oluştu"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
msgstr ""
-#: misc/mke2fs.c:1549
+#: misc/mke2fs.c:1948
#, c-format
+msgid ""
+"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
+"\tin 32 bits using a blocksize of %d.\n"
+msgstr ""
+
+#: misc/mke2fs.c:1964
+msgid "fs_types for mke2fs.conf resolution: "
+msgstr ""
+
+#: misc/mke2fs.c:1971
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
-#: misc/mke2fs.c:1556
-#, fuzzy, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
-"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
-#: misc/mke2fs.c:1568
-#, fuzzy, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
-"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
-#: misc/mke2fs.c:1586
+#: misc/mke2fs.c:2005
+#, fuzzy, c-format
+msgid "invalid reserved blocks percent - %lf"
+msgstr "yedek blok yüzdesi hatalı - %s"
+
+#: misc/mke2fs.c:2022
+msgid ""
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2042
+#, fuzzy
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr ""
+"Azami yeniden boyutlama değeri dosya sistemi boyutundan büyük olmalıdır.\n"
+
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
+
+#: misc/mke2fs.c:2067
+#, c-format
+msgid "warning: Unable to get device geometry for %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:2070
+#, c-format
+msgid "%s alignment is offset by %lu bytes.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2072
#, c-format
msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2093
+#, c-format
+msgid "%d-byte blocks too big for system (max %d)"
+msgstr "%d baytlık bloklar sistem için çok büyük (en çok %d)"
+
+#: misc/mke2fs.c:2097
+#, c-format
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr ""
+"Uyarı: %d baytlık bloklar sistem için çok büyük (en çok %d), ama devam "
+"ediliyor\n"
+
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"They can not be both enabled simultaneously.\n"
msgstr ""
-#: misc/mke2fs.c:1603
-msgid "while trying to determine hardware sector size"
-msgstr "- donanımsal sektör boyu saptanmaya çalışılırken"
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
-#: misc/mke2fs.c:1661
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"süperblok azaltması uygulanmamış dosya sisteminde\n"
"yedek bloklar kullanılarak yeniden boyutlama desteklenmiyor."
-#: misc/mke2fs.c:1670
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr "Grup başına blok sayısı kapsamdışı"
-#: misc/mke2fs.c:1685
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
-#: misc/mke2fs.c:1697
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "düğüm uzunluğu %d hatalı (en az %d/en çok %d)"
-#: misc/mke2fs.c:1711
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr ""
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr ""
-#: misc/mke2fs.c:1731
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
-"\tfilesystem with %lu blocks, specify higher inode_ratio (-i)\n"
+"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
-#: misc/mke2fs.c:1828 misc/tune2fs.c:1462
-#, fuzzy, c-format
-msgid "while trying to delete %s"
-msgstr "- %s yeniden boyutlandırılırken hata oluştu"
-
-#: misc/mke2fs.c:1837
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4468,38 +5251,69 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:1885
+#: misc/mke2fs.c:2397
+#, fuzzy
+msgid "while trying to setup undo file\n"
+msgstr ""
+"\n"
+"\tgünlük dosyası oluşturulmaya çalışılırken hata oluştu"
+
+#: misc/mke2fs.c:2423
+msgid "Discarding device blocks: "
+msgstr ""
+
+#: misc/mke2fs.c:2439
+msgid "failed - "
+msgstr ""
+
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr "- süperblok ayarlanırken hata oluştu"
-#: misc/mke2fs.c:1936
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+msgstr ""
+
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "bilinmeyen iÅŸletim sistemi - %s"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2717
+#, fuzzy
+msgid "Allocating group tables: "
+msgstr "Düğüm tabloları yazılıyor: "
+
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr "- dosya sistemi tabloları ayrılmaya çalışılırken hata oluştu"
-#: misc/mke2fs.c:2021
-#, c-format
-msgid "while zeroing block %u at end of filesystem"
+#: misc/mke2fs.c:2734
+#, fuzzy
+msgid ""
+"\n"
+"\twhile converting subcluster bitmap"
+msgstr "- blok biteşlemi yazılırken hata oluştu"
+
+#: misc/mke2fs.c:2777
+#, fuzzy, c-format
+msgid "while zeroing block %llu at end of filesystem"
msgstr "- dosya sisteminin sonunda blok %u sıfırlanırken hata oluştu"
-#: misc/mke2fs.c:2034
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr "- yeniden boyutlama için bloklar yedeklenirken hata oluştu"
-#: misc/mke2fs.c:2045 misc/tune2fs.c:477
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "günlük"
-#: misc/mke2fs.c:2057
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "%s'e günlük ekleniyor: "
-#: misc/mke2fs.c:2064
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
@@ -4508,23 +5322,43 @@ msgstr ""
"\n"
"\tgünlük %s e eklenmeye çalışılırken hata oluştu"
-#: misc/mke2fs.c:2069 misc/mke2fs.c:2095 misc/tune2fs.c:506 misc/tune2fs.c:520
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "tamam\n"
-#: misc/mke2fs.c:2083
+#: misc/mke2fs.c:2834
+msgid "Skipping journal creation in super-only mode\n"
+msgstr ""
+
+#: misc/mke2fs.c:2845
#, fuzzy, c-format
msgid "Creating journal (%u blocks): "
msgstr "Günlük oluşturuluyor (%d blok): "
-#: misc/mke2fs.c:2100
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"\tgünlük oluşturulmaya çalışılırken hata oluştu"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
+msgid ""
+"\n"
+"Error while enabling multiple mount protection feature."
+msgstr ""
+
+#: misc/mke2fs.c:2871
#, c-format
+msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Süperblokların ve dosya sisteminin hesap bilgileri yazılıyor: "
-#: misc/mke2fs.c:2105
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4532,8 +5366,7 @@ msgstr ""
"\n"
"Uyarı, süperblokların tamamına yazma sorunu var."
-#: misc/mke2fs.c:2108
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4541,12 +5374,11 @@ msgstr ""
"bitti\n"
"\n"
-#: misc/mklost+found.c:49
-#, c-format
+#: misc/mklost+found.c:50
msgid "Usage: mklost+found\n"
msgstr "Kullanımı: mklost+found\n"
-#: misc/partinfo.c:39
+#: misc/partinfo.c:41
#, fuzzy, c-format
msgid ""
"Usage: %s device...\n"
@@ -4563,38 +5395,40 @@ msgstr ""
"\t%s /dev/hda?\n"
"\n"
-#: misc/partinfo.c:49
+#: misc/partinfo.c:51
#, fuzzy, c-format
msgid "Cannot open %s: %s"
msgstr "e2label: %s açılamıyor\n"
-#: misc/partinfo.c:55
+#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
msgstr ""
-#: misc/partinfo.c:63
+#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
msgstr ""
-#: misc/partinfo.c:69
+#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr ""
-#: misc/tune2fs.c:96
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "Lütfen dosya sisteminde e2fsck çalıştırın.\n"
-#: misc/tune2fs.c:103
+#: misc/tune2fs.c:121
#, fuzzy, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] \n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
@@ -4661,62 +5495,61 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: misc/tune2fs.c:188
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr "- dış günlük açılmaya çalışılırken hata oluştu"
-#: misc/tune2fs.c:192
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s bir günlükleme aygıtı değil.\n"
-#: misc/tune2fs.c:207
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Günlük süperbloğu yok!\n"
-#: misc/tune2fs.c:219
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr ""
"Günlükleme aygıtında dosya sisteminin evrensel tek kimliği (UUID) yok.\n"
-#: misc/tune2fs.c:240
-msgid "Journal NOT removed\n"
-msgstr "Günlük silinMEdi\n"
+#: misc/tune2fs.c:269
+msgid ""
+"Cannot locate journal device. It was NOT removed\n"
+"Use -f option to remove missing journal device.\n"
+msgstr ""
-#: misc/tune2fs.c:246
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Günlük silindi\n"
-#: misc/tune2fs.c:286
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "- biteÅŸlemler okunurken hata oluÅŸtu"
-#: misc/tune2fs.c:294
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "- günlük düğümü temizlenirken hata oluştu"
-#: misc/tune2fs.c:305
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "- günlük düğümü yazılırken hata oluştu"
-#: misc/tune2fs.c:320
-#, c-format
-msgid "Invalid mount option set: %s\n"
-msgstr "Geçersiz dosya sistemi seçeneği belirtidi: %s\n"
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
+msgid "(and reboot afterwards!)\n"
+msgstr ""
-#: misc/tune2fs.c:356
-#, fuzzy, c-format
+#: misc/tune2fs.c:419
+#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr ""
-"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
+msgstr "'%s' dosya sistemi özelliğini temizleme desteklenmiyor.\n"
-#: misc/tune2fs.c:362
-#, fuzzy, c-format
+#: misc/tune2fs.c:425
+#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr ""
-"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
-#: misc/tune2fs.c:371
+#: misc/tune2fs.c:434
#, fuzzy
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
@@ -4725,7 +5558,7 @@ msgstr ""
"has_journal bayrağı sadece dosya sistemi bağlı değilken ya da salt-okunur\n"
"bağlıyken temizlenebilir.\n"
-#: misc/tune2fs.c:379
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4733,13 +5566,55 @@ msgstr ""
"needs_recovery bayrağı gerekiyor. Lütfen has_journal bayrağı\n"
"temizlenmeden önce e2fsck çalıştırın.\n"
-#: misc/tune2fs.c:412
+#: misc/tune2fs.c:462
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:475
+#, fuzzy
+msgid ""
+"The multiple mount protection feature can't\n"
+"be set if the filesystem is mounted or\n"
+"read-only.\n"
+msgstr ""
+"has_journal bayrağı sadece dosya sistemi bağlı değilken ya da salt-okunur\n"
+"bağlıyken temizlenebilir.\n"
+
+#: misc/tune2fs.c:493
+#, c-format
+msgid "Multiple mount protection has been enabled with update interval %ds.\n"
+msgstr ""
+
+#: misc/tune2fs.c:502
+msgid ""
+"The multiple mount protection feature cannot\n"
+"be disabled if the filesystem is readonly.\n"
+msgstr ""
+
+#: misc/tune2fs.c:510
+#, fuzzy
+msgid "Error while reading bitmaps\n"
+msgstr "- biteÅŸlemler okunurken hata oluÅŸtu"
+
+#: misc/tune2fs.c:519
+#, c-format
+msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
+msgstr ""
+
+#: misc/tune2fs.c:524
+#, fuzzy
+msgid "while reading MMP block."
+msgstr "- hatalı bloklar düğümü okunmaya çalışılırken hata oluştu"
+
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-#: misc/tune2fs.c:423
+#: misc/tune2fs.c:567
#, fuzzy
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
@@ -4748,16 +5623,17 @@ msgstr ""
"has_journal bayrağı sadece dosya sistemi bağlı değilken ya da salt-okunur\n"
"bağlıyken temizlenebilir.\n"
-#: misc/tune2fs.c:451
-#, c-format
-msgid "(and reboot afterwards!)\n"
+#: misc/tune2fs.c:627
+msgid ""
+"\n"
+"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
-#: misc/tune2fs.c:472
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Dosya sisteminde bir günlük dosyası zaten var.\n"
-#: misc/tune2fs.c:490
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
@@ -4766,21 +5642,21 @@ msgstr ""
"\n"
"\t%s üzerindeki günlük açılmaya çalışılırken hata oluştu\n"
-#: misc/tune2fs.c:494
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "%s üzerinde günlük dosyası oluşturuluyor: "
-#: misc/tune2fs.c:502
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr "- %s üzerindeki günlük dosyasına dosya sistemi eklenirken hata oluştu"
-#: misc/tune2fs.c:508
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Günlük düğümü oluşturuluyor: "
-#: misc/tune2fs.c:517
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
@@ -4788,86 +5664,117 @@ msgstr ""
"\n"
"\tgünlük dosyası oluşturulmaya çalışılırken hata oluştu"
-#: misc/tune2fs.c:584
+#: misc/tune2fs.c:799
+#, fuzzy
+msgid "Couldn't allocate memory to parse quota options!\n"
+msgstr "Seçenekleri çözümlemek için bellek ayrılamadı!\n"
+
+#: misc/tune2fs.c:821
+msgid ""
+"\n"
+"Bad quota options specified.\n"
+"\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
+"\t[^]usrquota\n"
+"\t[^]grpquota\n"
+"\n"
+"\n"
+msgstr ""
+
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Tarih/zaman belirteci çözümlenemedi: %s"
-#: misc/tune2fs.c:608 misc/tune2fs.c:621
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "bağlama sayısı hatalı - %s"
-#: misc/tune2fs.c:637
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "hata davranışı hatalı - %s"
-#: misc/tune2fs.c:664
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "grup ismi/numarası hatalı -%s"
-#: misc/tune2fs.c:697
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr "süre hatalı - %s"
-#: misc/tune2fs.c:725
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "yedek blok oranı hatalı - %s"
-#: misc/tune2fs.c:740
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-o yalnız bir kere kullanılabilir"
-#: misc/tune2fs.c:750
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-O yalnız bir kere kullanılabilir"
-#: misc/tune2fs.c:760
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "yedek blok sayısı hatalı - %s"
-#: misc/tune2fs.c:789
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "kullanıcı ismi/numarası hatalı - %s"
-#: misc/tune2fs.c:806
+#: misc/tune2fs.c:1114
#, fuzzy, c-format
msgid "bad inode size - %s"
msgstr "düğüm uzunluğu hatalı - %s"
-#: misc/tune2fs.c:813
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr ""
-#: misc/tune2fs.c:900
+#: misc/tune2fs.c:1215
+#, c-format
+msgid "mmp_update_interval too big: %lu\n"
+msgstr ""
+
+#: misc/tune2fs.c:1220
#, fuzzy, c-format
+msgid "Setting multiple mount protection update interval to %lu second\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "En fazla bağlama sayısı %d olarak belirleniyor\n"
+msgstr[1] "En fazla bağlama sayısı %d olarak belirleniyor\n"
+
+#: misc/tune2fs.c:1243
+#, c-format
msgid "Invalid RAID stride: %s\n"
-msgstr "'stride' parametresi geçersiz: %s\n"
+msgstr ""
-#: misc/tune2fs.c:915
-#, fuzzy, c-format
+#: misc/tune2fs.c:1258
+#, c-format
msgid "Invalid RAID stripe-width: %s\n"
-msgstr "'stride' parametresi geçersiz: %s\n"
+msgstr ""
-#: misc/tune2fs.c:930
+#: misc/tune2fs.c:1273
#, fuzzy, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "'stride' parametresi geçersiz: %s\n"
-#: misc/tune2fs.c:936
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr ""
-#: misc/tune2fs.c:944
-#, fuzzy, c-format
+#: misc/tune2fs.c:1298
+#, fuzzy
msgid ""
"\n"
"Bad options specified.\n"
@@ -4876,9 +5783,11 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tclear_mmp\n"
+"\thash_alg=<hash algorithm>\n"
+"\tmount_opts=<extended default mount options>\n"
"\tstride=<RAID per-disk chunk size in blocks>\n"
"\tstripe_width=<RAID stride*data disks in blocks>\n"
-"\thash_alg=<hash algorithm>\n"
"\ttest_fs\n"
"\t^test_fs\n"
msgstr ""
@@ -4893,11 +5802,50 @@ msgstr ""
"\tresize=<yeniden boyutlanacağı blok sayısı>\n"
"\n"
-#: misc/tune2fs.c:1384 misc/tune2fs.c:1389 resize/resize2fs.c:760
+#: misc/tune2fs.c:1764
+#, fuzzy
+msgid "Failed to read inode bitmap\n"
+msgstr "- biteÅŸlemler okunurken hata oluÅŸtu"
+
+#: misc/tune2fs.c:1769
+#, fuzzy
+msgid "Failed to read block bitmap\n"
+msgstr "düğüm ve blok biteşlemleri okunuyor"
+
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "taşınacak bloklar"
-#: misc/tune2fs.c:1471
+#: misc/tune2fs.c:1789
+msgid "Failed to allocate block bitmap when increasing inode size\n"
+msgstr ""
+
+#: misc/tune2fs.c:1795
+msgid "Not enough space to increase inode size \n"
+msgstr ""
+
+#: misc/tune2fs.c:1800
+#, fuzzy
+msgid "Failed to relocate blocks during inode resize \n"
+msgstr "- yeniden boyutlama için bloklar yedeklenirken hata oluştu"
+
+#: misc/tune2fs.c:1832
+msgid ""
+"Error in resizing the inode size.\n"
+"Run e2undo to undo the file system changes. \n"
+msgstr ""
+
+#: misc/tune2fs.c:1859
+#, fuzzy
+msgid "Couldn't allocate memory for tdb filename\n"
+msgstr "Dosya sistemi türleri için bellek ayrılamadı\n"
+
+#: misc/tune2fs.c:1880
+#, fuzzy, c-format
+msgid "while trying to delete %s"
+msgstr "- %s yeniden boyutlandırılırken hata oluştu"
+
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -4905,58 +5853,74 @@ msgid ""
"\n"
msgstr ""
-#: misc/tune2fs.c:1529
+#: misc/tune2fs.c:1957
+#, c-format
+msgid ""
+"MMP block magic is bad. Try to fix it by running:\n"
+"'e2fsck -f %s'\n"
+msgstr ""
+
+#: misc/tune2fs.c:1975
#, c-format
-msgid "The inode size is already %d\n"
+msgid "The inode size is already %lu\n"
msgstr ""
-#: misc/tune2fs.c:1534
+#: misc/tune2fs.c:1982
+#, fuzzy
+msgid "Shrinking inode size is not supported\n"
+msgstr "'%s' dosya sistemi özelliğini temizleme desteklenmiyor.\n"
+
+#: misc/tune2fs.c:1987
#, fuzzy, c-format
-msgid "Shrinking the inode size is not supported\n"
-msgstr ""
-"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "düğüm uzunluğu %d hatalı (en az %d/en çok %d)"
-#: misc/tune2fs.c:1577
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "En fazla bağlama sayısı %d olarak belirleniyor\n"
-#: misc/tune2fs.c:1583
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Şimdiki bağlama sayısı %d olarak belirleniyor\n"
-#: misc/tune2fs.c:1588
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Hata davranışı %d olarak belirleniyor\n"
-#: misc/tune2fs.c:1593
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Yedek blokların grup numarası %lu olarak belirleniyor\n"
-#: misc/tune2fs.c:1598
+#: misc/tune2fs.c:2055
+#, fuzzy, c-format
+msgid "interval between checks is too big (%lu)"
+msgstr "Denetimler arasındaki süre %lu saniye olarak belirleniyor\n"
+
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Denetimler arasındaki süre %lu saniye olarak belirleniyor\n"
-#: misc/tune2fs.c:1605
-#, c-format
-msgid "Setting reserved blocks percentage to %g%% (%u blocks)\n"
+#: misc/tune2fs.c:2069
+#, fuzzy, c-format
+msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Yedek blokların yüzdesi %%%g (%u blok) olarak belirleniyor\n"
-#: misc/tune2fs.c:1612
-#, c-format
-msgid "reserved blocks count is too big (%lu)"
+#: misc/tune2fs.c:2075
+#, fuzzy, c-format
+msgid "reserved blocks count is too big (%llu)"
msgstr "yedek ayrılmış blok sayısı çok büyük (%lu)"
-#: misc/tune2fs.c:1618
-#, c-format
-msgid "Setting reserved blocks count to %lu\n"
+#: misc/tune2fs.c:2082
+#, fuzzy, c-format
+msgid "Setting reserved blocks count to %llu\n"
msgstr "Yedek blok sayısı %lu olarak belirleniyor\n"
-#: misc/tune2fs.c:1624
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -4964,7 +5928,14 @@ msgstr ""
"\n"
"Dosya sistemindeki süperbloklar zaten azaltılmış.\n"
-#: misc/tune2fs.c:1631
+#: misc/tune2fs.c:2092
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -4973,70 +5944,134 @@ msgstr ""
"\n"
"Süperblok azaltma bayrağı konuldu. %s"
-#: misc/tune2fs.c:1636
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
-msgstr ""
+"Clearing the sparse superblock flag not supported.\n"
+msgstr "'%s' dosya sistemi özelliğini temizleme desteklenmiyor.\n"
-#: misc/tune2fs.c:1643
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Dosya sisteminin son denetim zamanı %s yapılıyor\n"
-#: misc/tune2fs.c:1649
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Ayrılan blokların kullanıcı numarası %lu olarak ayarlanıyor\n"
-#: misc/tune2fs.c:1700
+#: misc/tune2fs.c:2154
+msgid "Error in using clear_mmp. It must be used with -f\n"
+msgstr ""
+
+#: misc/tune2fs.c:2172
+#, fuzzy
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"has_journal bayrağı sadece dosya sistemi bağlı değilken ya da salt-okunur\n"
+"bağlıyken temizlenebilir.\n"
+
+#: misc/tune2fs.c:2191
+#, fuzzy
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"has_journal bayrağı sadece dosya sistemi bağlı değilken ya da salt-okunur\n"
+"bağlıyken temizlenebilir.\n"
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Geçersiz UUID biçemi\n"
-#: misc/tune2fs.c:1712
+#: misc/tune2fs.c:2232
#, fuzzy
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"has_journal bayrağı sadece dosya sistemi bağlı değilken ya da salt-okunur\n"
"bağlıyken temizlenebilir.\n"
-#: misc/tune2fs.c:1719
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-#: misc/tune2fs.c:1731
-msgid ""
-"Error in resizing the inode size.\n"
-"Run e2undo to undo the file system changes. \n"
-msgstr ""
-
-#: misc/tune2fs.c:1735
+#: misc/tune2fs.c:2253
#, fuzzy, c-format
msgid "Setting inode size %lu\n"
-msgstr "Yedek blokların grup numarası %lu olarak belirleniyor\n"
+msgstr "düğüm uzunluğu hatalı - %s"
-#: misc/tune2fs.c:1745
-#, fuzzy, c-format
+#: misc/tune2fs.c:2256
+#, fuzzy
+msgid "Failed to change inode size\n"
+msgstr "- düğüm taraması başlatılırken hata oluştu"
+
+#: misc/tune2fs.c:2267
+#, c-format
msgid "Setting stride size to %d\n"
-msgstr "Yedek blokların grup numarası %lu olarak belirleniyor\n"
+msgstr ""
-#: misc/tune2fs.c:1750
-#, fuzzy, c-format
+#: misc/tune2fs.c:2272
+#, c-format
msgid "Setting stripe width to %d\n"
-msgstr "Yedek blokların grup numarası %lu olarak belirleniyor\n"
+msgstr ""
+
+#: misc/tune2fs.c:2279
+#, fuzzy, c-format
+msgid "Setting extended default mount options to '%s'\n"
+msgstr "Şimdiki bağlama sayısı %d olarak belirleniyor\n"
-#: misc/util.c:72
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Yine de devam edilsin mi? (e/h) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Yine de devam edilsin mi? (e/h) "
-#: misc/util.c:93
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "bağlama sayısı hatalı - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "bağlama sayısı hatalı - %s"
+
+#: misc/util.c:135
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "stat %s yapılamadı --- %s\n"
+msgid "\tcreated on %s"
+msgstr ""
-#: misc/util.c:96
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
+#, c-format
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "olaÄŸan dosya"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "e2label: %s açılamıyor\n"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
@@ -5044,34 +6079,51 @@ msgstr ""
"\n"
"Aygıt görünmüyor; doğru belirttiğinize emin misiniz?\n"
-#: misc/util.c:107
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s blok özellikli bir aygıt değil.\n"
-#: misc/util.c:136
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " hatalı bir dosya sistemi içeriyor"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " hatalı bir dosya sistemi içeriyor"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr "%s diskin tamamı! Bir disk bölümü değil!\n"
-#: misc/util.c:158
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr "mke2fs n'olursa olsun çalıştırılacak. İnşallah /etc/mtab yanlıştır.\n"
-#: misc/util.c:163
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "burada bir %s yapılmayacak!\n"
-#: misc/util.c:170
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "mke2fs ne olursa olsun çalıştırılacak.\n"
-#: misc/util.c:186
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr "Günlük seçenekleri için bellek ayrılamadı!\n"
-#: misc/util.c:228
+#: misc/util.c:368
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Could not find journal device matching %s\n"
+msgstr "Günlük dosyası süperbloğu tanım numarası bulunamadı"
+
+#: misc/util.c:395
#, fuzzy
msgid ""
"\n"
@@ -5083,6 +6135,7 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
@@ -5100,7 +6153,7 @@ msgstr ""
"Günlük dosyasının uzunluğu 1024 ile 102400 blok arasında seçilebilir.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -5108,18 +6161,15 @@ msgstr ""
"\n"
"Dosya sistemi bir günlük için çok küçük\n"
-#: misc/util.c:265
-#, fuzzy, c-format
+#: misc/util.c:433
+#, c-format
msgid ""
"\n"
"The requested journal size is %d blocks; it must be\n"
"between 1024 and 10240000 blocks. Aborting.\n"
msgstr ""
-"\n"
-"Günlük dosyasının uzunluğu %d blok olarak belirtilmiş.\n"
-"1024 ile 102400 blok arasında olmalı. Çıkılıyor.\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -5127,7 +6177,7 @@ msgstr ""
"\n"
"Günlük dosyası dosya sistemi için çok büyük.\n"
-#: misc/util.c:283
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -5137,7 +6187,136 @@ msgstr ""
"gerçekleşirse, otomatik olarak denetlenecektir. Bu değerleri değiştirmek\n"
"için tune2fs'yi -c veya -i seçeneği ile çalıştırınız.\n"
-#: misc/uuidgen.c:31
+#: misc/uuidd.c:48
+#, c-format
+msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
+msgstr ""
+
+#: misc/uuidd.c:50
+#, c-format
+msgid " %s [-r|t] [-n num] [-s socketpath]\n"
+msgstr ""
+
+#: misc/uuidd.c:52
+#, c-format
+msgid " %s -k\n"
+msgstr ""
+
+#: misc/uuidd.c:154
+#, fuzzy
+msgid "bad arguments"
+msgstr "%s: argüman sayısı fazla\n"
+
+#: misc/uuidd.c:172
+msgid "connect"
+msgstr ""
+
+#: misc/uuidd.c:191
+msgid "write"
+msgstr ""
+
+#: misc/uuidd.c:199
+msgid "read count"
+msgstr ""
+
+#: misc/uuidd.c:205
+msgid "bad response length"
+msgstr ""
+
+#: misc/uuidd.c:270
+#, c-format
+msgid "uuidd daemon already running at pid %s\n"
+msgstr ""
+
+#: misc/uuidd.c:278
+#, fuzzy, c-format
+msgid "Couldn't create unix stream socket: %s"
+msgstr "Tarih/zaman belirteci çözümlenemedi: %s"
+
+#: misc/uuidd.c:307
+#, fuzzy, c-format
+msgid "Couldn't bind unix socket %s: %s\n"
+msgstr "ext2 süperbloğu bulunamadı,"
+
+#: misc/uuidd.c:315
+#, fuzzy, c-format
+msgid "Couldn't listen on unix socket %s: %s\n"
+msgstr "%i ye tekrar bağlanılamıyor: %m\n"
+
+#: misc/uuidd.c:353
+#, fuzzy, c-format
+msgid "Error reading from client, len = %d\n"
+msgstr "Düğüm %i okunurken hata oluştu: %m\n"
+
+#: misc/uuidd.c:361
+#, c-format
+msgid "operation %d, incoming num = %d\n"
+msgstr ""
+
+#: misc/uuidd.c:380
+#, c-format
+msgid "Generated time UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:390
+#, c-format
+msgid "Generated random UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:399
+#, c-format
+msgid "Generated time UUID %s and subsequent UUID\n"
+msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:420
+#, c-format
+msgid "Generated %d UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:432
+#, fuzzy, c-format
+msgid "Invalid operation %d\n"
+msgstr "Ek özellik sürümü geçersiz.\n"
+
+#: misc/uuidd.c:476 misc/uuidd.c:498
+#, c-format
+msgid "Bad number: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:533 misc/uuidd.c:562
+#, fuzzy, c-format
+msgid "Error calling uuidd daemon (%s): %s\n"
+msgstr "/lost+found dizini oluÅŸturulurken hata (%s): %m\n"
+
+#: misc/uuidd.c:543
+#, c-format
+msgid "%s and subsequent UUID\n"
+msgid_plural "%s and subsequent %d UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:547
+msgid "List of UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:568
+#, c-format
+msgid "Unexpected reply length from server %d\n"
+msgstr ""
+
+#: misc/uuidd.c:585
+#, c-format
+msgid "Couldn't kill uuidd running at pid %d: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:591
+#, c-format
+msgid "Killed uuidd running at pid %d\n"
+msgstr ""
+
+#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
msgstr ""
@@ -5152,21 +6331,16 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: resize/extent.c:196
+#: resize/extent.c:202
msgid "# Extent dump:\n"
msgstr "# Ek döküm:\n"
-#: resize/extent.c:197
-#, c-format
-msgid "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n"
+#: resize/extent.c:203
+#, fuzzy, c-format
+msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
msgstr "#\tNum = %d, Boy = %d, İmleç = %d, Sıralı = %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:42
+#: resize/main.c:44
#, fuzzy, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
@@ -5188,188 +6362,1052 @@ msgstr ""
"Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
"\n"
-#: resize/main.c:64
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Dosya indeksi tablosu geniÅŸletiliyor"
-#: resize/main.c:67
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Bloklar yeniden konumlandırılıyor"
-#: resize/main.c:70
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Dosya indeksi tablosu taranıyor"
-#: resize/main.c:73
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Dosya indeksi başvuruları güncelleniyor"
-#: resize/main.c:76
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Dosya indeksi tablosu taşınıyor"
-#: resize/main.c:79
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "bilinmeyen geçiş?!?"
-#: resize/main.c:82
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Geçiş %d başlıyor (en çok = %lu)\n"
-#: resize/main.c:264
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "%s açılırken"
-#: resize/main.c:276
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "%s için durum bilgisi alınırken"
-#: resize/main.c:337
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
+"Please run 'e2fsck -f %s' first.\n"
+"\n"
msgstr ""
+"Lütfen önce 'e2fsck -f %s' komutunu çalıştırın.\n"
+"\n"
-#: resize/main.c:345
-#, fuzzy, c-format
-msgid "Estimated minimum size of the filesystem: %u\n"
-msgstr "%s bağlı; bağlı bir dosya sistemi yeniden boyutlandırılamaz!\n"
+#: resize/main.c:342
+#, c-format
+msgid "Estimated minimum size of the filesystem: %llu\n"
+msgstr ""
-#: resize/main.c:381
+#: resize/main.c:378
#, fuzzy, c-format
msgid "Invalid new size: %s\n"
msgstr "düğüm uzunluğu hatalı - %s"
#: resize/main.c:394
-#, fuzzy
+msgid "New size too large to be expressed in 32 bits\n"
+msgstr ""
+
+#: resize/main.c:402
+#, fuzzy, c-format
+msgid "New size smaller than minimum (%llu)\n"
+msgstr "Günlük aygıtının blok boyu (%d) asgari blok boyundan (%d) küçük\n"
+
+#: resize/main.c:408
msgid "Invalid stride length"
-msgstr "'stride' parametresi geçersiz: %s\n"
+msgstr ""
-#: resize/main.c:418
-#, c-format
+#: resize/main.c:432
+#, fuzzy, c-format
msgid ""
-"The containing partition (or device) is only %u (%dk) blocks.\n"
-"You requested a new size of %u blocks.\n"
+"The containing partition (or device) is only %llu (%dk) blocks.\n"
+"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
"Disk bölümü (ya da aygıt) sadece %u (%dk) blok içeriyor.\n"
"Siz ise %u blokluk bir boyut istediniz.\n"
"\n"
-#: resize/main.c:425
-#, c-format
+#: resize/main.c:439
+#, fuzzy, c-format
msgid ""
-"The filesystem is already %u blocks long. Nothing to do!\n"
+"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
"Dosya sistemi zaten %u blok uzunlukta. Hiçbir şey yapılmadı!\n"
"\n"
-#: resize/main.c:436
-#, c-format
-msgid ""
-"Please run 'e2fsck -f %s' first.\n"
-"\n"
+#: resize/main.c:456
+#, fuzzy, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
-"Lütfen önce 'e2fsck -f %s' komutunu çalıştırın.\n"
+"%s üzerindeki dosya sistemi şimdi %u blok uzunlukta.\n"
"\n"
-#: resize/main.c:447
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "- %s yeniden boyutlandırılırken hata oluştu"
-#: resize/main.c:452
+#: resize/main.c:468
#, c-format
msgid ""
-"The filesystem on %s is now %u blocks long.\n"
+"Please run 'e2fsck -fy %s' to fix the filesystem\n"
+"after the aborted resize operation.\n"
+msgstr ""
+
+#: resize/main.c:474
+#, fuzzy, c-format
+msgid ""
+"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
"%s üzerindeki dosya sistemi şimdi %u blok uzunlukta.\n"
"\n"
-#: resize/online.c:37
+#: resize/main.c:489
+#, fuzzy, c-format
+msgid "while trying to truncate %s"
+msgstr "- stat %s yapılmaya çalışılırken hata oluştu"
+
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Dış günlük bu dosya sistemini desteklemiyor\n"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
-#: resize/online.c:41
-#, fuzzy, c-format
-msgid "On-line shrinking from %u to %u not supported.\n"
+#: resize/online.c:91
+msgid "On-line shrinking not supported"
msgstr ""
-"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
-#: resize/online.c:61
+#: resize/online.c:116
#, fuzzy
msgid "Filesystem does not support online resizing"
msgstr ""
"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
-#: resize/online.c:68
+#: resize/online.c:125
+#, fuzzy
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "- yeniden boyutlama için bloklar yedeklenirken hata oluştu"
+
+#: resize/online.c:132
+#, fuzzy
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Hurd, dosya türü özelliğini desteklemez.\n"
+
+#: resize/online.c:140
#, fuzzy, c-format
msgid "while trying to open mountpoint %s"
msgstr ""
"\n"
"\t%s üzerindeki günlük açılmaya çalışılırken hata oluştu\n"
-#: resize/online.c:76
-msgid "Permission denied to resize filesystem"
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
msgstr ""
-#: resize/online.c:79
-#, fuzzy
-msgid "Kernel does not support online resizing"
-msgstr "Dış günlük bu dosya sistemini desteklemiyor\n"
+#: resize/online.c:164 resize/online.c:181
+msgid "Permission denied to resize filesystem"
+msgstr ""
-#: resize/online.c:82
+#: resize/online.c:167 resize/online.c:187
#, fuzzy
msgid "While checking for on-line resizing support"
msgstr "- yeniden boyutlama için bloklar yedeklenirken hata oluştu"
-#: resize/online.c:111
+#: resize/online.c:184
+#, fuzzy
+msgid "Kernel does not support online resizing"
+msgstr "Dış günlük bu dosya sistemini desteklemiyor\n"
+
+#: resize/online.c:223
#, c-format
-msgid "Performing an on-line resize of %s to %u (%dk) blocks.\n"
+msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/online.c:121
+#: resize/online.c:233
#, fuzzy
msgid "While trying to extend the last group"
msgstr "- dış günlük açılmaya çalışılırken hata oluştu"
-#: resize/online.c:180
+#: resize/online.c:287
#, fuzzy, c-format
msgid "While trying to add group #%d"
msgstr "- %s açılmaya çalışılırken hata oluştu"
-#: resize/online.c:191
+#: resize/online.c:298
#, c-format
msgid ""
"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
"this system.\n"
msgstr ""
-#: resize/resize2fs.c:322
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr ""
-#: resize/resize2fs.c:755
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "yedek bloklar"
-#: resize/resize2fs.c:765
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "meta-veri blokları"
-#: resize/resize2fs.c:1703
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "meta-veri blokları"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Bu olmamalıydı: boyutlandırırken düğümü kaybettik!\n"
+#: lib/ext2fs/ext2_err.c:11
+msgid "EXT2FS Library version 1.42.10"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:12
+msgid "Wrong magic number for ext2_filsys structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:13
+msgid "Wrong magic number for badblocks_list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:14
+msgid "Wrong magic number for badblocks_iterate structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:15
+msgid "Wrong magic number for inode_scan structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:16
+msgid "Wrong magic number for io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:17
+msgid "Wrong magic number for unix io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:18
+msgid "Wrong magic number for io_manager structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:19
+msgid "Wrong magic number for block_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:20
+msgid "Wrong magic number for inode_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:21
+msgid "Wrong magic number for generic_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:22
+msgid "Wrong magic number for test io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:23
+msgid "Wrong magic number for directory block list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:24
+msgid "Wrong magic number for icount structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:25
+msgid "Wrong magic number for Powerquest io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:26
+msgid "Wrong magic number for ext2 file structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:27
+msgid "Wrong magic number for Ext2 Image Header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:28
+msgid "Wrong magic number for inode io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:29
+msgid "Wrong magic number for ext4 extent handle"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:30
+#, fuzzy
+msgid "Bad magic number in super-block"
+msgstr "günlük dosyası super bloğu okunuyor\n"
+
+#: lib/ext2fs/ext2_err.c:31
+msgid "Filesystem revision too high"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:32
+msgid "Attempt to write to filesystem opened read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:33
+#, fuzzy
+msgid "Can't read group descriptors"
+msgstr ""
+" \n"
+" Grup tanımlayıcı: "
+
+#: lib/ext2fs/ext2_err.c:34
+#, fuzzy
+msgid "Can't write group descriptors"
+msgstr ""
+" \n"
+" Grup tanımlayıcı: "
+
+#: lib/ext2fs/ext2_err.c:35
+msgid "Corrupt group descriptor: bad block for block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:36
+msgid "Corrupt group descriptor: bad block for inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:37
+msgid "Corrupt group descriptor: bad block for inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:38
+#, fuzzy
+msgid "Can't write an inode bitmap"
+msgstr "düğüm biteşlemleri yazılıyor"
+
+#: lib/ext2fs/ext2_err.c:39
+#, fuzzy
+msgid "Can't read an inode bitmap"
+msgstr "düğüm biteşlemleri yazılıyor"
+
+#: lib/ext2fs/ext2_err.c:40
+#, fuzzy
+msgid "Can't write a block bitmap"
+msgstr "blok biteşlemleri yazılıyor"
+
+#: lib/ext2fs/ext2_err.c:41
+#, fuzzy
+msgid "Can't read a block bitmap"
+msgstr "düğüm ve blok biteşlemleri okunuyor"
+
+#: lib/ext2fs/ext2_err.c:42
+#, fuzzy
+msgid "Can't write an inode table"
+msgstr "- düğüm tablosuna yazılırken hata oluştu"
+
+#: lib/ext2fs/ext2_err.c:43
+#, fuzzy
+msgid "Can't read an inode table"
+msgstr "Dosya indeksi tablosu taranıyor"
+
+#: lib/ext2fs/ext2_err.c:44
+msgid "Can't read next inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:45
+#, fuzzy
+msgid "Filesystem has unexpected block size"
+msgstr "Dosya sisteminin uzunluğu görünürdeki uzunluktan büyük."
+
+#: lib/ext2fs/ext2_err.c:46
+msgid "EXT2 directory corrupted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:47
+msgid "Attempt to read block from filesystem resulted in short read"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:48
+msgid "Attempt to write block to filesystem resulted in short write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:49
+msgid "No free space in the directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:50
+#, fuzzy
+msgid "Inode bitmap not loaded"
+msgstr ""
+" \n"
+" Düğüm biteşlemi: "
+
+#: lib/ext2fs/ext2_err.c:51
+#, fuzzy
+msgid "Block bitmap not loaded"
+msgstr " Blok biteÅŸlemi: "
+
+#: lib/ext2fs/ext2_err.c:52
+#, fuzzy
+msgid "Illegal inode number"
+msgstr "Blok sayısı kuraldışı!\n"
+
+#: lib/ext2fs/ext2_err.c:53
+#, fuzzy
+msgid "Illegal block number"
+msgstr "Blok sayısı kuraldışı!\n"
+
+#: lib/ext2fs/ext2_err.c:54
+msgid "Internal error in ext2fs_expand_dir"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:55
+msgid "Not enough space to build proposed filesystem"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:56
+msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:57
+msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:58
+msgid "Illegal block number passed to ext2fs_test_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:59
+msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:60
+msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:61
+msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:62
+msgid "Attempt to fudge end of block bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:63
+msgid "Attempt to fudge end of inode bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:64
+#, fuzzy
+msgid "Illegal indirect block found"
+msgstr "%u düğümünün dolaylı blokları okunuyor"
+
+#: lib/ext2fs/ext2_err.c:65
+#, fuzzy
+msgid "Illegal doubly indirect block found"
+msgstr "%u düğümünün dolaylı blokları okunuyor"
+
+#: lib/ext2fs/ext2_err.c:66
+#, fuzzy
+msgid "Illegal triply indirect block found"
+msgstr "%u düğümünün dolaylı blokları okunuyor"
+
+#: lib/ext2fs/ext2_err.c:67
+#, fuzzy
+msgid "Block bitmaps are not the same"
+msgstr " Blok biteÅŸlemi: "
+
+#: lib/ext2fs/ext2_err.c:68
+#, fuzzy
+msgid "Inode bitmaps are not the same"
+msgstr ""
+" \n"
+" Düğüm biteşlemi: "
+
+#: lib/ext2fs/ext2_err.c:69
+msgid "Illegal or malformed device name"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:70
+msgid "A block group is missing an inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:71
+msgid "The ext2 superblock is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:72
+msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:73
+msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:74
+msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:75
+msgid "Too many symbolic links encountered."
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:76
+msgid "The callback function will not handle this case"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:77
+msgid "The inode is from a bad block in the inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:78
+#, fuzzy
+msgid "Filesystem has unsupported feature(s)"
+msgstr ""
+"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
+
+#: lib/ext2fs/ext2_err.c:79
+#, fuzzy
+msgid "Filesystem has unsupported read-only feature(s)"
+msgstr ""
+"Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
+
+#: lib/ext2fs/ext2_err.c:80
+msgid "IO Channel failed to seek on read or write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:81
+#, fuzzy
+msgid "Memory allocation failed"
+msgstr "Aayrılırken hata oluştu"
+
+#: lib/ext2fs/ext2_err.c:82
+msgid "Invalid argument passed to ext2 library"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:83
+#, fuzzy
+msgid "Could not allocate block in ext2 filesystem"
+msgstr "Dosya sistemi türleri için bellek ayrılamadı\n"
+
+#: lib/ext2fs/ext2_err.c:84
+#, fuzzy
+msgid "Could not allocate inode in ext2 filesystem"
+msgstr "Dosya sistemi türleri için bellek ayrılamadı\n"
+
+#: lib/ext2fs/ext2_err.c:85
+msgid "Ext2 inode is not a directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:86
+msgid "Too many references in table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:87
+msgid "File not found by ext2_lookup"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:88
+msgid "File open read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:89
+#, fuzzy
+msgid "Ext2 directory block not found"
+msgstr "Düğüm %3$d deki dizin bloku %1$u (#%2$d) boş\n"
+
+#: lib/ext2fs/ext2_err.c:90
+msgid "Ext2 directory already exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:91
+msgid "Unimplemented ext2 library function"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:92
+msgid "User cancel requested"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:93
+msgid "Ext2 file too big"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:94
+msgid "Supplied journal device not a block device"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:95
+#, fuzzy
+msgid "Journal superblock not found"
+msgstr "Günlük süperbloğu yok!\n"
+
+#: lib/ext2fs/ext2_err.c:96
+msgid "Journal must be at least 1024 blocks"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:97
+msgid "Unsupported journal version"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:98
+#, fuzzy
+msgid "Error loading external journal"
+msgstr "- dış günlük açılmaya çalışılırken hata oluştu"
+
+#: lib/ext2fs/ext2_err.c:99
+#, fuzzy
+msgid "Journal not found"
+msgstr "Günlük süperbloğu yok!\n"
+
+#: lib/ext2fs/ext2_err.c:100
+msgid "Directory hash unsupported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:101
+#, fuzzy
+msgid "Illegal extended attribute block number"
+msgstr "aek özellik"
+
+#: lib/ext2fs/ext2_err.c:102
+msgid "Cannot create filesystem with requested number of inodes"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:103
+msgid "E2image snapshot not in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:104
+#, fuzzy
+msgid "Too many reserved group descriptor blocks"
+msgstr "<Grup tanımlayıcı düğümü>"
+
+#: lib/ext2fs/ext2_err.c:105
+msgid "Resize inode is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:106
+msgid "Tried to set block bmap with missing indirect block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:107
+msgid "TDB: Success"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:108
+msgid "TDB: Corrupt database"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:109
+msgid "TDB: IO Error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:110
+msgid "TDB: Locking error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:111
+msgid "TDB: Out of memory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:112
+msgid "TDB: Record exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:113
+msgid "TDB: Lock exists on other keys"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:114
+#, fuzzy
+msgid "TDB: Invalid parameter"
+msgstr "'stride' parametresi geçersiz: %s\n"
+
+#: lib/ext2fs/ext2_err.c:115
+msgid "TDB: Record does not exist"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:116
+msgid "TDB: Write not permitted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:117
+msgid "Ext2fs directory block list is empty"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:118
+msgid "Attempt to modify a block mapping via a read-only block iterator"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:119
+msgid "Wrong magic number for ext4 extent saved path"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:120
+msgid "Wrong magic number for 64-bit generic bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:121
+msgid "Wrong magic number for 64-bit block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:122
+msgid "Wrong magic number for 64-bit inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:123
+msgid "Wrong magic number --- RESERVED_13"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:124
+msgid "Wrong magic number --- RESERVED_14"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:125
+msgid "Wrong magic number --- RESERVED_15"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:126
+msgid "Wrong magic number --- RESERVED_16"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:127
+msgid "Wrong magic number --- RESERVED_17"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:128
+msgid "Wrong magic number --- RESERVED_18"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:129
+msgid "Wrong magic number --- RESERVED_19"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:130
+msgid "Corrupt extent header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:131
+msgid "Corrupt extent index"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:132
+msgid "Corrupt extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:133
+msgid "No free space in extent map"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:134
+msgid "Inode does not use extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:135
+msgid "No 'next' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:136
+msgid "No 'previous' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:137
+msgid "No 'up' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:138
+msgid "No 'down' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:139
+msgid "No current node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:140
+msgid "Ext2fs operation not supported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:141
+msgid "No room to insert extent in node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:142
+msgid "Splitting would result in empty node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:143
+#, fuzzy
+msgid "Extent not found"
+msgstr "/lost+found dizini yok. "
+
+#: lib/ext2fs/ext2_err.c:144
+msgid "Operation not supported for inodes containing extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:145
+msgid "Extent length is invalid"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:146
+msgid "I/O Channel does not support 64-bit block numbers"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:147
+msgid "Can't check if filesystem is mounted due to missing mtab file"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:148
+msgid "Filesystem too large to use legacy bitmaps"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:149
+msgid "MMP: invalid magic number"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:150
+msgid "MMP: device currently active"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:151
+msgid "MMP: fsck being run"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:152
+msgid "MMP: block number beyond filesystem range"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:153
+msgid "MMP: undergoing an unknown operation"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:154
+#, fuzzy
+msgid "MMP: filesystem still in use"
+msgstr "dosya sistemi uzunluğu hatalı - %s"
+
+#: lib/ext2fs/ext2_err.c:155
+msgid "MMP: open with O_DIRECT failed"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:156
+#, fuzzy
+msgid "Block group descriptor size incorrect"
+msgstr "<Grup tanımlayıcı düğümü>"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+#, fuzzy
+msgid "Superblock checksum does not match superblock"
+msgstr "Süperblokların bulunduğu bloklar:"
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:11
+msgid "Profile version 0.0"
+msgstr ""
+
+#: e2fsck/prof_err.c:12
+msgid "Bad magic value in profile_node"
+msgstr ""
+
+#: e2fsck/prof_err.c:13
+#, fuzzy
+msgid "Profile section not found"
+msgstr "- /lost+found dizini oluÅŸturulurken hata oluÅŸtu"
+
+#: e2fsck/prof_err.c:14
+#, fuzzy
+msgid "Profile relation not found"
+msgstr "- /lost+found dizini oluÅŸturulurken hata oluÅŸtu"
+
+#: e2fsck/prof_err.c:15
+msgid "Attempt to add a relation to node which is not a section"
+msgstr ""
+
+#: e2fsck/prof_err.c:16
+msgid "A profile section header has a non-zero value"
+msgstr ""
+
+#: e2fsck/prof_err.c:17
+msgid "Bad linked list in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:18
+msgid "Bad group level in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:19
+msgid "Bad parent pointer in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:20
+msgid "Bad magic value in profile iterator"
+msgstr ""
+
+#: e2fsck/prof_err.c:21
+msgid "Can't set value on section node"
+msgstr ""
+
+#: e2fsck/prof_err.c:22
+msgid "Invalid argument passed to profile library"
+msgstr ""
+
+#: e2fsck/prof_err.c:23
+msgid "Attempt to modify read-only profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:24
+msgid "Profile section header not at top level"
+msgstr ""
+
+#: e2fsck/prof_err.c:25
+msgid "Syntax error in profile section header"
+msgstr ""
+
+#: e2fsck/prof_err.c:26
+msgid "Syntax error in profile relation"
+msgstr ""
+
+#: e2fsck/prof_err.c:27
+msgid "Extra closing brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:28
+msgid "Missing open brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:29
+msgid "Bad magic value in profile_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:30
+msgid "Bad magic value in profile_section_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:31
+msgid "Iteration through all top level section not supported"
+msgstr ""
+
+#: e2fsck/prof_err.c:32
+#, fuzzy
+msgid "Invalid profile_section object"
+msgstr "Geçersiz dosya sistemi seçeneği: %s\n"
+
+#: e2fsck/prof_err.c:33
+msgid "No more sections"
+msgstr ""
+
+#: e2fsck/prof_err.c:34
+msgid "Bad nameset passed to query routine"
+msgstr ""
+
+#: e2fsck/prof_err.c:35
+msgid "No profile file open"
+msgstr ""
+
+#: e2fsck/prof_err.c:36
+msgid "Bad magic value in profile_file_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:37
+#, fuzzy
+msgid "Couldn't open profile file"
+msgstr "Dosya kopyalanamadı: %m\n"
+
+#: e2fsck/prof_err.c:38
+msgid "Section already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:39
+msgid "Invalid boolean value"
+msgstr ""
+
+#: e2fsck/prof_err.c:40
+msgid "Invalid integer value"
+msgstr ""
+
+#: e2fsck/prof_err.c:41
+msgid "Bad magic value in profile_file_data_t"
+msgstr ""
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "stat %s yapılamadı --- %s\n"
+
+#~ msgid "<The ACL index inode>"
+#~ msgstr "<ACL indeksinin düğümü>"
+
+#~ msgid "<The ACL data inode>"
+#~ msgstr "<ACL verisinin düğümü>"
+
#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
#~ msgstr ""
#~ "Süperblok has_journal bayrağı içermiyor, ama ext3 günlüğü %s içeriyor.\n"
@@ -5379,9 +7417,6 @@ msgstr "Bu olmamalıydı: boyutlandırırken düğümü kaybettik!\n"
#~ "%i. düğümdeki ek özellik geçersiz bir çırpı (hash) içeriyor (%N), 0 "
#~ "olmalı\n"
-#~ msgid "while calling ext2fs_block_iterate"
-#~ msgstr "ext2fs_block_iterate işlevi çağrılırken hata oluştu"
-
#~ msgid "while calling iterator function"
#~ msgstr "- yineleme işlevi çağrılırken hata oluştu"
@@ -5407,6 +7442,9 @@ msgstr "Bu olmamalıydı: boyutlandırırken düğümü kaybettik!\n"
#~ msgid "Byte swap"
#~ msgstr "Ters baytlı"
+#~ msgid "%s is mounted. "
+#~ msgstr "%s bağlandı. "
+
#~ msgid "Byte-swapping filesystems not compiled in this version of e2fsck\n"
#~ msgstr "e2fsck'nın bu sürümünde derlenmemiş ters baytlı sistemler \n"
@@ -5419,18 +7457,24 @@ msgstr "Bu olmamalıydı: boyutlandırırken düğümü kaybettik!\n"
#~ msgid "while retrying to write block bitmaps for %s"
#~ msgstr "- %s için blok biteşlemlerinin yazılması yinelenirken hata oluştu"
-#~ msgid "writing inode bitmaps"
-#~ msgstr "düğüm biteşlemleri yazılıyor"
+#~ msgid "bad block size - %s"
+#~ msgstr "blok uzunluğu hatalı - %s"
-#~ msgid "invalid test_pattern: %s\n"
-#~ msgstr "sınama şablonu geçersiz: %s\n"
-
-#~ msgid "invalid starting block - %s"
-#~ msgstr "başlangıç bloğu hatalı - %s"
+#~ msgid "invalid blocks range: %lu-%lu"
+#~ msgstr "hatalı blok aralığı: %lu-%lu"
#~ msgid "Note: This is a byte-swapped filesystem\n"
#~ msgstr "Bilgi: Bu bir ters-baytlı dosya sistemi\n"
+#~ msgid "short write (only %d bytes) for writing image header"
+#~ msgstr "görüntü başlığını yazmak için kısa yazma (sadece %d bayt)"
+
+#~ msgid "invalid fragment size - %s"
+#~ msgstr "sekme boyu hatalı - %s"
+
+#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
+#~ msgstr "Uyarı: sekmeler desteklenmediğinden -f seçeneği yoksayılıyor\n"
+
#~ msgid ""
#~ "Filesystem too large. No more than 2**31-1 blocks\n"
#~ "\t (8TB using a blocksize of 4k) are currently supported."
@@ -5449,23 +7493,11 @@ msgstr "Bu olmamalıydı: boyutlandırırken düğümü kaybettik!\n"
#~ "\tboylarını desteklemez. Bu sizin için de geçerliyse, -b 4096 hullanın.\n"
#~ "\n"
-#, fuzzy
-#~ msgid "Warning: %d-byte inodes not usable on older systems\n"
+#~ msgid "Warning: %d-byte inodes not usable on most systems\n"
#~ msgstr "Uyarı: %d baytlık düğümler bir çok sistemde kullanımdışıdır.\n"
-#, fuzzy
-#~ msgid "Filesystem %s has unsupported features enabled.\n"
-#~ msgstr ""
-#~ "Dosyasistemi özellikleri 0 revizyonlu dosyasistemlerinde desteklenmiyor\n"
-
-#~ msgid "bad filesystem size - %s"
-#~ msgstr "dosya sistemi uzunluğu hatalı - %s"
-
-#~ msgid "Couldn't find ext2 superblock,"
-#~ msgstr "ext2 süperbloğu bulunamadı,"
-
-#~ msgid "invalid blocks range: %lu-%lu"
-#~ msgstr "hatalı blok aralığı: %lu-%lu"
+#~ msgid "Journal NOT removed\n"
+#~ msgstr "Günlük silinMEdi\n"
#~ msgid ""
#~ "\n"
@@ -5481,6 +7513,14 @@ msgstr "Bu olmamalıydı: boyutlandırırken düğümü kaybettik!\n"
#~ "\n"
#~ "Süperblok azaltma bayrağı temizlendi. %s"
+#~ msgid "#\t\t %u -> %u (%d)\n"
+#~ msgstr "#\t\t %u -> %u (%d)\n"
+
+#~ msgid ""
+#~ "%s is mounted; can't resize a mounted filesystem!\n"
+#~ "\n"
+#~ msgstr "%s bağlı; bağlı bir dosya sistemi yeniden boyutlandırılamaz!\n"
+
#~ msgid "done \n"
#~ msgstr "bitti \n"
@@ -5586,61 +7626,3 @@ msgstr "Bu olmamalıydı: boyutlandırırken düğümü kaybettik!\n"
#~ msgid "Inode table move finished.\n"
#~ msgstr "Düğüm tablosunun taşınması tamamlandı.\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "%8d inode used (%d%%)\n"
-#~ msgid_plural ""
-#~ "\n"
-#~ "%8d inodes used (%d%%)\n"
-#~ msgstr[0] ""
-#~ "\n"
-#~ "%8d düğüm kullanıldı (%%%d)\n"
-#~ msgstr[1] ""
-#~ "\n"
-#~ "%8d düğüm kullanıldı (%%%d)\n"
-
-#~ msgid "%8d non-contiguous inode (%0d.%d%%)\n"
-#~ msgid_plural "%8d non-contiguous inodes (%0d.%d%%)\n"
-#~ msgstr[0] "%8d bitişik olmayan düğüm (%%%0d.%d)\n"
-#~ msgstr[1] "%8d bitişik olmayan düğüm (%%%0d.%d)\n"
-
-#~ msgid "%8d block used (%d%%)\n"
-#~ msgid_plural "%8d blocks used (%d%%)\n"
-#~ msgstr[0] "%8d blok kullanıldı (%%%d)\n"
-#~ msgstr[1] "%8d blok kullanıldı (%%%d)\n"
-
-#~ msgid "%8d bad block\n"
-#~ msgid_plural "%8d bad blocks\n"
-#~ msgstr[0] "%8d hatalı blok\n"
-#~ msgstr[1] "%8d hatalı blok\n"
-
-#~ msgid "%8d large file\n"
-#~ msgid_plural "%8d large files\n"
-#~ msgstr[0] "%8d büyük dosya\n"
-#~ msgstr[1] "%8d büyük dosya\n"
-
-#~ msgid "%8d directory\n"
-#~ msgid_plural "%8d directories\n"
-#~ msgstr[0] "%8d dizin\n"
-#~ msgstr[1] "%8d dizin\n"
-
-#~ msgid "%8d fifo\n"
-#~ msgid_plural "%8d fifos\n"
-#~ msgstr[0] "%8d fifo\n"
-#~ msgstr[1] "%8d fifo\n"
-
-#~ msgid "%8d link\n"
-#~ msgid_plural "%8d links\n"
-#~ msgstr[0] "%8d baÄŸ\n"
-#~ msgstr[1] "%8d baÄŸ\n"
-
-#~ msgid " (%d fast symbolic link)\n"
-#~ msgid_plural " (%d fast symbolic links)\n"
-#~ msgstr[0] " (%d hızlı sembolik bağ)\n"
-#~ msgstr[1] " (%d hızlı sembolik bağ)\n"
-
-#~ msgid "%8d file\n"
-#~ msgid_plural "%8d files\n"
-#~ msgstr[0] "%8d dosya\n"
-#~ msgstr[1] "%8d dosya\n"
diff --git a/po/vi.gmo b/po/vi.gmo
index 99c5039c..8063a597 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 21773f31..75bf9eed 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,9 +1,10 @@
# Vietnamese translation for e2fsprogs.
-# Copyright © 2012 Theodore Tso (msgids)
-# Copyright © 2012 Free Software Foundation, Inc.
+# Bản dịch tiếng Việt dành cho e2fsprogs.
+# Copyright © 2014 Theodore Tso (msgids)
+# Copyright © 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the e2fsprogs package.
# Clytie Siddall <clytie@riverland.net.au>, 2006-2010.
-# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012.
+# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012-2014.
#
#. 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,
@@ -65,26 +66,25 @@
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.42\n"
+"Project-Id-Version: e2fsprogs 1.42.9\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2011-11-29 16:03-0500\n"
-"PO-Revision-Date: 2012-03-16 14:58+0700\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
+"PO-Revision-Date: 2014-01-05 15:17+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
-"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\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.8\n"
-"X-Poedit-Language: Vietnamese\n"
-"X-Poedit-Country: VIET NAM\n"
+"X-Language-Team-Website: <http://translationproject.org/team/vi.html>\n"
+"X-Generator: Poedit 1.5.5\n"
"X-Poedit-SourceCharset: utf-8\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
-msgstr "Khối há»ng %u ở ngoại phạm vi nên bị bá» qua.\n"
+msgstr "Khối há»ng %u nằm ngoài phạm vi nên bị bá» qua.\n"
#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
@@ -94,21 +94,21 @@ msgstr "trong khi kiểm tra sá»± đúng má»±c nút thông tin khối há»ng"
msgid "while reading the bad blocks inode"
msgstr "trong khi Ä‘á»c nút thông tin khối há»ng"
-#: e2fsck/badblocks.c:72 e2fsck/iscan.c:113 e2fsck/scantest.c:110
-#: e2fsck/unix.c:1239 e2fsck/unix.c:1324 misc/badblocks.c:1215
-#: misc/badblocks.c:1223 misc/badblocks.c:1237 misc/badblocks.c:1249
-#: misc/dumpe2fs.c:572 misc/e2image.c:1170 misc/e2image.c:1288
-#: misc/e2image.c:1301 misc/mke2fs.c:193 misc/tune2fs.c:1907 resize/main.c:308
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
-msgstr "trong khi thử mở %s"
+msgstr "trong khi cố mở %s"
#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
-msgstr "trong khi thử mở popen « %s »"
+msgstr "trong khi cố mở popen “%sâ€"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
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"
@@ -116,10 +116,12 @@ msgstr "trong khi Ä‘á»c vào danh sách các khối há»ng từ tập tin"
msgid "while updating bad block inode"
msgstr "trong khi cập nhật nút thông tin khối há»ng"
-#: e2fsck/badblocks.c:131
+#: e2fsck/badblocks.c:133
#, 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 thông tin khối há»ng nên bị xoá.\n"
+msgstr ""
+"Cảnh báo: tìm thấy khối %u không hợp lệ trong nút thông tin khối há»ng nên bị "
+"xoá.\n"
#: e2fsck/ehandler.c:55
#, c-format
@@ -137,7 +139,7 @@ msgstr "Bá» qua lá»—i"
#: e2fsck/ehandler.c:62
msgid "Force rewrite"
-msgstr "Buộc ghi lại"
+msgstr "Ép buộc ghi lại"
#: e2fsck/ehandler.c:104
#, c-format
@@ -155,7 +157,7 @@ msgstr "khối thư mục rỗng"
#: e2fsck/emptydir.c:62
msgid "empty dir map"
-msgstr "sơ đồ thư mục rỗng"
+msgstr "ánh xạ thư mục rỗng"
#: e2fsck/emptydir.c:98
#, c-format
@@ -170,7 +172,7 @@ msgstr "%s: %s tên tập tin số khối cỡ khối\n"
#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
-msgstr "Không cho phép số khối đó.\n"
+msgstr "Không cho phép số khối đó!\n"
#: e2fsck/extend.c:50
#, c-format
@@ -180,73 +182,79 @@ msgstr "Không thể cấp phát bộ đệm khối (cỡ=%d)\n"
#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
-msgstr "Sử dụng: %s đĩa\n"
+msgstr "Cách dùng: %s đĩa\n"
#: e2fsck/flushb.c:64
#, 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"
+msgstr ""
+"BLKFLSBUF ioctl không được hỗ trợ. Không thể đẩy dữ liệu bộ đệm lên đĩa.\n"
-#: e2fsck/iscan.c:47
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr ""
-"Sá»­ dụng: %s [-F] [-I KÄN] thiết_bị\n"
+"Cách dùng: %s [-F] [-I KÄN] thiết_bị\n"
"\n"
"[KÄN: các khối đệm nút thông tin]\n"
"\n"
-#: e2fsck/iscan.c:84 e2fsck/unix.c:902
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, c-format
msgid "while opening %s for flushing"
-msgstr "trong khi mở %s để xoá sạch"
+msgstr "trong khi mở %s để đẩy dữ liệu lên đĩa"
-#: e2fsck/iscan.c:89 e2fsck/unix.c:908 resize/main.c:284
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, c-format
msgid "while trying to flush %s"
-msgstr "trong khi thử xoá sạch %s"
+msgstr "trong khi cố đẩy dữ liệu %s lên đĩa"
+
+#: e2fsck/iscan.c:110
+#, c-format
+msgid "while trying to open '%s'"
+msgstr "trong khi cố mở “%sâ€"
-#: e2fsck/iscan.c:122 e2fsck/scantest.c:117 misc/e2image.c:1065
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "trong khi mở việc quét nút thông tin"
-#: e2fsck/iscan.c:130 misc/e2image.c:1083
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "trong khi lấy nút thông tin kế tiếp"
-#: e2fsck/iscan.c:139
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u nút thông tin đã được quét.\n"
-#: e2fsck/journal.c:511
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "Ä‘ang Ä‘á»c siêu khối nhật ký\n"
-#: e2fsck/journal.c:568
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: không tìm thấy siêu khối nhật ký hợp lệ\n"
-#: e2fsck/journal.c:577
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: nhật ký quá ngắn\n"
-#: e2fsck/journal.c:864
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: đang phục hồi nhật ký\n"
-#: e2fsck/journal.c:866
+#: e2fsck/journal.c:885
#, 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ó tình trạng chỉ Ä‘á»c\n"
-#: e2fsck/journal.c:893
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
-msgstr "trong khi thử mở lại %s"
+msgstr "trong khi cố mở lại %s"
#: e2fsck/message.c:113
msgid "aextended attribute"
@@ -298,7 +306,7 @@ msgstr "emục nhập"
#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
-msgstr "E@e '%Dn' trong %p (%i)"
+msgstr "E@e “%Dn†trong %p (%i)"
#: e2fsck/message.c:126
msgid "ffilesystem"
@@ -314,7 +322,7 @@ msgstr "gnhóm"
#: e2fsck/message.c:129
msgid "hHTREE @d @i"
-msgstr "hHCÂY @d @i"
+msgstr "hHTREE @d @i"
#: e2fsck/message.c:130
msgid "llost+found"
@@ -342,7 +350,7 @@ msgstr "pvấn đỠtrong"
#: e2fsck/message.c:136
msgid "qquota"
-msgstr "qquota"
+msgstr "qhạn nghạch"
#: e2fsck/message.c:137
msgid "rroot @i"
@@ -354,19 +362,19 @@ msgstr "snên là"
#: e2fsck/message.c:139
msgid "Ssuper@b"
-msgstr "Ssiêu @b"
+msgstr "Ssiêu@b"
#: e2fsck/message.c:140
msgid "uunattached"
-msgstr "uchưa gắn nối"
+msgstr "uchưa-gắn"
#: e2fsck/message.c:141
msgid "vdevice"
-msgstr "vthiết bị"
+msgstr "vthiết-bị"
#: e2fsck/message.c:142
msgid "xextent"
-msgstr "xphạm vi"
+msgstr "xmở-rộng"
#: e2fsck/message.c:143
msgid "zzero-length"
@@ -390,15 +398,15 @@ msgstr "<Nút hạn ngạch nhóm>"
#: e2fsck/message.c:159
msgid "<The boot loader inode>"
-msgstr "<nút thông tin bộ nạp khởi động>"
+msgstr "<Nút thông tin bộ nạp khởi động>"
#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
-msgstr "<nút thông tin hủy xoá thư mục>"
+msgstr "<Nút thông tin hủy xoá thư mục>"
#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
-msgstr "<nút thông tin mô tả nhóm>"
+msgstr "<Nút thông tin mô tả nhóm>"
#: e2fsck/message.c:162
msgid "<The journal inode>"
@@ -406,174 +414,167 @@ msgstr "<nút thông tin nhật ký>"
#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
-msgstr "<nút thông tin được dành riêng 9>"
+msgstr "<Nút thông tin được dành riêng 9>"
#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
msgstr "<nút thông tin được dành riêng 10>"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
-msgstr "tập tin chuẩn"
+msgstr "tập tin thÆ°á»ng"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "thư mục"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "thiết bị ký tự"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "thiết bị khối"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "ống dẫn có tên"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
-msgstr "liên kết tượng trưng"
+msgstr "liên kết má»m"
-#: e2fsck/message.c:344 misc/uuidd.c:161
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "ổ cắm"
-#: e2fsck/message.c:346
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "kiểu tập tin không rõ với chế độ 0%o"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr "khối gián tiếp"
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr "khối gián tiếp đôi"
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr "khối gián tiếp gấp ba"
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
msgstr "khối dịch"
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "khối #"
#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
-msgstr "sơ đồ nút thông tin đa tuyên bố"
+msgstr "ánh xạ nút thông tin đa tuyên bố"
-#: e2fsck/pass1b.c:608 e2fsck/pass1b.c:727
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
msgstr "lỗi nội bộ: không tìm thấy khối trùng (dup_blk) cho %llu\n"
-#: e2fsck/pass1b.c:818
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "đã trả lại từ khối tập tin nhái (clone_file_block)"
-#: e2fsck/pass1b.c:840
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "lỗi nội bộ: không thể tra tìm mục ghi khối EA cho %llu"
-#: e2fsck/pass1b.c:852
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr "lỗi nội bộ: không thể tra tìm mục ghi nút thông tin EA cho %u"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:777
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "Ä‘ang Ä‘á»c khối thÆ° mục"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
-msgstr "sơ đồ nút thông tin đang được dùng"
+msgstr "ánh xạ nút thông tin đang được dùng"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
-msgstr "sơ đồ nút thông tin thư mục"
+msgstr "ánh xạ nút thông tin thư mục"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
-msgstr "sơ đồ nút thông tin tập tin chuẩn"
+msgstr "ánh xạ nút thông tin tập tin chuẩn"
-#: e2fsck/pass1.c:622
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
-msgstr "sơ đồ khối đang được dùng"
+msgstr "ánh xạ khối đang được dùng"
-#: e2fsck/pass1.c:684
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "đang mở bản quét nút thông tin"
-#: e2fsck/pass1.c:718
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "đang lấy nút thông tin kế tiếp từ bản quét"
-#: e2fsck/pass1.c:1228
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "Lần 1"
-#: e2fsck/pass1.c:1285
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr "Ä‘ang Ä‘á»c khối gián tiếp của nút thông tin %u"
-#: e2fsck/pass1.c:1335
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
-msgstr "sơ đồ nút thông tin sai"
+msgstr "ánh xạ nút thông tin sai"
-#: e2fsck/pass1.c:1357
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
-msgstr "nút thông tin trong sơ đồ khối sai"
+msgstr "nút thông tin trong ánh xạ khối sai"
-#: e2fsck/pass1.c:1377
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
-msgstr "sơ đồ nút thông tin ma thuật imagic"
+msgstr "ánh xạ nút thông tin ma thuật imagic"
-#: e2fsck/pass1.c:1404
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
-msgstr "sơ đồ khối đa tuyên bố"
+msgstr "ánh xạ khối đa tuyên bố"
-#: e2fsck/pass1.c:1504
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
-msgstr "sơ đồ khối ext attr (thuộc tính thêm?)"
+msgstr "ánh xạ khối ext attr (thuộc tính thêm?)"
-#: e2fsck/pass1.c:2252
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
-msgstr "%6lu (%c): mong đợi %6lu còn nhận %6lu vật lý (đếm khối %lld)\n"
+msgstr "%6lu (%c): cần %6lu nhưng lại nhận được %6lu vật lý (đếm khối %lld)\n"
-#: e2fsck/pass1.c:2613
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "mảng ảnh khối"
-#: e2fsck/pass1.c:2619
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "mảng ảnh nút thông tin"
-#: e2fsck/pass1.c:2625
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "bảng nút thông tin"
-#: e2fsck/pass2.c:278
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "Lần 2"
-#: e2fsck/pass2.c:800
+#: e2fsck/pass2.c:805
msgid "Can not continue."
msgstr "Không thể tiếp tục."
@@ -581,19 +582,19 @@ msgstr "Không thể tiếp tục."
msgid "inode done bitmap"
msgstr "mảng ảnh nút thông tin hoàn tất"
-#: e2fsck/pass3.c:85
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "Bộ nhớ cao điểm"
-#: e2fsck/pass3.c:135
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "Lần 3"
-#: e2fsck/pass3.c:321
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr "mảng ảnh phát hiện vòng lặp nút thông tin"
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "Lần 4"
@@ -659,7 +660,7 @@ msgstr "Tiếp tục"
#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
-msgstr "Nhái theo các khối đa tuyên bố"
+msgstr "Nhân bản các khối đa tuyên bố"
#: e2fsck/problem.c:66
msgid "Delete file"
@@ -675,7 +676,7 @@ msgstr "BỠliên kết"
#: e2fsck/problem.c:69
msgid "Clear HTree index"
-msgstr "Xoá sạch chỉ mục HCây"
+msgstr "Xoá sạch chỉ mục hHTREE"
#: e2fsck/problem.c:70
msgid "Recreate"
@@ -683,7 +684,7 @@ msgstr "Tạo lại"
#: e2fsck/problem.c:79
msgid "(NONE)"
-msgstr "(KHÔNG CÓ)"
+msgstr "(KHÔNG)"
#: e2fsck/problem.c:80
msgid "FIXED"
@@ -755,7 +756,7 @@ msgstr "BỊ BỎ LIÊN KẾT"
#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
-msgstr "CHỈ MỤC HCÂY ÄÃ ÄƯỢC XOà SẠCH"
+msgstr "CHỈ MỤC HTREE ÄÃ ÄƯỢC XOà SẠCH"
#: e2fsck/problem.c:98
msgid "WILL RECREATE"
@@ -782,21 +783,25 @@ msgstr ""
"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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
#: e2fsck/problem.c:122
-#, c-format
+#, fuzzy
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
"\n"
@@ -809,7 +814,7 @@ msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:131
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -822,7 +827,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:138
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -833,18 +838,18 @@ msgstr ""
"khác với kích cỡ @b.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:145
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr "@S @b mỗi nhóm = %b, còn nên là %c\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:150
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr "@S @b dữ liệu thứ nhất = %b, còn nên là %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:155
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -852,7 +857,7 @@ msgstr ""
"@f không có UUID nên đang tạo ra nó.\n"
"\n"
-#: e2fsck/problem.c:160
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -864,54 +869,54 @@ msgid ""
msgstr ""
"Ghi chú: nếu vài khối nút thông tin hay khối mảng ảnh khối\n"
"hay phần của bảng nút thông tin cần thiết được định vị lại,\n"
-"Ä‘á» nghị bạn thá»­ chạy e2fsck vá»›i tùy chá»n « -b %S »\n"
+"Ä‘á» nghị bạ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ỉ trong 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:169
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
-msgstr "Tìm sá»± bị há»ng trong @S. (%s = %N).\n"
+msgstr "Tìm thấy hÆ° há»ng trong @S. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:174
+#: e2fsck/problem.c:176
#, 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 @v vật lý: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:179
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
-msgstr "Số đếm @i trong @S là %i, @s %j.\n"
+msgstr "Số lượng @i trong @S là %i, @s %j.\n"
-#: e2fsck/problem.c:183
+#: e2fsck/problem.c:185
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 journal (inode %i).\n
-#: e2fsck/problem.c:188
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "@S có một @n @j (@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:193
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "@j bên ngoài có nhiá»u ngÆ°á»i dùng @f (không được há»— trợ).\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:198
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "Không tìm thấy @j bên ngoài\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:203
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "@j bên ngoài có @S sai\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:208
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "@j bên ngoài không hỗ trợ @f này\n"
@@ -919,103 +924,105 @@ msgstr "@j bên ngoài không hỗ trợ @f này\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:213
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"@S @j @f có kiểu lạ %N (không được hỗ trợ).\n"
-"Rất có thể là bạn có một bản sao e2fsck cũ mà/hay không hỗ trợ định dạng @j này.\n"
+"Rất có thể là bạn có một bản sao e2fsck cũ mà/hay không hỗ trợ định dạng @j "
+"này.\n"
"CÅ©ng có thể là @S @j bị há»ng.\n"
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:221
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
msgstr "@S @j bị há»ng.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:226
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr "CỠ@S has_@j vẫn tốt, mà cũng có một @j %s.\n"
+msgstr "CỠ@S has_@j vẫn tốt, nhưng lại có một @j %s hiện diện ở đây.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:231
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
-msgstr "@S đặt cỠneeds_recovery, còn không có @j.\n"
+msgstr "@S đặt cỠneeds_recovery, còn không có @j hiện diện.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:236
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr "CỠ@S needs_recovery vẫn tốt, còn @j có dữ liệu.\n"
+msgstr "CỠ@S needs_recovery vẫn tốt, nhưng @j lại có dữ liệu.\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:241
+#: e2fsck/problem.c:243
msgid "Clear @j"
msgstr "Xoá sạch @j"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:246 e2fsck/problem.c:690
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
msgstr "@f đặt (các) cỠtính năng, còn là @f bản sửa đổi 0."
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:251
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr "@i @o %s %i (uid=%Iu, gid=%Ig, chế độ=%Im, cỡ=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:256
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
msgstr "%B (%b) @l được tìm trong @i @o %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:261
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "Äã xoá sạch %B (%b) được tìm trong @i @o %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:266
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@i @o %i @l trong @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:271
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr "@I @i %i in @o @i list.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:276
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr "@S @j đặt má»™t cá» tính năng chỉ Ä‘á»c không rõ.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:281
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr "@S @j đặ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:286
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "Phiên bản @j không hỗ trợ trong e2fsck này.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:291
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
"\n"
msgstr ""
-"Äang di chuyển @j từ /%s sang @i bị ẩn.\n"
+"Äang di chuyển @j từ /%s sang @i ẩn.\n"
"\n"
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:296
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -1027,7 +1034,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:301
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1038,18 +1045,18 @@ msgstr ""
"\n"
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:307
+#: e2fsck/problem.c:309
msgid "Run @j anyway"
msgstr "Vẫn chạy @j"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:312
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
msgstr "Chưa đặt cỠphục hồi trong @S dự trữ nên vẫn chạy @j.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:317
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1059,7 +1066,7 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:322
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
@@ -1068,42 +1075,42 @@ msgstr ""
"@s số không. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:328
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr "Không bật resize_@i, còn @i thay đổi kích cỡ không phải số không.. "
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:333
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr "@i thay đổi kích cỡ không phải hợp lệ. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:338
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
msgstr ""
"GiỠgắn kết @S cuối cùng\n"
-"(%t, bây giỠ= %T) nằm trong tương lai.\n"
+"(%t, bây giá» = %T) nằm trong thá»i tÆ°Æ¡ng lai.\n"
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:343
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
-msgstr "GiỠghi nhớ @S cuối cùng(%t, bây giỠ= %T) nằm trong tương lai.\n"
+msgstr "GiỠghi @S cuối cùng(%t, bây giỠ= %T) nằm trong thì tương lai.\n"
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:347
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr "Lá»i gợi ý @S cho siêu khối bên ngoài @s %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:352
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
@@ -1111,50 +1118,44 @@ msgstr ""
"Äang thêm mẹo dirhash vào @f.\n"
"\n"
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:357
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
-msgstr "Mô tả @g %g có tổng kiểm sai. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
+msgstr "Mô tả @g %g có tổng kiểm là %04x, phải là %04y."
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:362
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr "Mô tả @g %g có nhãn là chưa sơ khởi mà không có tập tính năng.\n"
-
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:367
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr "@B @b của @g %g chưa sơ khởi nhưng đang dùng @B @i.\n"
+msgstr "Mô tả @g %g có nhãn là chưa khởi tạo mà không có tập tính năng.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:372
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr "Mô tả @g %g sai đếm các nút thông tin chưa dùng %b. "
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:377
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
-msgstr "Chưa sơ khởi @B @b @g cuối cùng. "
+msgstr "Chưa khởi tạo @B @b @g cuối cùng. "
-#: e2fsck/problem.c:382
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr "Giao dịch nhật ký %i bị há»ng nên hủy bá» tiến trình phát lại.\n"
-#: e2fsck/problem.c:386
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
-msgstr "CỠ« test_fs » được đặt (và ext4 sẵn sàng)"
+msgstr "CỠ“test_fs†được đặt (và ext4 sẵn sàng)"
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:391
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
"GiỠgắn kết @S cuối cùng nằm trong tương lai\n"
"\t(theo ít nhất một ngày, rất có thể do đồng hồ phần cứng bị sai lập)."
@@ -1162,161 +1163,173 @@ msgstr ""
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:397
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
"GiỠghi nhớ @S cuối cùng nằm trong tương lai\n"
"\t(theo ít nhất một ngày, rất có thể do đồng hồ phần cứng bị sai lập)."
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:403
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
msgstr "Lá»—i: má»™t hay nhiá»u tổng kiểm bá»™ mô tả @g @b không phải hợp lệ. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
-#: e2fsck/problem.c:408
+#: e2fsck/problem.c:405
msgid "Setting free @is count to %j (was %i)\n"
msgstr "Äang đặt số lượng @is thành %j (là %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:410
msgid "Setting free @bs count to %c (was %b)\n"
msgstr "Äang đặt số lượng @bs thành %c (là %b)\n"
-#. @-expanded: Making quota inodes hidden.\n
-#. @-expanded: \n
-#: e2fsck/problem.c:418
-msgid ""
-"Making @q @is hidden.\n"
-"\n"
-msgstr ""
-"Làm cho @q @is ẩn đi.\n"
-"\n"
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr "Làm cho @q @is %i (%Q) ẩn đi.\n"
#. @-expanded: superblock has invalid MMP block.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:420
msgid "@S has invalid MMP block. "
-msgstr "@S có khối MMP không hợp lệ. "
+msgstr "@S có khối MMP không hợp lệ. "
#. @-expanded: superblock has invalid MMP magic.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:425
msgid "@S has invalid MMP magic. "
msgstr "@S có số màu nhiệm MMP không hợp lệ."
-#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr "ext2fs_open2: %m\n"
+
#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr "ext2fs_check_desc: %m\n"
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+"hệ thống tập tin @S 64bit cần mở rộng để có thể truy cập toàn bộ đĩa. "
+
+#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "Lần qua 1: đang kiểm tra các @i, @b và kích cỡ\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:439
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "@r không phải @d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:444
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr "@r đặt dtime (rất có thể do mkd2fs cũ). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:449
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "@i %i đã dành riêng (%Q) có chế độ @n."
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:454
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr "@i @D %i có dtime bằng không. "
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:459
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr "@i %i đang được dùng, còn đặt dtime. "
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:464
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
-msgstr "@i %i là @d @z"
+msgstr "@i %i là @d @z. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:469
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
msgstr "@B @b của @g %g tại %b @C.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:474
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
msgstr "@B @i của @g %g ở %b @c.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:479
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr "Bảng @i của @g %g ở %b @C.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:484
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr "@b @B (%b) của @g %g là sai"
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:489
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr "@B @i (%b) của @g %g là sai."
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:494
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr "@i %i, i_size là %Is, @s %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:499
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr "@i %i, i_@bs là %Ib, @s %N. "
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:504
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
msgstr "%B (%b) @l nằm trong @i %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:509
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr "%B (%b) đè lên siêu dữ liệu @f trong @i %i. "
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:514
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "@i %i có @b cấm. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:519
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "Quá nhiá»u @b cấm trong @i %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:524
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
msgstr "%B (%b) @l nằm trong @i @b sai. "
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:529
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr "@i @b sai có @b cấm. "
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:534
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr "@b trùng hay sai đang được dùng.\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:539
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr "@b sai %b được dùng làm @b gián tiếp của @i @b. "
@@ -1324,7 +1337,7 @@ msgstr "@b sai %b được dùng làm @b gián tiếp của @i @b. "
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
#. @-expanded: should stop now and run e2fsck -c to scan for bad blocks\n
#. @-expanded: in the filesystem.\n
-#: e2fsck/problem.c:544
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1332,12 +1345,12 @@ msgid ""
"in the @f.\n"
msgstr ""
"\n"
-"@i @n rất có thể bị há»ng. Äá» nghị bạn thôi ngay bây giá»\n"
-"và chạy lệnh « e2fsck -c » để quét tìm khối sai trong @f.\n"
+"@i @n gần nhÆ° chắc chắn đã há»ng. Äá» nghị bạn dừng ngay bây giá»\n"
+"và chạy lệnh “e2fsck -c†để quét tìm khối sai trong @f.\n"
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:551
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1348,7 +1361,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:556
+#: e2fsck/problem.c:568
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"
@@ -1359,274 +1372,276 @@ msgstr ""
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:562
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr "@S chính (%b) nằm trên danh sách các @b sai.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:567
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Khối %b trong những mô tả @g chính có nằm trong danh sách các @b sai.\n"
+msgstr ""
+"Khối %b trong những mô tả @g chính có nằm trong danh sách các @b sai.\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:573
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr "Cảnh báo: @S của @g %g (%b) là sai.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:578
+#: e2fsck/problem.c:590
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ả @g của nhóm %g có một @b sai (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr "Lỗi lập trình ? @b %b được tuyên bố, không có lý do, trong process_bad_@b\n"
+msgstr ""
+"Lỗi lập trình? @b %b được tuyên bố, không có lý do, trong process_bad_@b\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:590
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr "@A %N @b ká» nhau trong @g @b %g cho %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:595
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr "@A bộ đệm @b để định vị lại %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:600
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr "Äang định vị lại %s của @g %g từ %b sang %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:605
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr "Äang định vị lại %2$s của @g %1$g sang %3$c...\n"
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:610
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "Cảnh báo: không thể Ä‘á»c @b %b trên %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:615
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "Cảnh báo: không thể ghi @b %b cho %s: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:620 e2fsck/problem.c:1455
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr "@A @B @i (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:625
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr "@A @B @b (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:630
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr "@A thông tin liên kết icount: %m\n"
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "@A mảng @d @d: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:640
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr "Gặp lỗi khi quét các @i (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:645
+#: e2fsck/problem.c:657
#, 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 @b trong @i %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:650
+#: e2fsck/problem.c:662
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 @i (@i=%i, đếm=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:655
+#: e2fsck/problem.c:667
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 @d @b (@i=%i, @b=%b, số=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:661
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "Gặp lá»—i khi Ä‘á»c @i %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr "@i %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:674
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Tập tin (@vị/ổ cắm/FIFO/liên kết tượng trưng) đặc biệt\n"
+"Tập tin (@v/ổ cắm/FIFO/liên kết má»m) đặc biệt\n"
"(@i %i) đặt cỠkhông thay đổi (immutable) hay\n"
-"chỉ phu thêm (append-only)."
+"chỉ phụ thêm (append-only)."
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:680
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr "@i %i đặt cỠ@c trên @f mà không hỗ trợ khả năng @c."
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr "@i (@v/ổ cắm/FIFO) %i có kích cỡ không phải số không."
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr "@i @j không đang được dùng, còn chứa dữ liệu."
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "@j không phải tập tin chuẩn. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr "@i %i đã thuộc vỠsanh sách @i @o. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:711
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr "Tìm thấy các @i đã thuá»™c vá» danh sách đã liên kết thừa bị há»ng."
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:716
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr "@A cấu trúc refcount (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:721
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr "Gặp lá»—i khi Ä‘á»c @b @a %b cho @i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:726
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr "@i %i có một @b @a %b. "
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:731
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr "Gặp lá»—i khi Ä‘á»c @b @a %b (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:736
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
msgstr "@b @a %b có số đếm tham chiếu %r, @s %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:741
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr "Gặp lỗi khi ghi @b @a %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:746
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr "@b @a %b có h_@b > 1. "
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:751
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr "@A @b @a %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:756
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr "@b @a %b bị há»ng (xung Ä‘á»™t cấp phát)."
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:761
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr "@b @a %b bị há»ng (tên @n). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:766
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr "@b @a %b bị há»ng (giá trị @n). "
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:771
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
-msgstr "@i %i quá lớn. "
+msgstr "@i %i là quá lớn. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:775
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
-msgstr "%B (%b) gây ra @d quá lớn. "
+msgstr "%B (%b) gây ra @d quá lớn. "
-#: e2fsck/problem.c:780
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
-msgstr "%B (%b) gây ra tập tin quá lớn. "
+msgstr "%B (%b) làm cho tập tin quá lớn. "
-#: e2fsck/problem.c:785
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
-msgstr "%B (%b) gây ra liên kết tượng trưng quá lớn. "
+msgstr "%B (%b) làm cho liên kết má»m quá lá»›n."
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:790
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr "@i %i đặt cỠINDEX_FL trên @f không có hỗ trợ htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:795
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr "@i %i đặt cỠINDEX_FL nhưng không phải @d.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr "@h %i có một nút gốc @n.\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr "@h %i có một 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:810
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr "@h %i dùng cỠnút gốc htree 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:815
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr "@h %i có độ sâu cây (%N) quá lớn\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
@@ -1635,55 +1650,55 @@ msgstr ""
"siêu dữ liệu @f. "
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:826
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr "Việc tạo (lại) sự thay đổi kích cỡ @i bị lỗi: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:831
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr "@i %i có một kích cỡ thêm (%IS) @n\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:836
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr "@a trong @i %i có một namelen (%N) @n\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:841
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr "@a trong @i %i có một hiệu giá trị (%N) @n\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:846
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr "@a trong @i %i có một giá trị @b (%N) @n (phải là 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
msgstr "@a trong @i %i có một kích cỡ giá trị (%N) @n\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr "@a trong @i %i có một chuỗi duy nhất (%N) mà @n\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr "@i %i là %It nhưng hình như nó thực sự là thư mục.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr "Gặp lá»—i khi Ä‘á»c qua cây @x trong @i %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1693,7 +1708,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:877
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1703,7 +1718,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:882
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
@@ -1712,31 +1727,32 @@ msgstr ""
"\t(@b hợp lý %c, @b vật lý %b, dài @n %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:887
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr "@i %i đặt cỠEXTENTS_FL trên @f mà không hỗ trợ phạm vi.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:892
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr "@i %i theo định dạng phạm vi, còn @S thiếu tính năng phạm vi (EXTENTS)\n"
+msgstr ""
+"@i %i theo định dạng phạm vi, còn @S thiếu tính năng phạm vi (EXTENTS)\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr "@i %i thiếu EXTENTS_FL, nhưng theo định dạng phạm vi\n"
-#: e2fsck/problem.c:902
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
-msgstr "Liên kết tượng trưng nhanh %i đã đặt EXTENTS_FL. "
+msgstr "Liên kết má»m nhanh %i đã đặt EXTENTS_FL. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:907
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
@@ -1745,45 +1761,70 @@ msgstr ""
"\t(@b hợp lý %c, @b vật lý %b, dài %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:911
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr "@i %i có một nút tầm không hợp lệ (blk %b, lblk %c)\n"
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:915
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-msgstr "@i %i không nên lập EOFBLOCKS_FL (kích cỡ %Is, lblk %r)\n"
-
#. @-expanded: Error converting subcluster block bitmap: %m\n
-#: e2fsck/problem.c:921
+#: e2fsck/problem.c:928
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
msgstr "Gặp lỗi khi chuyển đổi liên cung con @b @B: %m\n"
#. @-expanded: quota inode is not regular file.
-#: e2fsck/problem.c:926
+#: e2fsck/problem.c:933
msgid "@q @i is not regular file. "
msgstr "@q @i không phải tập tin thông thÆ°á»ng. "
#. @-expanded: quota inode is not in use, but contains data.
-#: e2fsck/problem.c:931
+#: e2fsck/problem.c:938
msgid "@q @i is not in use, but contains data. "
msgstr "@q @i đang không được dùng, nhưng chứa dữ liệu."
#. @-expanded: quota inode is visible to the user.
-#: e2fsck/problem.c:936
+#: e2fsck/problem.c:943
msgid "@q @i is visible to the user. "
msgstr "@q @i sẵn dùng."
#. @-expanded: The bad block inode looks invalid.
-#: e2fsck/problem.c:941
+#: e2fsck/problem.c:948
msgid "The bad @b @i looks @n. "
msgstr "The bad @b @i looks @n. "
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+"@i %i có phần mở rộng mà độ dài bằng không\n"
+"\t(@n lôgíc @b %c, vật lý @b %b)\n"
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+"Ở trong nút @x mức %N/@i %i:\n"
+"Khởi đầu lô-gíc %b không khớp với khởi đầu lô-gíc %c tại mức kế tiếp. "
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+"@i %i, điểm kết thúc vượt quá giá trị cho phép\n"
+"\t(lô-gíc @b %c, vật lý @b %b, dài %N)\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:948
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1795,46 +1836,46 @@ msgstr ""
"Lần qua 1B: đang quét lại tìm @b @m.\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:954
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr "@b @m trong @i %i:"
-#: e2fsck/problem.c:969
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr "Gặp lỗi khi quét các nút thông tin (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr "@A @B @i (@i_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:1005
#, 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 @b trong @i %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:984 e2fsck/problem.c:1299
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
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 @b @a %b (@i %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:989
+#: e2fsck/problem.c:1015
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 @i có @b @m\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr "Lần qua 1D: Ä‘ang Ä‘iá»u hoà các @b @m\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
@@ -1843,18 +1884,18 @@ msgstr ""
" có %r @b @m, chia sẻ với %N tập tin:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:1006
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr "\t%Q (@i #%i, giỠsửa đổi %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<siêu dữ liệu @f>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1864,323 +1905,323 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-"@b @m đã được gán lại hay nhái.\n"
+"@b @m đã được gán lại hay nhân bản.\n"
"\n"
-#: e2fsck/problem.c:1034
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
-msgstr "Không thể nhái theo tập tin: %m\n"
+msgstr "Không thể nhân bản tập tin: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "Lần qua 2: đang kiểm tra cấu trúc @d\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
-msgstr "Con số @i @n cho dấu chấm « . » trong @i @d %i.\n"
+msgstr "Con số @i @n cho dấu chấm “.†trong @i @d %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr "@E có số hiệu @i @n: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr "@E có @i @D/chưa dùng %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
-msgstr "@E @L đến « . » "
+msgstr "@E @L đến “.†"
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr "@E chỉ tới @i (%Di) nằm trong @b sai.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr "@E @L đến @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr "@E @L tá»›i @r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr "@E có tên chứa ký tự cấm.\n"
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
-msgstr "Thiếu « . » trong @i @d %i.\n"
+msgstr "Thiếu “.†trong @i @d %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
-msgstr "Thiếu « .. » trong @i @d %i.\n"
+msgstr "Thiếu “..†trong @i @d %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr "@e '%Dn' thứ nhất (@i=%Di) trong @i @d %i (%p) @s « . »\n"
+msgstr "@e “%Dn†thứ nhất (@i=%Di) trong @i @d %i (%p) @s “.â€\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
-msgstr "@e '%Dn' thứ hai (@i=%Di) trong @i @d %i @s « .. »\n"
+msgstr "@e “%Dn†thứ hai (@i=%Di) trong @i @d %i @s “..â€\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1131
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:1110
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr "i_file_acl @F %If, @s số không.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr "i_dir_acl @F %Id, @s số không.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr "i_frag @F %N, @s số không.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr "i_fsize @F %N, @s số không.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "@i %i (%Q) có chế độ @n (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "@i @d %i, %B, hiệu %N: @d bị há»ng\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "@i @d %i, %B, hiệu %N: tên tập tin quá dài\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "@i @d %i có một %B chưa cấp phát. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "@e @d « . » trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
+msgstr "@e @d “.†trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "@e @d « .. » trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
+msgstr "@e @d “..†trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr "@i %i (%Q) là @v ký tự @I.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr "@i %i (%Q) là @v @b @I.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
-msgstr "@E là @e « . » trùng.\n"
+msgstr "@E là @e “.†trùng.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
-msgstr "@E là @e « .. » trùng.\n"
+msgstr "@E là @e “..†trùng.\n"
-#: e2fsck/problem.c:1180 e2fsck/problem.c:1480
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, 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:1185
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr "@E có rec_len %Dr, @s %N.\n"
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr "@A cấu trúc icount: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr "Gặp lỗi khi lặp lại trên các @b @d: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr "Gặp lá»—i khi Ä‘á»c @b @d %b (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr "Gặp lỗi khi ghi @b @d %b (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr "@A @b @d má»›i cho @i %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr "Gặp lỗi khi hủy cấp phát @i %i: %m\n"
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
-msgstr "@d @e đối với '.' trong %p (%i) quá lớn.\n"
+msgstr "@d @e đối với “.†trong %p (%i) quá lớn.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr "@i %i (%Q) là một FIFO @I.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr "@i %i (%Q) là một ổ cắm @I.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr "Äăng đặt kiểu tập tin cho @E thành %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr "@E có kiểu tập tin không đúng (đã %Dt, @s %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr "@E đặt kiểu tập tin.\n"
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr "@E có tên @z.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
-msgstr "Liên kết tượng trưng %Q (@i #%i) @n.\n"
+msgstr "Liên kết má»m %Q (@i #%i) @n.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr "@a @b @F @n (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr "@f chứa các tập tin lớn còn thiếu cỠLARGE_FILE trong @S.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
msgstr "@p @h %d: %B không được tham chiếu\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
msgstr "@p @h %d: %B được tham chiếu hai lần\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
msgstr "@p @h %d: %B có chuỗi duy nhất tối thiểu sai\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
msgstr "@p @h %d: %B có chuỗi duy nhất tối đa sai\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr "@h @n %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr "@p @h %d (%q): số @b sai %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1304
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "@p @h %d: nút gốc @n\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr "@p @h %d: %B có giới hạn @n (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr "@p @h %d: %B có số đếm @n (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr "@p @h %d: %B có một bảng chuỗi duy nhất không đặt thứ tự\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr "@p @h %d: %B có chiá»u sâu @n (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr "Tìm thấy @E trùng. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2192,127 +2233,129 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
"\n"
msgstr ""
-"Tìm thấy @e '%Dn' trùng\n"
+"Tìm thấy @e “%Dn†trùng\n"
"\tnên nhãn %p (%i) cần được xây dựng lại.\n"
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr "i_blocks_hi @F %N, @s số không.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr "Gặp @b bất thÆ°á»ng trong @h %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1353
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr "@E tham chiếu đến @i %Di trong @g %g ở vị trí đặt _INODE_UNINIT.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "@E tham chiếu đến @i %Di được tìm trong vùng nút thông tin không dùng của @g %g.\n"
+msgstr ""
+"@E tham chiếu đến @i %Di được tìm trong vùng nút thông tin không dùng của @g "
+"%g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr "i_file_acl_hi @F %N, @s số không.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
-msgstr "Lần qua 3: đang kiểm tra khả năng kết nối của @d\n"
+msgstr "Lần 3: Äang kiểm tra khả năng kết nối của @d\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
-msgstr "Chưa cấp phát @r."
+msgstr "Chưa cấp phát @r. "
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
-msgstr "Không có chỗ còn rảnh trong @d @l."
+msgstr "Không có chỗ còn rảnh trong @d @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr "@i @d %i không được kết nối (%p)\n"
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/@l không tìm thấy."
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
-msgstr "« .. » trong %Q (%i) là %P (%j), @s %q (%d).\n"
+msgstr "“..†trong %Q (%i) là %P (%j), @s %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr "Có /@l 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:1405
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr "Không thể mở rộng /@l: %m\n"
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1436
#, 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:1415
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
-msgstr "Gặp lỗi khi thử tìm /@l: %m\n"
+msgstr "Gặp lỗi khi cố tìm /@l: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_@b: %m trong khi thử tạo @d /@l\n"
+msgstr "ext2fs_new_@b: %m trong khi cố tạo @d /@l\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_@i: %m trong khi thử tạo @d /@l\n"
+msgstr "ext2fs_new_@i: %m trong khi cố tạo @d /@l\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr "ext2fs_new_dir_@b: %m trong khi thử tạo @b @d mới\n"
+msgstr "ext2fs_new_dir_@b: %m trong khi đang tạo @b @d mới\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr "ext2fs_write_dir_@b: %m trong khi ghi @b @d cho /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr "Gặp lá»—i khi Ä‘iá»u chỉnh số đếm @i trên @i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2323,7 +2366,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2333,219 +2376,228 @@ msgstr ""
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1460
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "Gặp lỗi khi tạo @d gốc (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr "Gặp lỗi khi tạo @d /@l (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "@r không phải @d nên hủy bá».\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr "Không thể tiếp tục khi không có @r.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1485
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr "/@l không phải @d (ino=%i)\n"
-#: e2fsck/problem.c:1492
+#: e2fsck/problem.c:1518
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:1497
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr "Lỗi tạo bộ lặp lại thư mục tới băm (dirs_to_hash): %m\n"
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr "Lỗi tối ưu hoá thư mục %q (%d): %m\n"
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "Äang tối Æ°u hoá các thÆ° mục: "
-#: e2fsck/problem.c:1524
+#: e2fsck/problem.c:1550
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:1529
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr "@i @u @z %i. "
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr "@i @u %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr "@i %i có số đếm tham chiếu %Il, @s %N. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
-#: e2fsck/problem.c:1543
+#: e2fsck/problem.c:1569
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"
-"\tHOẶC NGƯỜI NAO ÄANG KIỂM TRA MỘT HỆ THá»NG TẬP TIN Äà LẮP (ÄỘNG).\n"
+"\tHOẶC NGƯỜI NÀO ÄANG KIỂM TRA MỘT HỆ THá»NG TẬP TIN Äà LẮP (ÄỘNG).\n"
"@i_link_info[%i] là %N, @i.i_links_count là %Il: @s trùng.\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1553
+#: e2fsck/problem.c:1579
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"
+msgstr "Lần 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:1558
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr "Chưa đặt độ đệm tại kết thúc của @B @I."
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr "Chưa đặt độ đệm tại kết thúc của @B @b."
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
-msgstr "Hiệu @B @b:"
+msgstr "Khác biệt @B @b: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1588
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
-msgstr "Hiệu @B @i:"
+msgstr "Khác biệt @B @i: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1608
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Số đếm các @i rảnh không đúng cho @g #%g (%i, đã đếm=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr "Số đếm các thư mục không đúng cho @g #%g (%i, đã đếm=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr "Số đếm các @i rảnh không đúng (%i, đã đếm=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr "Số đếm các @b rảnh không đúng cho @g #%g (%b, đã đếm=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr "Số đếm các @b rảnh không đúng (%b, đã đếm=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1633
-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: trong @f (#%N) có các điểm cuối @B (%b, %c) không tương ứng với các điểm cuối @B đã tính (%i, %j)\n"
+#: e2fsck/problem.c:1659
+msgid ""
+"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
+"endpoints (%i, %j)\n"
+msgstr ""
+"LỖI LẬP TRÌNH: trong @f (#%N) có các điểm cuối @B (%b, %c) không tương ứng "
+"với các điểm cuối @B đã tính (%i, %j)\n"
-#: e2fsck/problem.c:1639
+#: e2fsck/problem.c:1665
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 mảng ảnh (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr "Gặp lỗi khi sao chép vào @B @i thay thế: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr "Gặp lỗi khi sao chép vào @B @b thay thế: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1674
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr "Các @b của @g %g đang được dùng, còn @g có nhãn là BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr "Các @i của @g %g đang được dùng, còn @g có nhãn là INODE_UNINIT\n"
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1686
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
msgstr "Tạo lại @j"
-#: e2fsck/problem.c:1805
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr "Cập nhật thông tin hạn ngạch cho kiểu hạn ngạch %N"
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr "Mã lỗi chưa quản lý (0x%x)!\n"
-#: e2fsck/problem.c:1905
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "BỊ BỎ QUA"
-#: e2fsck/scantest.c:82
+#: e2fsck/scantest.c:79
#, 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:101
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "kích cỡ nút thông tin=%d\n"
-#: e2fsck/scantest.c:122
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr "trong khi khởi chạy tiến trình quét nút thông tin"
-#: e2fsck/scantest.c:133
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr "trong khi chạy tiến trình quét nút thông tin"
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, 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 thông tin %d"
+msgstr ""
+"trong khi gá»i hàm lặp lại khối “ext2fs_block_iterate†cho nút thông tin %d"
-#: e2fsck/super.c:210
+#: e2fsck/super.c:213
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
-msgstr "trong khi gá»i hàm « ext2fs_adjust_ea_refcount » cho nút thông tin %d"
+msgstr "trong khi gá»i hàm “ext2fs_adjust_ea_refcount†cho nút thông tin %d"
-#: e2fsck/super.c:269
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "Äang cắt ngắn"
-#: e2fsck/super.c:270
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "Äang xoá sạch"
-#: e2fsck/unix.c:77
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2553,32 +2605,32 @@ msgid ""
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extended-options] device\n"
msgstr ""
-"Sử dụng: %s [-panyrcdfvtDFV] [-b siêu_khối] [-B cỡ_khối]\n"
+"Cách dùng: %s [-panyrcdfvtDFV] [-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_sai] [-C fd] [-j nhật_ký_ngoài]\n"
"\t\t[-E tùy_chá»n_đã_mở_rá»™ng] thiết_bị\n"
-#: e2fsck/unix.c:83
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
"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"
+" -y Giả sá»­ trả lá»i “Có†má»i câu há»i\n"
" -c Kiểm tra tìm khối sai: thêm vào danh sách khối sai\n"
-" -f Buộc kiểm tra ngay cả khi hệ thống tập tin có nhãn là sạch\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:89
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2587,153 +2639,152 @@ msgid ""
" -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_sai Thêm vào danh sách các khối sai\n"
-" -L tập_tin_khối_sai Äặt danh sách các khối sai\n"
+" -v Xuất chi tiết\n"
+" -b siêu_khối Dùng siêu khối xen kẽ\n"
+" -B cỡ_khối Buộ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 địa Ä‘iểm của nhật ký bên ngoài\n"
+" -l tập_tin_khối_sai Thêm vào danh sách các khối sai\n"
+" -L tập_tin_khối_sai Äặt danh sách các khối sai\n"
-#: e2fsck/unix.c:133
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %u/%u tập tin (%0d.%d%% không kỠnhau), %llu/%llu khối\n"
-#: e2fsck/unix.c:139
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u nút đã được sử dụng (%2.2f%%)\n"
+"%12u inode đã được dùng (%2.2f%%, vượt quá %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u tệp tin không kỠnhau (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u tệp tin không liá»n ká» nhau (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u thư mục không kỠnhau (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u thư mục không kỠnhau (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " số inode có khối ind/dind/tind: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " # số inode có khối ind/dind/tind: %u/%u/%u\n"
-#: e2fsck/unix.c:158
-#, c-format
-msgid " Extent depth histogram: "
-msgstr " Äồ thị Ä‘á»™ sâu: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Äồ thị Ä‘á»™ sâu: "
-#: e2fsck/unix.c:167
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu khối đã được sử dụng (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu khối đã dùng (%2.2f%%, vượt quá %llu)\n"
-#: e2fsck/unix.c:170
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u khối há»ng\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u khối há»ng\n"
-#: e2fsck/unix.c:172
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u tập tin lớn\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u tập tin quá lớn\n"
-#: e2fsck/unix.c:174
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u tập tin thÆ°á»ng\n"
+"%12u tập tin thÆ°á»ng\n"
-#: e2fsck/unix.c:176
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u thư mục\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u thư mục\n"
-#: e2fsck/unix.c:178
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u thiết bị ký tự\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u thiết bị ký tự\n"
-#: e2fsck/unix.c:181
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u tệp tin thiết bị khối\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u tệp tin thiết bị khối\n"
-#: e2fsck/unix.c:183
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u tập tin fifo\n"
-#: e2fsck/unix.c:185
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u liên kết\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u liên kết\n"
-#: e2fsck/unix.c:188
+#: e2fsck/unix.c:209
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u liên kết tượng trưng"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u liên kết má»m"
-#: e2fsck/unix.c:190
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
-msgstr[0] " (%u liên kết tượng trưng nhanh)\n"
+msgstr[0] " (%u liên kết má»m nhanh)\n"
-#: e2fsck/unix.c:192
+#: e2fsck/unix.c:215
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u ổ cắm\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:219
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u tệp tin\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u tập tin\n"
-#: e2fsck/unix.c:209 misc/badblocks.c:984 misc/tune2fs.c:1978 misc/util.c:147
-#: resize/main.c:251
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
-msgstr "trong khi quyết định nếu %s đã gắn kết chưa."
+msgstr "trong khi dò tìm xem %s đã gắn kết chưa."
-#: e2fsck/unix.c:227
+#: e2fsck/unix.c:252
#, c-format
-msgid "Warning! %s is mounted.\n"
-msgstr "Cảnh báo: %s đã gắn kết.\n"
+msgid "Warning! %s is %s.\n"
+msgstr "Cảnh báo! %s là %s.\n"
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s đã gắn kết. "
+msgid "%s is %s.\n"
+msgstr "%s là %s.\n"
-#: e2fsck/unix.c:233
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
@@ -2741,8 +2792,7 @@ msgstr ""
"Không thể tiếp tục nên hủy bá».\n"
"\n"
-#: e2fsck/unix.c:235
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
@@ -2752,83 +2802,81 @@ msgid ""
msgstr ""
"\n"
"\n"
-"\a\a\a\aCẢNH BÃO !!! Hệ thống tập tin đã gắn kết. Vẫn tiếp tục thì\n"
+"CẢNH BÃO!!! Hệ thống tập tin đã gắn kết. Vẫn tiếp tục thì\n"
"đây có thể là nguyên nhân ***LÀM HỎNG NẶNG*** hệ thống tập tin.\n"
"\n"
-#: e2fsck/unix.c:239
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "Bạn thực sự muốn tiếp tục"
-#: e2fsck/unix.c:241
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "kiểm tra bị hủy bá».\n"
-#: e2fsck/unix.c:323
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr " chứa hệ thống tập tin có lỗi"
-#: e2fsck/unix.c:325
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr " chưa tháo gắn kết sạch"
-#: e2fsck/unix.c:327
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
-msgstr "các tính năng của siêu khối chính khác với bản sao lưu"
+msgstr " tính năng của siêu khối chính khác với bản sao lưu"
-#: e2fsck/unix.c:331
+#: e2fsck/unix.c:372
#, 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:338
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
-msgstr "có giỠkiểm tra hệ thống tập tin lần cuối cùng trong tương lai"
+msgstr " có giỠkiểm tra hệ thống tập tin lần cuối cùng trong tương lai"
-#: e2fsck/unix.c:344
+#: e2fsck/unix.c:385
#, 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:353
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", kiểm tra bị ép buộc.\n"
-#: e2fsck/unix.c:386
+#: e2fsck/unix.c:427
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: sạch, %u/%u tập tin, %llu/%llu khối"
-#: e2fsck/unix.c:404
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr " (kiểm tra bị hoãn; chạy bằng pin)"
-#: e2fsck/unix.c:407
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
-msgstr " (kiểm tra sau lần kế tiếp gắn kết)"
+msgstr " (kiểm tra sau lần gắn kết kế tiếp)"
-#: e2fsck/unix.c:409
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr " (kiểm tra sau %ld lần gắn kết)"
-#: e2fsck/unix.c:559
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
-msgstr "LỖI: không thể mở « /dev/null » (%s)\n"
+msgstr "LỖI: không thể mở “/dev/null†(%s)\n"
-#: e2fsck/unix.c:628
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "Phiên bản EA không hợp lệ.\n"
-#: e2fsck/unix.c:649
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Tùy chá»n đã mở rá»™ng lạ: %s\n"
-#: e2fsck/unix.c:674
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2837,57 +2885,56 @@ 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:743
+#: e2fsck/unix.c:794
#, 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:747
+#: e2fsck/unix.c:798
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:762
+#: e2fsck/unix.c:813
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 và -y."
+msgstr "Có thể chỉ ra má»™t trong những tùy chá»n -p/-a, -n và -y."
-#: e2fsck/unix.c:783
+#: e2fsck/unix.c:834
#, 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ợ trong phiên bản e2fsck này.\n"
+msgstr "Tùy chá»n “-t†không được há»— trợ trong phiên bản e2fsck này.\n"
-#: e2fsck/unix.c:814 e2fsck/unix.c:886 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
-msgstr "Không thể quyết định « %s »"
+msgstr "Không thể phân giải “%sâ€"
-#: e2fsck/unix.c:865
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
-msgstr "Hai tùy chá»n « -n » và « -D » không tÆ°Æ¡ng thích vá»›i nhau."
+msgstr "Hai tùy chá»n “-n†và “-D†không tÆ°Æ¡ng thích vá»›i nhau."
-#: e2fsck/unix.c:870
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
-msgstr "Hai tùy chá»n « -n » và « -c » không tÆ°Æ¡ng thích vá»›i nhau."
+msgstr "Hai tùy chá»n “-n†và “-c†không tÆ°Æ¡ng thích vá»›i nhau."
-#: e2fsck/unix.c:875
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
-msgstr "Hai tùy chá»n « -n » và « -l/-L » không tÆ°Æ¡ng thích vá»›i nhau."
+msgstr "Hai tùy chá»n “-n†và “-l/-L†không tÆ°Æ¡ng thích vá»›i nhau."
-#: e2fsck/unix.c:915
-#, c-format
+#: e2fsck/unix.c:982
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 đồng thá»i cả hai tùy chá»n « --c » và « --l/L ».\n"
+msgstr "Không cho phép sá»­ dụng đồng thá»i cả hai tùy chá»n “--c†và “--l/Lâ€.\n"
-#: e2fsck/unix.c:963
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-"E2FSCK_JBD_DEBUG « %s » không phải số nguyên\n"
+"E2FSCK_JBD_DEBUG “%s†không phải số nguyên\n"
"\n"
-#: e2fsck/unix.c:972
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2895,60 +2942,73 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Äối số không thuá»™c số không hợp lệ đối vá»›i -%c (« %s »)\n"
+"Äối số không thuá»™c số không hợp lệ đối vá»›i -%c (“%sâ€)\n"
"\n"
+#: e2fsck/unix.c:1129
+#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+"khoảng nhịp MMP là %u giây cá»™ng vá»›i tổng thá»i gian chá» là %u giây. Vui lòng "
+"chá»...\n"
+
# Item in the main menu to select this package
-#: e2fsck/unix.c:1074 e2fsck/unix.c:1079
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
msgid "while checking MMP block"
msgstr "trong khi kiểm tra khối MMP"
-#: e2fsck/unix.c:1081 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Nếu bạn không chắc là hệ thống tệp tin không đang sử dụng bất kỳ nút nào, chạy lệnh:\n"
-"'tune2fs -f -E clear_mmp {thiết_bị}'\n"
+"Nếu bạn không chắc là hệ thống tập tin không đang sử dụng bất kỳ nút nào, "
+"chạy lệnh:\n"
+"“tune2fs -f -E clear_mmp {thiết_bị}â€\n"
-#: e2fsck/unix.c:1130
-#, c-format
+#: e2fsck/unix.c:1204
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:1138
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
-msgstr "trong khi thử sở khởi chương trình"
+msgstr "trong khi cố khởi tạo chương trình"
-#: e2fsck/unix.c:1149
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tDùng %s, %s\n"
-#: e2fsck/unix.c:1161
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
-msgstr "cần thiết thiết bị cuối để sửa chữa tương tác"
+msgstr "cần thiết bị cuối để sửa chữa theo kiểu tương tác"
-#: e2fsck/unix.c:1200
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
-msgstr "%s %s đang thử các khối dự trữ...\n"
+msgstr "%s: %s đang cố sao lưu dự phòng các khối dự trữ...\n"
-#: e2fsck/unix.c:1202
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "Siêu khối không hợp lệ,"
-#: e2fsck/unix.c:1203
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr "Có vẻ là các mô tả nhóm sai..."
-#: e2fsck/unix.c:1215
+#: e2fsck/unix.c:1312
+#, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "%s: %s trong khi Ä‘á»c nút thông tin khối há»ng"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: đang trở vỠsiêu khối gốc\n"
-#: e2fsck/unix.c:1242
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
@@ -2958,115 +3018,103 @@ msgstr ""
"(hoặc siêu khối hệ thống tập tin bị há»ng).\n"
"\n"
-#: e2fsck/unix.c:1248
-#, c-format
+#: e2fsck/unix.c:1352
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"
+msgstr "Phân vùng này có thể có độ dài bằng không?\n"
-#: e2fsck/unix.c:1250
+#: e2fsck/unix.c:1354
#, 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 vào hệ thống tập tin, hoặc là ngÆ°á»i chủ (root)\n"
+msgstr ""
+"Bạn phải có quyá»n truy cập %s vào hệ thống tập tin, hoặc có quyá»n siêu quản "
+"trị\n"
-#: e2fsck/unix.c:1255
-#, c-format
+#: e2fsck/unix.c:1360
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"
+msgstr "Có thể là thiết bị không tồn tại, hoặc thiết bị trao đổi?\n"
-#: e2fsck/unix.c:1257
-#, c-format
+#: e2fsck/unix.c:1362
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"
+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:1260
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr "Có thể là thiết bị không tồn tại?\n"
-#: e2fsck/unix.c:1263
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-"ÄÄ©a bị chống ghi; hãy dùng tùy chá»n « -n » để chạy\n"
+"ÄÄ©a bị chống ghi; hãy dùng tùy chá»n “-n†để chạy\n"
"việc kiểm tra chỉ Ä‘á»c trên thiết bị đó.\n"
-#: e2fsck/unix.c:1327
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
-msgstr "Lấy phiên bản e2fsck mới hơn."
+msgstr "Lấy phiên bản e2fsck mới hơn!"
-#: e2fsck/unix.c:1373
+#: e2fsck/unix.c:1477
#, 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:1384
-#, 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 hệ thống tập tin má»™t cách chỉ Ä‘á»c.\n"
+#: e2fsck/unix.c:1489
+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 hệ thống tập "
+"tin má»™t cách chỉ Ä‘á»c.\n"
-#: e2fsck/unix.c:1397
+#: e2fsck/unix.c:1501
#, 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:1403
+#: e2fsck/unix.c:1508
#, 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:1428
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s có tính năng không được hỗ trợ:"
-#: e2fsck/unix.c:1444
-msgid "Warning: compression support is experimental.\n"
-msgstr "Cảnh báo: sự hỗ trợ khả năng nén là thực nghiệm.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
+msgstr "%s: cảnh báo: sự hỗ trợ khả năng nén là thực nghiệm.\n"
-#: e2fsck/unix.c:1449
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"E2fsck không được biên dịch với khả năng hỗ trợ HCÂY,\n"
-"nhưng hệ thống tập tin %s có thư mục HCÂY.\n"
+"%s: e2fsck không được biên dịch với khả năng hỗ trợ HTREE,\n"
+"\tnhưng hệ thống tập tin %s có thư mục HTREE.\n"
-#: e2fsck/unix.c:1502
-msgid "while reading bad blocks inode"
-msgstr "trong khi Ä‘á»c nút thông tin khối sai"
-
-#: e2fsck/unix.c:1504
+#: e2fsck/unix.c:1605
#, c-format
-msgid "This doesn't bode well, but we'll try to go on...\n"
-msgstr "Äây không phải báo trÆ°á»›c Ä‘iá»m hay, nhÆ°ng tiến trình này sẽ thá»­ tiếp tục...\n"
+msgid "%s: %s while reading bad blocks inode\n"
+msgstr "%s: %s trong khi Ä‘á»c nút thông tin khối há»ng\n"
-#: e2fsck/unix.c:1543
-msgid "Couldn't determine journal size"
-msgstr "Không thể quyết định kích cỡ nhật ký"
+#: e2fsck/unix.c:1608
+msgid "This doesn't bode well, but we'll try to go on...\n"
+msgstr "Äây không phải báo trÆ°á»›c Ä‘iá»m hay, nhÆ°ng chúng tôi sẽ cố thá»­...\n"
-#: e2fsck/unix.c:1546
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Äang tạo nhật ký (%d khối): "
-#: e2fsck/unix.c:1553 misc/mke2fs.c:2535
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-"\n"
-"trong khi thử tạo nhật ký"
-
-#: e2fsck/unix.c:1556
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
-msgstr " Hoàn tất\n"
+msgstr " Hoàn tất.\n"
-#: e2fsck/unix.c:1557
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
@@ -3074,25 +3122,24 @@ msgstr ""
"\n"
"••• nhật ký đã được tạo lại — hệ thống tập tin lúc này là ext3 lại •••\n"
-#: e2fsck/unix.c:1569
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Äang khởi chạy lại hoàn toàn e2fsck...\n"
-#: e2fsck/unix.c:1573
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr "trong khi đặt lại ngữ cảnh"
-#: e2fsck/unix.c:1580
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
-msgstr "%s: e2fsck bị thôi.\n"
+msgstr "%s: e2fsck bị hủy bá».\n"
-#: e2fsck/unix.c:1585
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "bị hủy bá»"
-#: e2fsck/unix.c:1597 e2fsck/util.c:66
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -3101,12 +3148,12 @@ msgstr ""
"\n"
"%s: ••••• HỆ THá»NG TẬP TIN BỊ SỬA Äá»”I •••••\n"
-#: e2fsck/unix.c:1600
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ••••• HÃY KHỞI ÄỘNG LẠI LINUX •••••\n"
-#: e2fsck/unix.c:1608 e2fsck/util.c:72
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -3114,46 +3161,46 @@ msgid ""
"\n"
msgstr ""
"\n"
-"%s: •••••••••• CẢNH BÃO: hệ thống tập tin vẫn còn có lá»—i ••••••••••\n"
+"%s: •••••••••• CẢNH BÃO: Hệ thống tập tin vẫn còn có lá»—i ••••••••••\n"
"\n"
-#: e2fsck/unix.c:1648
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr "trong khi đặt thông tin tổng kiểm nhóm khối"
-#: e2fsck/util.c:160 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
-msgstr "cC"
+msgstr "cCyY"
-#: e2fsck/util.c:161
+#: e2fsck/util.c:191
msgid "nN"
-msgstr "kK"
+msgstr "kKnN"
-#: e2fsck/util.c:175
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<c>"
-#: e2fsck/util.c:177
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<k>"
-#: e2fsck/util.c:179
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (c/k)"
-#: e2fsck/util.c:194
+#: e2fsck/util.c:223
msgid "cancelled!\n"
-msgstr "bị thôi !\n"
+msgstr "đã hủy!\n"
-#: e2fsck/util.c:209
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "có\n"
-#: e2fsck/util.c:211
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "không\n"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -3162,7 +3209,7 @@ msgstr ""
"%s? không\n"
"\n"
-#: e2fsck/util.c:225
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -3171,38 +3218,38 @@ msgstr ""
"%s? có\n"
"\n"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "yes"
msgstr "có"
-#: e2fsck/util.c:229
+#: e2fsck/util.c:258
msgid "no"
msgstr "không"
-#: e2fsck/util.c:243
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr "e2fsck_read_bitmaps: khối mảng ảnh cấm cho %s"
-#: e2fsck/util.c:248
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr "Ä‘ang Ä‘á»c mảng ảnh kiểu cả hai nút thông tin và khối"
-#: e2fsck/util.c:253
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
-msgstr "trong khi thá»­ Ä‘á»c mảng ảnh cho %s"
+msgstr "trong khi cố Ä‘á»c mảng ảnh cho %s"
-#: e2fsck/util.c:265
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr "đang ghi các mảng ảnh kiểu khối và nút thông tin"
-#: e2fsck/util.c:270
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr "trong khi ghi lại các mảng ảnh kiểu khối và nút thông tin cho %s"
-#: e2fsck/util.c:282
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -3213,146 +3260,151 @@ msgstr ""
"\n"
"\n"
"%s: MÂU THUẪN BẤT THƯỜNG: HÃY TỰ CHẠY fsck.\n"
-"\t(tức là không có tùy chá»n « -a » hay « -p »).\n"
+"\t(tức là không có tùy chá»n “-a†hay “-pâ€).\n"
-#: e2fsck/util.c:363
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "Vùng nhớ được dùng: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:367
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr "Vùng nhớ được dùng: %lu, "
-#: e2fsck/util.c:374
+#: e2fsck/util.c:407
#, 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:379
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr "thá»i gian đã qua: %6.3f\n"
-#: e2fsck/util.c:413 e2fsck/util.c:427
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr "trong khi Ä‘á»c nút thông tin %lu trong %s"
-#: e2fsck/util.c:441 e2fsck/util.c:454
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr "trong khi ghi nút thông tin %lu trong %s"
-#: e2fsck/util.c:603
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr "trong khi cấp phát bộ đếm làm số không"
-#: e2fsck/util.c:755
-msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
-msgstr "MÂU THUẪN: hệ thống tệp tin đang được sửa chữa trong khi lệnh fsck đang chạy.\n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+"MÂU THUẪN: hệ thống tập tin đang được sửa chữa trong khi lệnh fsck đang "
+"chạy.\n"
#: misc/badblocks.c:69
msgid "done \n"
-msgstr "hoàn tất \n"
+msgstr "hoàn tất \n"
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-"Sử dụng: %s [-b cỡ_khối] [-i tập_tin_nhập] [-o tập_tin_xuất] [-svwnf]\n"
+"Cách dùng: %s [-b cỡ_khối] [-i tập_tin_nhập] [-o tập_tin_xuất] [-svwnf]\n"
" [-c số_khối_cùng_lúc] [-d hệ_số_đợi_Ä‘á»c] [-e số_tối_Ä‘a_khối_xấu]\n"
" [-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:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-"%s: hai tùy chá»n « -n » và « -w » loại từ lẫn nhau.\n"
+"%s: hai tùy chá»n “-n†và “-w†loại từ lẫn nhau.\n"
"\n"
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr "%6.2f%% hoàn tất, %s đã trôi qua. (%d/%d/%d lỗi)"
-#: misc/badblocks.c:322
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr "Äang thá»­ ra bằng mẫu ngẫu nhiên: "
-#: misc/badblocks.c:340
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr "Äang thá»­ ra bằng mẫu 0x"
-#: misc/badblocks.c:372 misc/badblocks.c:445
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
-msgstr "trong khi tìm nơi"
+msgstr "trong khi di chuyển vị trí"
-#: misc/badblocks.c:383
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
-msgstr "Giá trị lạ (%ld) trong việc Ä‘á»c « do_read »\n"
+msgstr "Giá trị lạ (%ld) trong việc Ä‘á»c “do_readâ€\n"
-#: misc/badblocks.c:469
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
-msgstr "trong khi đồng bộ hoá thiết bị « ext2fs_sync_device »"
+msgstr "trong khi đồng bá»™ hoá thiết bị “ext2fs_sync_deviceâ€"
-#: misc/badblocks.c:489 misc/badblocks.c:750
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr "trong khi bắt đầu lặp lại danh sách các khối sai"
-#: misc/badblocks.c:503 misc/badblocks.c:603 misc/badblocks.c:760
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr "trong khi cấp phát bộ đệm"
-#: misc/badblocks.c:507
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "Äang kiểm tra khối trong phạm vi %lu đến %lu\n"
-#: misc/badblocks.c:512
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr "Äang kiểm tra tìm khối sai trong chế Ä‘á»™ chỉ Ä‘á»c\n"
-#: misc/badblocks.c:521
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
-msgstr "Äang kiểm tra tìm khối sai (thá»­ ra chỉ Ä‘á»c): "
+msgstr "Äang kiểm tra tìm khối sai (kiểm tra ở chế Ä‘á»™ chỉ Ä‘á»c): "
-#: misc/badblocks.c:529 misc/badblocks.c:635 misc/badblocks.c:677
-#: misc/badblocks.c:823
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr "Quá nhiá»u khối sai nên hủy bá» phép thá»­\n"
-#: misc/badblocks.c:610
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr "Äang kiểm tra tìm khối sai trong chế Ä‘á»™ Ä‘á»c-ghi\n"
-#: misc/badblocks.c:612 misc/badblocks.c:773
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
-msgstr "Phạm vi khối %lu đến %lu\n"
+msgstr "Từ khối %lu đến %lu\n"
-#: misc/badblocks.c:667
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "Äang Ä‘á»c và so sánh: "
-#: misc/badblocks.c:772
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr "Äang kiểm tra tìm khối sai trong chế Ä‘á»™ Ä‘á»c-ghi không hủy\n"
-#: misc/badblocks.c:778
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr "Äang kiểm tra tìm khối sai (thá»­ ra Ä‘á»c-ghi không hủy)\n"
+msgstr "Äang kiểm tra tìm khối sai (thá»­ ở chế Ä‘á»™ Ä‘á»c-ghi không phá hủy)\n"
-#: misc/badblocks.c:785
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
@@ -3360,97 +3412,106 @@ msgstr ""
"\n"
"Mới bắt tín hiệu ngắt nên làm sạch\n"
-#: misc/badblocks.c:868
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr "trong khi thử ra ghi dữ liệu, khối %lu"
-#: misc/badblocks.c:989 misc/util.c:152
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
-msgstr "%s đã gắn kết; "
+msgstr "%s đã được gắn kết; "
-#: misc/badblocks.c:991
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"tùy chá»n khối sai (badblocks) vẫn bị ép buá»™c.\n"
-"Mong « /etc/mtab » không đúng.\n"
+"Mong “/etc/mtab†không đúng.\n"
-#: misc/badblocks.c:996
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr "Không an toàn khi chạy badblocks.\n"
-#: misc/badblocks.c:1001 misc/util.c:163
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
-msgstr "Có vẻ là %s đang bị hệ thống dùng; "
+msgstr "Có vẻ là %s đang được hệ thống dùng; "
-#: misc/badblocks.c:1004
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr "vẫn ép buộc badblocks (khối sai).\n"
-#: misc/badblocks.c:1024
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "%s không hợp lệ — %s"
-#: misc/badblocks.c:1134
+#: misc/badblocks.c:1139
#, 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:1164
+#: misc/badblocks.c:1169
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)"
+msgstr "Trong chế Ä‘á»™ chỉ Ä‘á»c, có thể chỉ ra tối Ä‘a má»™t mẫu thá»­ (test_pattern)"
-#: misc/badblocks.c:1170
+#: misc/badblocks.c:1175
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"
+msgstr "Không cho phép mẫu thá»­ (test_pattern) ngẫu nhiên trong chế Ä‘á»™ chỉ Ä‘á»c"
-#: misc/badblocks.c:1184
+#: misc/badblocks.c:1189
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 cần phải tự xác định kích cỡ đó.\n"
+"Không thể xác định kích cỡ của thiết bị;\n"
+"bạn cần phải tự chỉ định kích cỡ đó.\n"
-#: misc/badblocks.c:1190
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
-msgstr "trong khi thử quyết định kích cỡ của thiết bị"
+msgstr "trong khi thử dò tìm kích cỡ của thiết bị"
-#: misc/badblocks.c:1195
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "khối cuối"
-#: misc/badblocks.c:1201
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "khối đầu"
-#: misc/badblocks.c:1204
+#: misc/badblocks.c:1209
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
-msgstr "khối đầu không hợp lệ (%lu): phải nhỠhơn %lu"
+msgid "invalid starting block (%llu): must be less than %llu"
+msgstr "khối đầu không hợp lệ (%llu): phải nhỠhơn %llu"
-#: misc/badblocks.c:1260
+#: misc/badblocks.c:1216
+#, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr "khối cuối không hợp lệ (%llu): phải là giá trị 32 bít"
+
+#: misc/badblocks.c:1272
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:1275
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
+msgstr "tập tin đầu vào - sai định dạng"
+
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
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:1299
+#: misc/badblocks.c:1323
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr "Qua xong, tìm thấy %u khối sai. (%d/%d/%d errors)\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Sử dụng: %s [-RVf] [-+=AacDdeijsSu] [-v phiên_bản] tập_tin...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Cách dùng: %s [-RVf] [-+=AaCcDdeijsSu] [-v phiên_bản] tập_tin...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "phiên bản sai — %s\n"
@@ -3458,94 +3519,97 @@ msgstr "phiên bản sai — %s\n"
#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
-msgstr "trong khi thử lấy các thông tin vỠ%s"
+msgstr "trong khi cố lấy các thông tin vỠ%s"
#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr "trong khi Ä‘á»c các cá» trên %s"
-#: misc/chattr.c:217 misc/chattr.c:236
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr "Chức năng xoá sạch cỠtầm không được hỗ trợ trên %s"
-
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "Các cỠcủa %s đã đặt thành "
-#: misc/chattr.c:250
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr "trong khi đặt các cỠtrên %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:242
#, 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:262
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr "trong khi đặt phiên bản trên %s"
-#: misc/chattr.c:282
-#, c-format
+#: misc/chattr.c:267
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:322
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
-msgstr "= không tương thích với « - » và « + »\n"
+msgstr "= không tÆ°Æ¡ng thích vá»›i “-†và “+â€\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
-msgstr "Phải dùng « -v », « = », « - » hay « + »\n"
+msgstr "Phải dùng “-vâ€, “=â€, “-†hay “+â€\n"
-#: misc/dumpe2fs.c:54
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr "Sử dụng: %s [-bfhixV] [-o siêu_khối=<số>] [-o cỡ_khối=<số>] thiết_bị\n"
+msgstr ""
+"Cách dùng: %s [-bfhixV] [-o siêu_khối=<số>] [-o cỡ_khối=<số>] thiết_bị\n"
-#: misc/dumpe2fs.c:152
+#: misc/dumpe2fs.c:159
msgid "blocks"
msgstr "khối"
-#: misc/dumpe2fs.c:161
+#: misc/dumpe2fs.c:169
msgid "clusters"
-msgstr "cụm"
+msgstr "liên cung"
-#: misc/dumpe2fs.c:189
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr "Nhóm %lu: (Khối "
-#: misc/dumpe2fs.c:194
+#: misc/dumpe2fs.c:205
+#, c-format
+msgid " Checksum 0x%04x"
+msgstr " Tổng kiểm 0x%04x"
+
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr " (CẦN 0x%04x)"
+
+#: misc/dumpe2fs.c:208
#, c-format
-msgid " Checksum 0x%04x, unused inodes %u\n"
-msgstr " Tổng kiểm 0x%04x, không dùng %u nút\n"
+msgid ", unused inodes %u\n"
+msgstr ", nút không dùng %u\n"
-#: misc/dumpe2fs.c:199
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr " %s siêu khối tại "
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "Chính"
-#: misc/dumpe2fs.c:200
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "Sao lÆ°u"
-#: misc/dumpe2fs.c:204
-#, c-format
+#: misc/dumpe2fs.c:218
msgid ", Group descriptors at "
msgstr ", Mô tả nhóm tại "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3553,20 +3617,19 @@ msgstr ""
"\n"
" Các khối GDT đã dành riêng tại "
-#: misc/dumpe2fs.c:215
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr " Mô tả nhóm tại "
-#: misc/dumpe2fs.c:221
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr " Mảng ảnh khối tại "
-#: misc/dumpe2fs.c:225
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ", Mảng ảnh nút thông tin tại "
-#: misc/dumpe2fs.c:229
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3574,7 +3637,7 @@ msgstr ""
"\n"
" Bảng nút thông tin tại "
-#: misc/dumpe2fs.c:235
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
@@ -3583,69 +3646,77 @@ msgstr ""
"\n"
" %u trống %s, %u nút rảnh, %u thư mục%s"
-#: misc/dumpe2fs.c:242
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u nút không dùng\n"
-#: misc/dumpe2fs.c:245
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " Khối rảnh: "
-#: misc/dumpe2fs.c:256
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " Nút rảnh: "
-#: misc/dumpe2fs.c:287
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr "trong khi in ra danh sách các khối sai"
-#: misc/dumpe2fs.c:293
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "Khối sai: %u"
-#: misc/dumpe2fs.c:320 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr "trong khi Ä‘á»c nút thông tin nhật ký"
-#: misc/dumpe2fs.c:326
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr "trong khi mở nút thông tin nhật ký"
-#: misc/dumpe2fs.c:332
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr "trong khi Ä‘á»c siêu khối nhật ký"
-#: misc/dumpe2fs.c:342
-#, c-format
+#: misc/dumpe2fs.c:364
+msgid "Journal superblock magic number invalid!\n"
+msgstr "Số ma thuật thấy siêu khối nhật ký không hợp lệ!\n"
+
+#: misc/dumpe2fs.c:367
msgid "Journal features: "
-msgstr "Tính năng nhật ký: "
+msgstr "Tính năng nhật ký: "
-#: misc/dumpe2fs.c:355
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
-msgstr "Kích cỡ nhật ký: "
+msgstr "Kích cỡ nhật ký: "
-#: misc/dumpe2fs.c:366
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
"Journal sequence: 0x%08x\n"
"Journal start: %u\n"
msgstr ""
-"Chiá»u dài nhật ký: %u\n"
-"Dãy nhật ký: 0x%08x\n"
-"Äầu nhật ký: %u\n"
+"Chiá»u dài nhật ký: %u\n"
+"Dãy nhật ký: 0x%08x\n"
+"Äầu nhật ký: %u\n"
+
+#: misc/dumpe2fs.c:398
+#, c-format
+msgid "Journal errno: %d\n"
+msgstr "Lá»—i Journal: %d\n"
-#: misc/dumpe2fs.c:385 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr "trong khi Ä‘á»c siêu khối nhật ký"
-#: misc/dumpe2fs.c:393
+#: misc/dumpe2fs.c:423
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:397
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3657,34 +3728,33 @@ msgid ""
"Journal number of users: %u\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%u\n"
+"Kích cỡ khối nhật ký: %u\n"
+"Äá»™ dài nhật ký: %u\n"
+"Khối đầu nhật ký: %u\n"
+"Dãy nhật ký: 0x%08x\n"
+"Äầu nhật ký: %u\n"
+"Số ngÆ°á»i dùng nhật ký: %u\n"
-#: misc/dumpe2fs.c:410
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
-msgstr "NgÆ°á»i dùng nhật ký: %s\n"
+msgstr "NgÆ°á»i dùng nhật ký: %s\n"
-#: misc/dumpe2fs.c:426 misc/mke2fs.c:663 misc/tune2fs.c:1137
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
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"
+msgstr "Không thể cấp phát bá»™ nhá»› để phân tách tùy chá»n!\n"
-#: misc/dumpe2fs.c:452
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr "Tham số siêu khối không hợp lệ: %s\n"
-#: misc/dumpe2fs.c:467
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr "Tham số kích cỡ khối không hợp lệ: %s\n"
-#: misc/dumpe2fs.c:478
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3698,27 +3768,26 @@ msgid ""
"\tblocksize=<blocksize>\n"
msgstr ""
"\n"
-"Sai xác định tùy chá»n đã mở rá»™ng: %s\n"
+"Chỉ ra tùy chá»n mở rá»™ng sai: %s\n"
"\n"
"Các tùy chá»n đã mở rá»™ng cÅ©ng định giá»›i bằng dấu phẩy, có thể chấp nhận\n"
-"đối số được ngụ ý với dấu bằng « = ».\n"
+"đối số được ngụ ý vá»›i dấu bằng “=â€.\n"
"\n"
"Tùy chá»n đã mở rá»™ng hợp lệ:\n"
"\tsuperblock=<số thứ tự siêu khối>\n"
"\tblocksize=<kích cỡ khối>\n"
-#: misc/dumpe2fs.c:538 misc/mke2fs.c:1521
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\tDùng %s\n"
-#: misc/dumpe2fs.c:574 misc/e2image.c:1290 misc/tune2fs.c:1923
-#: resize/main.c:310
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
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:599
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
@@ -3727,40 +3796,258 @@ msgstr ""
"\n"
"%s: %s: gặp lá»—i khi Ä‘á»c mảng ảnh: %s\n"
-#: misc/e2image.c:87
+#: misc/e2image.c:101
+#, c-format
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
+msgstr "Cách dùng: %s [ -r|Q ] [ -fr ] thiết_bị tập_tin_ảnh\n"
+
+#: misc/e2image.c:103
+#, c-format
+msgid " %s -I device image-file\n"
+msgstr " %s -I thiết_bị tập_tin_ảnh\n"
+
+#: misc/e2image.c:104
+#, c-format
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+msgid "while allocating buffer"
+msgstr "trong khi cấp phát bộ đệm"
+
+#: misc/e2image.c:174
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Sử dụng: %s [-rsIQ] thiết_bị tập_tin_ảnh\n"
+msgid "Writing block %llu\n"
+msgstr "Äang ghi khối %llu\n"
-#: misc/e2image.c:135
+#: misc/e2image.c:188
#, c-format
+msgid "error writing block %llu"
+msgstr "gặp lỗi khi ghi khối %llu"
+
+#: misc/e2image.c:191
+#, fuzzy
+msgid "error in generic_write()"
+msgstr "có lỗi trong write()"
+
+#: misc/e2image.c:208
msgid "Error: header size is bigger than wrt_size\n"
msgstr "Lỗi: kích thước phần đầu lớn hơn wrt_size\n"
-#: misc/e2image.c:141
+#: misc/e2image.c:213
msgid "Couldn't allocate header buffer\n"
msgstr "Không thể cấp phát bộ đệm phần đầu\n"
-#: misc/e2image.c:171
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr "trong khi ghi siêu khối"
-#: misc/e2image.c:179
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr "trong khi ghi bảng nút thông tin"
-#: misc/e2image.c:186
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr "trong khi ghi mảng ảnh khối"
-#: misc/e2image.c:193
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr "trong khi ghi mảng ảnh nút thông tin"
-#: misc/e2image.c:1322
+#: misc/e2image.c:502
+#, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "Há»ng khối thÆ° mục %llu: rec_len sai (%d)\n"
+
+#: misc/e2image.c:514
+#, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "Há»ng khối thÆ° mục %llu: name_len sai (%d)\n"
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr "%llu / %llu khối (%d%%)"
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr "Äang chép"
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+"Dừng lại sẽ làm há»ng hệ thống tập tin, ngắt lần nữa nếu bạn thá»±c sá»± muốn "
+"thế\n"
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr " %s còn lại ở tốc độ %.2f MB/s"
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, c-format
+msgid "error reading block %llu"
+msgstr "gặp lá»—i khi Ä‘á»c khối %llu"
+
+#: misc/e2image.c:715
+#, fuzzy, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr "%llu / %llu khối (%d%%)"
+
+#: misc/e2image.c:719
+#, fuzzy, c-format
+msgid "at %.2f MB/s"
+msgstr " %s còn lại ở tốc độ %.2f MB/s"
+
+#: misc/e2image.c:755
+msgid "while allocating l1 table"
+msgstr "trong khi cấp phát bảng l1"
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr "trong khi cấp phát bảng l2"
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+"Cảnh báo: Vẫn còn bảng trong bộ nhớ đệm trong khi đặt bộ nhớ này, dữ liệu sẽ "
+"mất do đó ảnh có thể không hợp lệ.\n"
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr "trong khi cấp phát ext2_qcow2_image"
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr "trong khi khởi tạo ext2_qcow2_image"
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr "Lỗi lập trình: đa khối refcount liên tiếp được tạo ra!\n"
+
+#: misc/e2image.c:1269
+msgid "while allocating block bitmap"
+msgstr "trong cấp phát mảng ảnh khối"
+
+#: misc/e2image.c:1278
+msgid "while allocating scramble block bitmap"
+msgstr "trong khi cấp phát mảng ảnh khối scramble"
+
+#: misc/e2image.c:1285
+msgid "Scanning inodes...\n"
+msgstr "Äang quét các nút...\n"
+
+#: misc/e2image.c:1297
+msgid "Can't allocate block buffer"
+msgstr "Không thể cấp phát bộ đệm khối"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, c-format
+msgid "while iterating over inode %u"
+msgstr "trong khi lặp qua nút %u"
+
+#: misc/e2image.c:1381
+#, fuzzy
+msgid "Raw and qcow2 images cannot be installed"
+msgstr "Ảnh thô và qconw2 không thể được cài đặt"
+
+#: misc/e2image.c:1403
+msgid "error reading bitmaps"
+msgstr "lặp lá»—i khi Ä‘á»c mảng bit"
+
+#: misc/e2image.c:1415
+msgid "while opening device file"
+msgstr "trong khi mở tập tin thiết bị"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "trong khi ghi bảng nút thông tin"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr "tùy chá»n -a chỉ có thể được dùng cùng vá»›i các ảnh thô hoặc QCOW2."
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr "Chế độ bù chỉ cho phép với ảnh thô."
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr "Chế độ di chuyển chỉ cho phép với ảnh thô."
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr "Chế Ä‘á»™ di chuyển yêu cầu má»i chế Ä‘á»™ dữ liệu."
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr "kiểm tra xem đã gắn kết chưa"
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+"\n"
+"Chạy e2image trên hệ thống tập tin gắn Äá»c/Ghi có thể tạo ra má»™t\n"
+"ảnh không phù hợp cái mà sẽ không hữu ích khi muốn gỡ lỗi.\n"
+"Dùng tùy chá»n -f nếu bạn thá»±c sá»± muốn làm thế.\n"
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr "Ảnh QCOW2 không thể ghi ra đầu ra tiêu chuẩn!\n"
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr "Ảnh (%s) đã được nén lại\n"
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr "Ảnh (%s) đã được mã hóa\n"
+
+#: misc/e2image.c:1630
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr "khi thử chuyển đổi ảnh qcow2 (%s) thành dạng ảnh thô (%s)"
+msgstr "khi cố chuyển đổi ảnh qcow2 (%s) thành dạng ảnh thô (%s)"
+
+#: misc/e2image.c:1639
+msgid "The -c option only supported in raw mode\n"
+msgstr "Tùy chá»n “-c†chỉ được há»— trợ trong chế Ä‘á»™ thô\n"
+
+#: misc/e2image.c:1644
+#, fuzzy
+msgid "The -c option not supported when writing to stdout\n"
+msgstr "Tùy chá»n “-c†không được há»— trợ ghi ra đầu ra tiêu chuẩn\n"
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr "trong khi cấp phát check_buf"
+
+#: misc/e2image.c:1657
+msgid "The -p option only supported in raw mode\n"
+msgstr "Tùy chá»n “-p†không được há»— trợ trong chế Ä‘á»™ thô\n"
+
+#: misc/e2image.c:1667
+#, fuzzy, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr "%d khối đã sẵn chứa dữ liệu để sao chép.\n"
#: misc/e2label.c:58
#, c-format
@@ -3770,7 +4057,7 @@ msgstr "e2label: không thể mở %s\n"
#: misc/e2label.c:63
#, 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"
+msgstr "e2label: không thể di chuyển đầu Ä‘á»c vị trí siêu khối\n"
#: misc/e2label.c:68
#, c-format
@@ -3782,7 +4069,7 @@ msgstr "e2label: gặp lá»—i khi Ä‘á»c siêu khối\n"
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: không phải hệ thống tập tin kiểu ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2073
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Cảnh báo: nhãn quá dài nên cắt ngắn.\n"
@@ -3790,22 +4077,22 @@ msgstr "Cảnh báo: nhãn quá dài nên cắt ngắn.\n"
#: misc/e2label.c:100
#, 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"
+msgstr "e2label: không thể di chuyển đầu Ä‘á»c để lấy lại siêu khối\n"
#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2label: gặp lỗi khi ghi siêu khối\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
-msgstr "Sử dụng: e2label thiết_bị [nhãn_mới]\n"
+msgstr "Cách dùng: e2label thiết_bị [nhãn_mới]\n"
#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
-msgstr "Sử dụng: %s <tập tin giao dịch> <hệ thống tập tin>\n"
+msgstr "Cách dùng: %s <tập tin giao dịch> <hệ thống tập tin>\n"
#: misc/e2undo.c:52
msgid "Failed to read the file system data \n"
@@ -3833,7 +4120,7 @@ msgstr "Lá»—i tdb_open %s\n"
#: misc/e2undo.c:169
#, c-format
msgid "Error while determining whether %s is mounted.\n"
-msgstr "Gặp lỗi trong khi quyết định nếu %s đã gắn kết chưa.\n"
+msgstr "Gặp lỗi trong khi dò tìm xem %s đã gắn kết chưa.\n"
#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
@@ -3854,17 +4141,17 @@ msgstr "Äã chạy lại giao dịch có kích cỡ %zd ở vị trí %llu\n"
msgid "Failed write %s\n"
msgstr "Lá»—i ghi %s\n"
-#: misc/fsck.c:344
+#: misc/fsck.c:343
#, 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:354
+#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
msgstr "CẢNH BÃO: gặp định dạng sai trên dòng %d trên %s\n"
-#: misc/fsck.c:371
+#: misc/fsck.c:370
msgid ""
"WARNING: Your /etc/fstab does not contain the fsck passno\n"
"\tfield. I will kludge around things for you, but you\n"
@@ -3876,80 +4163,86 @@ msgstr ""
"\ttập tin /etc/fstab càng sớm càng càng tốt.\n"
"\n"
-#: misc/fsck.c:479
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr "fsck: %s: không tìm thấy\n"
-#: misc/fsck.c:595
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
-msgstr "%s: đợi: không có tiến trình con nữa ?!?\n"
+msgstr "%s: đợi: không có tiến trình con nữa?!?\n"
-#: misc/fsck.c:617
+#: misc/fsck.c:616
#, 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:623
+#: misc/fsck.c:622
#, 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:662
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr "%s hoàn tất (trạng thái thoát %d)\n"
-#: misc/fsck.c:722
+#: misc/fsck.c:721
#, 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:743
+#: misc/fsck.c:742
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"
+"cho tùy chá»n “-t†phải có tiá»n tố “no†hay “!â€.\n"
-#: misc/fsck.c:762
+#: misc/fsck.c:761
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:885
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
-msgstr "%s: đang bỠqua dòng sai trong « /etc/fstab »: đóng kết lắp với số gửi qua fsck khác số không\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
+msgstr ""
+"%s: Ä‘ang bá» qua dòng sai trong “/etc/fstabâ€: đóng kết lắp vá»›i số gá»­i qua "
+"fsck khác số không\n"
-#: misc/fsck.c:912
+#: misc/fsck.c:911
#, 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 tìm thấy\n"
-#: misc/fsck.c:968
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "Äang kiểm tra má»i hệ thống tập tin.\n"
-#: misc/fsck.c:1059
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--đang đợi-- (lần qua %d)\n"
-#: misc/fsck.c:1079
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
-"Sử dụng: fsck [-AMNPRTV] [ -C [ fd ] ] [-t kiểu_HTT] [fs-options] [HTT ...]\n"
+"Cách dùng: fsck [-AMNPRTV] [ -C [ fd ] ] [-t kiểu_HTT] [fs-options] "
+"[HTT ...]\n"
"\n"
"HTT: hệ thống tập tin\n"
-#: misc/fsck.c:1121
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: quá nhiá»u thiết bị\n"
-#: misc/fsck.c:1154 misc/fsck.c:1240
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: quá nhiá»u đối số\n"
@@ -3957,7 +4250,7 @@ msgstr "%s: quá nhiá»u đối số\n"
#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
-msgstr "Sử dụng: %s [-RVadlv] [tập_tin...]\n"
+msgstr "Cách dùng: %s [-RVadlv] [tập_tin...]\n"
#: misc/lsattr.c:84
#, c-format
@@ -3969,56 +4262,61 @@ msgstr "Trong khi Ä‘á»c các cá» trên %s"
msgid "While reading version on %s"
msgstr "Trong khi Ä‘á»c phiên bản trên %s"
-#: misc/mke2fs.c:116
+#: misc/mke2fs.c:123
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
-"Sử dụng: %s [-c|-l tên_tập_tin] [-b cỡ_khối] [-C cỡ_đoạn]\n"
+"Cách dùng: %s [-c|-l tên_tập_tin] [-b cỡ_khối] [-C cỡ_liên_cung]\n"
"\t[-i byte_má»—i_inode] [-I cỡ_inode] [-J tùy_chá»n_nhật_ký]\n"
-"\t[-G cỡ_siêu_nhóm] [-N số_các_inode]\n"
-"\t [-m phần_trăm_khối_dành_riêng] [-o HÄH_tạo]\n"
-"\t[-g khối_mỗi_nhóm] [-L nhãn_khối_tin] [-M thư_mục_lắp_cuối]\n"
+"\t[-G cỡ_nhóm-flex] [-N số_lượng_inode]\n"
+"\t[-m phần_trăm_khối_dành_riêng] [-o HÄH_tạo]\n"
+"\t[-g số-khối_mỗi_nhóm] [-L nhãn_khối_tin] [-M thư_mục_lắp_cuối]\n"
"\t[-O tính_năng[,...]] [-r bản_sá»­a_đổi_HTT] [-E tùy_chá»n_mở_rá»™ng[,...]]\n"
-"\t [-T kiểu_HTT] [-U UUID] [-jnqvFKSV] thiết_bị [số_đếm_khối]\n"
+"\t[-t kiểu_HTTT] [-T kiểu-dùng ] [-U UUID] [-jnqvDFKSV] thiết_bị "
+"[số_lượng_khối]\n"
+"Từ viết tắt:\n"
+"\tHDH: hệ Ä‘iá»u hành\n"
+"\tHTTT: hệ thống tập tin\n"
-#: misc/mke2fs.c:218
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "Äang chạy lệnh: %s\n"
-#: misc/mke2fs.c:222
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
-msgstr "trong khi thử chạy « %s »"
+msgstr "trong khi cố chạy “%sâ€"
-#: misc/mke2fs.c:229
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr "trong khi xử lý danh sách các khối sai từ chương trình"
-#: misc/mke2fs.c:256
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Khối %d sai trong vùng mô tả nhóm/siêu khối chính.\n"
-#: misc/mke2fs.c:258
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Các khối trong phạm vi %u đến %u phải là tốt\n"
"để xây dựng được hệ thống tập tin.\n"
-#: misc/mke2fs.c:261
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "Äang hủy bá»...\n"
-#: misc/mke2fs.c:281
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -4028,15 +4326,15 @@ 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 sai.\n"
"\n"
-#: misc/mke2fs.c:300
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr "trong khi đánh dấu các khối sai đã được dùng"
-#: misc/mke2fs.c:317
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "Äang ghi các bảng nút thông tin: "
-#: misc/mke2fs.c:338
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
@@ -4045,72 +4343,77 @@ msgstr ""
"\n"
"Không thể ghi %d khối trong bảng nút thông tin, bắt đầu tại %llu: %s\n"
-#: misc/mke2fs.c:352 misc/mke2fs.c:2170 misc/mke2fs.c:2422
-#, c-format
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
msgid "done \n"
-msgstr "hoàn tất \n"
+msgstr "hoàn tất \n"
-#: misc/mke2fs.c:363
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr "trong khi tạo thư mục gốc"
-#: misc/mke2fs.c:370
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "trong khi Ä‘á»c nút thông tin gốc"
-#: misc/mke2fs.c:384
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr "trong khi đặt quyá»n sở hữu nút thông tin gốc"
-#: misc/mke2fs.c:402
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr "trong khi tạo /mất+tìm"
-#: misc/mke2fs.c:409
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr "trong khi tra tìm /mất+tìm"
-#: misc/mke2fs.c:422
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr "trong khi mở rộng /mất+tìm"
-#: misc/mke2fs.c:437
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr "trong khi đặt nút thông tin khối sai"
-#: misc/mke2fs.c:464
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Hết bộ nhớ nên xoá các rãnh ghi trong phạm vi %d đến %d\n"
-#: misc/mke2fs.c:474
+#: misc/mke2fs.c:539
#, 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:490
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Cảnh báo: không thể xoá rãnh ghi %d: %s\n"
-#: misc/mke2fs.c:506
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
-msgstr "trong khi sở khởi siêu khối nhật ký"
+msgstr "trong khi khởi tạo siêu khối nhật ký"
-#: misc/mke2fs.c:514
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
-msgstr "Äang làm số không thiết bị nhật ký: "
+msgstr "Äang ghi số không thiết bị nhật ký: "
-#: misc/mke2fs.c:526
+#: misc/mke2fs.c:591
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "trong khi làm số không thiết bị nhật ký (khối %llu, số lượng %d)"
-#: misc/mke2fs.c:544
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr "trong khi ghi siêu khối nhật ký"
-#: misc/mke2fs.c:559
+#: misc/mke2fs.c:624
+#, fuzzy, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+"Äang thay đổi kích cỡ của hệ thống tập tin trên %s thành %llu (%dk) khối.\n"
+
+#: misc/mke2fs.c:632
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
@@ -4119,125 +4422,163 @@ msgstr ""
"cảnh báo: %llu khối chưa dùng.\n"
"\n"
-#: misc/mke2fs.c:564
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Nhãn hệ thống tập tin=%s\n"
-#: misc/mke2fs.c:567
+#: misc/mke2fs.c:640
#, c-format
msgid "OS type: %s\n"
msgstr "Kiểu HÄH: %s\n"
-#: misc/mke2fs.c:569
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Cỡ khối=%u (bản ghi=%u)\n"
-#: misc/mke2fs.c:573
+#: misc/mke2fs.c:646
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Cỡ liên cung=%u (bản ghi=%u)\n"
-#: misc/mke2fs.c:577
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Cỡ đoạn=%u (bản ghi=%u)\n"
-#: misc/mke2fs.c:579
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "BÆ°á»›c=%u khối, Äá»™ rá»™ng sá»c=%u khối\n"
-#: misc/mke2fs.c:581
+#: misc/mke2fs.c:654
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u nút thông tin, %llu khối\n"
-#: misc/mke2fs.c:583
+#: misc/mke2fs.c:656
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu khối (%2.2f%%) được dành riêng cho siêu ngÆ°á»i dùng\n"
-#: misc/mke2fs.c:586
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "Khối dữ liệu đầu=%u\n"
-#: misc/mke2fs.c:588
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr "Chủ sở hữu thư-mục gốc=%u:%u\n"
+
+#: misc/mke2fs.c:663
#, 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:592
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr "%u nhóm khối\n"
-#: misc/mke2fs.c:594
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr "%u nhóm khối\n"
-#: misc/mke2fs.c:597
+#: misc/mke2fs.c:672
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
-msgstr "%u khối trên mỗi nhóm, %u đoạn trên mỗi nhóm\n"
+msgstr "%u khối trên mỗi nhóm, %u liên cung trên mỗi nhóm\n"
-#: misc/mke2fs.c:600
+#: misc/mke2fs.c:675
#, 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:602
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr "%u nút thông tin trên mỗi nhóm\n"
-#: misc/mke2fs.c:609
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "Nhãn hệ thống tập tin=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr "Siêu khối dự trữ được cất giữ trên khối: "
-#: misc/mke2fs.c:688 misc/tune2fs.c:1165
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr "%s cần “-O 64bitâ€\n"
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr "“%s†phải trÆ°á»›c “resize=%uâ€\n"
+
+#: misc/mke2fs.c:783
+#, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "desc_size không hợp lệ: “%sâ€\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "Kích cỡ mới không hợp lệ: %s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "mmp_update_interval không hợp lệ: %s\n"
-#: misc/mke2fs.c:702
+#: misc/mke2fs.c:824
+#, fuzzy, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr "Tham số siêu khối không hợp lệ: %s\n"
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Tham số stride không hợp lệ: %s\n"
-#: misc/mke2fs.c:717
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Tham số stride không hợp lệ: %s\n"
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:884
#, 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:747
-#, c-format
+#: misc/mke2fs.c:891
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ớn hơn kích cỡ của hệ thống tập tin.\n"
+msgstr ""
+"Số thay đổi kích cỡ tối đa phải lớn hơn kích cỡ của hệ thống tập tin.\n"
-#: misc/mke2fs.c:771
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"Tính năng thay đổi kích cỡ một cách trực tuyến không được hỗ trợ\n"
"trên hệ thống tập tin bản sửa đổi 0\n"
-#: misc/mke2fs.c:809
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "root_owner không hợp lệ: %s\n"
+
+#: misc/mke2fs.c:976
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Tham số kiểu hạn ngạch không hợp lệ: %s\n"
-#: misc/mke2fs.c:820
-#, c-format
+#: misc/mke2fs.c:987
+#, fuzzy, c-format
msgid ""
"\n"
"Bad option(s) specified: %s\n"
@@ -4246,11 +4587,17 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
@@ -4258,10 +4605,10 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Sai xác định tùy chá»n: %s\n"
+"Tùy chá»n đã cho không đúng: %s\n"
"\n"
-"Các tùy chá»n mở rá»™ng được định giá»›i bằng dấu phẩy, có thể chấp nhận\n"
-"\tđối số được đặt với dấu bằng ('=').\n"
+"Các tùy chá»n mở rá»™ng được ngăn cách bằng dấu phẩy, có thể chấp nhận\n"
+"\tđối số được gán bằng dấu bằng (“=â€..\n"
"\n"
"Tùy chá»n mở rá»™ng hợp lệ:\n"
"\tstride=<đoạn dữ liệu RAID mỗi đĩa theo khối>\n"
@@ -4269,13 +4616,15 @@ msgstr ""
"\tresize=<kích cỡ thay đổi kích cỡ tối đa theo khối>\n"
"\tlazy_itable_init=<0 để tắt, 1 để bật>\n"
"\tlazy_journal_init=<0 để tắt, 1 để bật>\n"
+"\troot_uid=<uid của thư-mục gốc>\n"
+"\troot_gid=<gid của thư-mục >\n"
"\ttest_fs\n"
"\tdiscard\n"
-"\tnodiscard\n"
+"gốc\tnodiscard\n"
"\tquotatype=<usr HAY grp>\n"
"\n"
-#: misc/mke2fs.c:840
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -4283,10 +4632,11 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Cảnh báo: chiá»u rá»™ng sá»c (stripe-width) RAID %u không phải là má»™t bá»™i số dÆ°Æ¡ng của %u.\n"
+"Cảnh báo: chiá»u rá»™ng sá»c (stripe-width) RAID %u không phải là má»™t bá»™i số "
+"dương của %u.\n"
"\n"
-#: misc/mke2fs.c:879
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
@@ -4295,40 +4645,38 @@ 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:892 misc/tune2fs.c:393
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Äặt tùy chá»n hệ thống tập tin không hợp lệ: %s\n"
-#: misc/mke2fs.c:904 misc/tune2fs.c:345
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Äặt tùy chá»n lắp không hợp lệ: %s\n"
-#: misc/mke2fs.c:1042
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
"\n"
-"Tập tin « mke2fs.conf » của bạn không xác định kiểu hệ thống tập tin %s.\n"
+"Tập tin “mke2fs.conf†của bạn không định nghĩa kiểu hệ thống tập tin %s.\n"
-#: misc/mke2fs.c:1046
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-"Rất có thể là bạn cần phải cài đặt một tập tin « mke2fs.conf » mới.\n"
+"Rất có thể là bạn cần phải cài đặt một tập tin “mke2fs.conf†mới.\n"
"\n"
-#: misc/mke2fs.c:1050
-#, c-format
+#: misc/mke2fs.c:1226
msgid "Aborting...\n"
msgstr "Äang hủy bá»...\n"
-#: misc/mke2fs.c:1090
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -4339,128 +4687,134 @@ msgstr ""
"Cảnh báo: fs_type %s không được định nghĩa trong mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1248
-#, c-format
+#: misc/mke2fs.c:1435
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Không thể cấp phát bá»™ nhá»› cho ÄƯỜNG-DẪN\n"
-#: misc/mke2fs.c:1289
+#: misc/mke2fs.c:1476
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Không thể khởi tạo profile thành công (lỗi: %ld).\n"
-#: misc/mke2fs.c:1329
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "cỡ khối không hợp lệ — %s"
-#: misc/mke2fs.c:1333
+#: misc/mke2fs.c:1513
#, 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:1349
+#: misc/mke2fs.c:1529
#, c-format
msgid "invalid cluster size - %s"
-msgstr "cỡ nhóm không hợp lệ — %s"
+msgstr "cỡ liên cung không hợp lệ — %s"
-#: misc/mke2fs.c:1358
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr "“-R†không dùng nữa, hãy thay bằng “-Eâ€"
+
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr "Số cấm cho số khối trên mỗi nhóm"
-#: misc/mke2fs.c:1363
+#: misc/mke2fs.c:1556
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:1371
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr "Kích cỡ flex_bg có số không được phép"
-#: misc/mke2fs.c:1377
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "Kích cỡ flex_bg phải là lũy thừa 2"
-#: misc/mke2fs.c:1387
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "tỷ lệ nút thông tin không hợp lệ %s (thiểu %d/đa %d)"
-#: misc/mke2fs.c:1397
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
-msgstr "Cảnh báo: tuỳ chá»n -K không được tán thành và có lẽ không còn bao giỠđược sá»­ dụng nữa. Sá»­ dụng tuỳ chá»n mở rá»™ng '-E nodiscard' để thay thế!\n"
+msgid "invalid inode size - %s"
+msgstr "kích cỡ nút thông tin không hợp lệ — %s"
-#: misc/mke2fs.c:1411
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
+msgstr ""
+"Cảnh báo: Không tán thành việc sá»­ dụng tuỳ chá»n -K và có lẽ nó sẽ không bao "
+"giỠđược sá»­ dụng nữa. Sá»­ dụng tuỳ chá»n mở rá»™ng “-E nodiscard†để thay thế!\n"
+
+#: misc/mke2fs.c:1614
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 sai\n"
-"« bad_blocks_filename »"
+"“bad_blocks_filenameâ€"
-#: misc/mke2fs.c:1421
+#: misc/mke2fs.c:1627
#, 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:1439
-#, c-format
-msgid "bad revision level - %s"
-msgstr "cấp bản sửa đổi sai — %s"
-
-#: misc/mke2fs.c:1451
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "kích cỡ nút thông tin không hợp lệ — %s"
-
-#: misc/mke2fs.c:1471
+#: misc/mke2fs.c:1642
#, c-format
msgid "bad num inodes - %s"
msgstr "số (num) nút thông tin sai — %s"
-#: misc/mke2fs.c:1488
+#: misc/mke2fs.c:1659
+#, c-format
+msgid "bad revision level - %s"
+msgstr "cấp bản sửa đổi sai — %s"
+
+#: misc/mke2fs.c:1673
msgid "The -t option may only be used once"
msgstr "tùy chá»n -t chỉ sá»­ dụng má»™t lần"
-#: misc/mke2fs.c:1496
+#: misc/mke2fs.c:1681
msgid "The -T option may only be used once"
msgstr "Tùy chá»n -T chỉ sá»­ dụng má»™t lần"
-#: misc/mke2fs.c:1546 misc/mke2fs.c:2490
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
-msgstr "trong khi thử mở thiết bị nhật ký %s\n"
+msgstr "trong khi cố mở thiết bị nhật ký %s\n"
-#: misc/mke2fs.c:1552
+#: misc/mke2fs.c:1740
#, 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) nhỠhơn kích cỡ tối thiểu %d\n"
-#: misc/mke2fs.c:1558
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Äang dùng kích cỡ khối của thiết bị nhật ký: %d\n"
-#: misc/mke2fs.c:1569
+#: misc/mke2fs.c:1757
#, c-format
msgid "invalid blocks '%s' on device '%s'"
-msgstr "khối '%s' sai trên thiết bị '%s'"
+msgstr "khối “%s†sai trên thiết bị “%sâ€"
-#: misc/mke2fs.c:1579
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "hệ thống tập tin"
-#: misc/mke2fs.c:1592 resize/main.c:379
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
-msgstr "trong khi thử quyết định kích cỡ của hệ thống tập tin"
+msgstr "trong khi cố xác định kích cỡ của hệ thống tập tin"
-#: misc/mke2fs.c:1598
+#: misc/mke2fs.c:1796
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 cần phải xác định kích cỡ của hệ thống tập tin\n"
+"Không thể xác định kích cỡ của thiết bị;\n"
+"bạn cần phải chỉ định kích cỡ của hệ thống tập tin\n"
-#: misc/mke2fs.c:1605
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4468,22 +4822,41 @@ msgid ""
"\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"
+"\tPhân vùng không hợp lệ được đưa ra,\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:1622
+#: misc/mke2fs.c:1820
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:1642
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr "Lỗi phân tích danh sách các kiểu hệ thống tập tin\n"
-#: misc/mke2fs.c:1696
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr "trong khi cố xác định kích cỡ của rãnh ghi phần cứng"
+
+#: misc/mke2fs.c:1887
+msgid "while trying to determine physical sector size"
+msgstr "trong khi cố xác định kích cỡ của rãnh ghi vật lý"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
+msgstr "trong khi cài đặt kích cỡ khối ; quá nhỠđối với thiết bị\n"
+
+#: misc/mke2fs.c:1924
+#, c-format
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr ""
+"Cảnh báo: kích cỡ khối %d đã ghi rõ vẫn nhỠhơn kích cỡ rãnh ghi vật lý của "
+"thiết bị %d\n"
+
+#: misc/mke2fs.c:1948
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
@@ -4492,119 +4865,135 @@ msgstr ""
"%s: thiết bị (0x%llx blocks) %s có kích cỡ quá lớn để biểu diễn theo 32 bit\n"
"\tdùng kích cỡ khối của %d.\n"
-#: misc/mke2fs.c:1712
+#: misc/mke2fs.c:1964
msgid "fs_types for mke2fs.conf resolution: "
msgstr "fs_types để giải quyết mke2fs.conf: "
-#: misc/mke2fs.c:1719
-#, c-format
+#: misc/mke2fs.c:1971
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ợ trên hệ thống tập tin\n"
"bản sửa đổi 0\n"
-#: misc/mke2fs.c:1726
-#, c-format
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"Tính năng siêu khối thưa thớt không được hỗ trợ\n"
"trên hệ thống tập tin bản sửa đổi 0\n"
-#: misc/mke2fs.c:1738
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
"Tính năng nhật ký không được hỗ trợ trên hệ thống tập tin\n"
"bản sửa đổi 0\n"
-#: misc/mke2fs.c:1752
+#: misc/mke2fs.c:2005
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "phần trăm khối được dành riêng không hợp lệ -%lf"
-#: misc/mke2fs.c:1768
-#, c-format
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-"Hai tính năng thay đổi kích cỡ nút (resize_inode) và siêu ná»n (meta_bg) không tÆ°Æ¡ng thích vá»›i nhau.\n"
-"Do đó không thể hiệu lá»±c đồng thá»i cả hai.\n"
+"Phần mở rộng PHẢI được bật cho hệ thống tập tin 64-bit. Chuyển -O "
+"phần_mở_rộng để nắn chỉnh.\n"
-#: misc/mke2fs.c:1785
-msgid "while trying to determine hardware sector size"
-msgstr "trong khi thử quyết định kích cỡ của rãnh ghi phần cứng"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr "Kích thước liên cung không thể nhỠhơn kích cỡ khối.\n"
-#: misc/mke2fs.c:1791
-msgid "while trying to determine physical sector size"
-msgstr "trong khi thử quyết định kích cỡ của rãnh ghi vật lý"
-
-#: misc/mke2fs.c:1824
-msgid "while setting blocksize; too small for device\n"
-msgstr "trong khi lập kích cỡ khối ; quá nhỠđối với thiết bị\n"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr "chỉ định kích thước liên cung cần đặc tính bigalloc"
-#: misc/mke2fs.c:1829
-#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr "Cảnh báo: kích cỡ khối %d đã ghi rõ vẫn nhỠhơn kích cỡ rãnh ghi vật lý của thiết bị %d\n"
-
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2067
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "cảnh báo: không thể lấy dạng hình thiết bị cho %s\n"
-#: misc/mke2fs.c:1863
+#: misc/mke2fs.c:2070
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Khoảng sắp hàng %s bị bù theo %lu byte.\n"
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2072
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr "TrÆ°á»ng hợp này có thể gây ra hiệu suất rất yếu thì khuyên bạn phân vùng (lại).\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr ""
+"TrÆ°á»ng hợp này có thể gây ra hiệu suất rất yếu thì khuyên bạn phân vùng "
+"(lại).\n"
-#: misc/mke2fs.c:1876
+#: misc/mke2fs.c:2093
#, 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:1880
+#: misc/mke2fs.c:2097
#, 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 ""
"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:1915
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr "Không thể hỗ trợ đặc tính bigalloc mà không có phần mở "
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+"Hai tính năng thay đổi kích cỡ nút (resize_inode) và siêu ná»n (meta_bg) "
+"không tương thích với nhau.\n"
+"Do đó không thể hiệu lá»±c đồng thá»i cả hai.\n"
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+"\n"
+"Cảnh báo: đặc tính phân-bổ-lớn vẫn đang trong quá trình phát triển\n"
+"Xem https://ext4.wiki.kernel.org/index.php/Bigalloc để biết chi tiết\n"
+"\n"
+
+#: misc/mke2fs.c:2172
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 thưa thớt"
-#: misc/mke2fs.c:1924
+#: misc/mke2fs.c:2181
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:1939
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr "Chưa hiệu lực tính năng Flex_bg thì không thể ghi rõ kích cỡ Flex_bg"
-#: misc/mke2fs.c:1951
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "kích cỡ nút thông tin không hợp lệ %d (thiểu %d/đa %d)"
-#: misc/mke2fs.c:1969
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "quá nhiá»u nút thông tin (%llu), tăng tá»· lệ nút thông tin không?"
-#: misc/mke2fs.c:1976
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
-msgstr "quá nhiá»u nút thông tin (%llu), xác định <2³² nút thông tin"
+msgstr "quá nhiá»u nút thông tin (%llu), chỉ ra <2³² nút thông tin"
-#: misc/mke2fs.c:1990
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
@@ -4612,11 +5001,11 @@ msgid ""
"\tor lower inode count (-N).\n"
msgstr ""
"cỡ_nút_thông_tin (%u) * số_lượng_nút_thông_tin (%u) quá lớn\n"
-"\tcho hệ thống tập tin có %llu khối, hãy xác định\n"
+"\tcho hệ thống tập tin có %llu khối, hãy chỉ định\n"
"\ttỷ_lệ_nút_thông_tin (-i) cao hơn hay số lượng nút thông tin\n"
"(-N) thấp hơn\n"
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4627,43 +5016,41 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2123
+#: misc/mke2fs.c:2397
msgid "while trying to setup undo file\n"
-msgstr "trong khi tử cài đặt tệp tin undo\n"
+msgstr "trong khi cố cài đặt tập tin undo\n"
-#: misc/mke2fs.c:2149
+#: misc/mke2fs.c:2423
msgid "Discarding device blocks: "
msgstr "BỠqua khối thiết bị: "
-#: misc/mke2fs.c:2165
+#: misc/mke2fs.c:2439
msgid "failed - "
-msgstr "gặp lỗi -"
+msgstr "gặp lỗi - "
# Item in the main menu to select this package
-#: misc/mke2fs.c:2270
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
-msgstr "trong khi thiết lập siêu khối"
+msgstr "trong khi cài đặt siêu khối"
-#: misc/mke2fs.c:2279
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
msgstr "Loại bỠthành công và sẽ trả vỠ0 - bỠqua xoá bảng nút\n"
-#: misc/mke2fs.c:2362
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "hệ Ä‘iá»u hành lạ — %s"
-#: misc/mke2fs.c:2414
-#, c-format
+#: misc/mke2fs.c:2717
msgid "Allocating group tables: "
msgstr "Phân bổ bảng nhóm: "
-#: misc/mke2fs.c:2418
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
-msgstr "trong khi thử cấp phát các bảng hệ thống tập tin"
+msgstr "trong khi cố cấp phát các bảng hệ thống tập tin"
-#: misc/mke2fs.c:2427
+#: misc/mke2fs.c:2734
msgid ""
"\n"
"\twhile converting subcluster bitmap"
@@ -4671,50 +5058,55 @@ msgstr ""
"\n"
"\ttrong khi chuyển đổi mảng ảnh liên cung con"
-#: misc/mke2fs.c:2459
+#: misc/mke2fs.c:2777
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "trong khi Ä‘iá»n số không khối %llu tại kết thúc của hệ thống tập tin"
-#: misc/mke2fs.c:2472
+#: misc/mke2fs.c:2791
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:2483 misc/tune2fs.c:640
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "nhật ký"
-#: misc/mke2fs.c:2495
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr "Äang thêm nhật ký vào thiết bị %s: "
-#: misc/mke2fs.c:2502
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
"\twhile trying to add journal to device %s"
msgstr ""
"\n"
-"trong khi thử thêm nhật ký vào thiết bị %s"
+"trong khi cố thêm nhật ký vào thiết bị %s"
-#: misc/mke2fs.c:2507 misc/mke2fs.c:2539 misc/tune2fs.c:669 misc/tune2fs.c:683
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "hoàn tất\n"
-#: misc/mke2fs.c:2516
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr "Äang bá» qua bÆ°á»›c tạo nhật ký trong chế Ä‘á»™ chỉ siêu\n"
-#: misc/mke2fs.c:2527
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Äang tạo nhật ký (%u khối): "
-#: misc/mke2fs.c:2546 misc/tune2fs.c:446
-#, c-format
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+"\n"
+"trong khi cố tạo nhật ký"
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
@@ -4722,18 +5114,16 @@ msgstr ""
"\n"
"Lỗi khi bật đặc tính bảo vệ đa gắn"
-#: misc/mke2fs.c:2551
+#: misc/mke2fs.c:2871
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
msgstr "Bảo vệ đa gắn được bật với nhịp cập nhật là %d giây.\n"
-#: misc/mke2fs.c:2564
-#, c-format
+#: misc/mke2fs.c:2888
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:2571
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
@@ -4741,8 +5131,7 @@ 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:2573
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4751,9 +5140,8 @@ msgstr ""
"\n"
#: misc/mklost+found.c:50
-#, c-format
msgid "Usage: mklost+found\n"
-msgstr "Sử dụng: mklost+found\n"
+msgstr "Cách dùng: mklost+found\n"
#: misc/partinfo.c:41
#, c-format
@@ -4764,7 +5152,7 @@ msgid ""
"For example: %s /dev/hda\n"
"\n"
msgstr ""
-"Sử dụng: %s thiết bị...\n"
+"Cách dùng: %s thiết bị...\n"
"\n"
"In ra thông tin vỠphân vùng đối với mỗi thiết bị được cho.\n"
"Ví dụ: %s /dev/hda\n"
@@ -4790,47 +5178,52 @@ msgstr "Không thể lấy kích cỡ của %s: %s"
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr "%s: h=%3d s=%3d c=%4d đầu=%8d cỡ=%8lu cuối=%8d\n"
-#: misc/tune2fs.c:107
+#: misc/tune2fs.c:112
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:116
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-"Sử dụng: %s [-c số_đếm_lắp_tối_đa] [-e ứng_xử_lỗi] [-g nhóm]\n"
+"Cách dùng: %s [-c số_đếm_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ý] [-l]\n"
-"\t[-m phần_trăm_khối_dành_riêng] [-o [^]tùy_chá»n_lắp[,...]] [-p nhịp_cập_nhật_mmp]\n"
-"\t[-r số_đếm_khối_dành_riêng] [-u ngÆ°á»i_dùng] [-C số_đếm_lắp] [-L nhãn_phân_vùng]\n"
+"\t[-m phần_trăm_khối_dành_riêng] [-o [^]tùy_chá»n_lắp[,...]] [-p "
+"nhịp_cập_nhật_mmp]\n"
+"\t[-r số_đếm_khối_dành_riêng] [-u ngÆ°á»i_dùng] [-C số_đếm_lắp] [-L "
+"nhãn_phân_vùng]\n"
"\t[-M thư_mục_lắp_cuối] [-O [^]tính_năng[,...]]\n"
+"\t[-Q tùy_chá»n_quota]\n"
"\t[-E tùy_chá»n_mở_rá»™ng[,...] [-T giá»_kiểm_tra_cuối] [-U UUID]\n"
-"\t[-l cỡ_nút_mới] thiết_bị\n"
+"\t[-I cỡ_nút_mới] thiết_bị\n"
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
-msgstr "trong khi thử mở nhật ký bên ngoài"
+msgstr "trong khi cố mở nhật ký bên ngoài"
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s không phải thiết bị nhật ký.\n"
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "Không tìm thấy siêu khối nhật ký !\n"
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:248
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:257
+#: misc/tune2fs.c:269
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
@@ -4838,38 +5231,37 @@ msgstr ""
"Không thể định được thiết bị journal. Nó đã KHÔNG bị gỡ bá»\n"
"Sá»­ dụng tuỳ chá»n -f để gỡ bá» thiết bị journal bị thiếu.\n"
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "Nhật ký đã gỡ bá»\n"
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "trong khi Ä‘á»c các mảng ảnh"
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "trong khi xoá sạch nút thông tin nhật ký"
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr "trong khi ghi nút thông tin nhật ký"
-#: misc/tune2fs.c:363
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
-msgstr "(và khởi động lại sau !)\n"
+msgstr "(và khởi động lại sau!)\n"
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr "Tính năng xoá sạch hệ thống tập tin « %s » không được hỗ trợ.\n"
+msgstr "Tính năng xoá sạch hệ thống tập tin “%s†không được hỗ trợ.\n"
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
-msgstr "Tính năng đặt hệ thống tập tin « %s » không được hỗ trợ.\n"
+msgstr "Tính năng đặt hệ thống tập tin “%s†không được hỗ trợ.\n"
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4878,7 +5270,7 @@ msgstr ""
"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:419
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
@@ -4886,49 +5278,58 @@ msgstr ""
"Äặt cá» cần thiết phục hồi (needs_recovery).\n"
"Hãy chạy tiến trình e2fsck trước khi xoá sạch cỠcó nhật ký (has_journal).\n"
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:462
+#, fuzzy
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Chức năng thay đổi kích cỡ nút thông tin không phải được hỗ trợ đối với hệ "
+"thống tập tin đã bật tính năng “flex_bgâ€.\n"
+
+#: misc/tune2fs.c:475
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
"read-only.\n"
msgstr ""
"Tính năng bảo vệ chống đa gắn không thể\n"
-"đặt được nếu hệ thống tệp tin đã được gắn kết\n"
+"đặt được nếu hệ thống tập tin đã được gắn kết\n"
"hay chỉ cho Ä‘á»c.\n"
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:493
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
msgstr "Äặc tính kỹ thuật bảo vệ Ä‘a gắn đã bật vá»›i nhịp cập nhật là %d giây.\n"
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:502
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
msgstr ""
"Äặc tính kỹ thuật bảo vệ Ä‘a gắn không thể\n"
-"được tắt nếu hệ thống tệp tin chỉ Ä‘á»c.\n"
+"được tắt nếu hệ thống tập tin chỉ Ä‘á»c.\n"
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:510
msgid "Error while reading bitmaps\n"
msgstr "Gặp lá»—i khi Ä‘á»c mảng\n"
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:519
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
msgstr "Số mầu nhiệm trong khối MMP không khá»›p. mong chá»: %x, thá»±c tế: %x\n"
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:524
msgid "while reading MMP block."
msgstr "trong khi Ä‘á»c khối MMP."
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr "Gỡ bỠcỠflex_bg thì gây ra hệ thống tập tin không thống nhất.\n"
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
@@ -4937,59 +5338,60 @@ msgstr ""
"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:590
+#: misc/tune2fs.c:627
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
"\n"
-"Cảnh báo: tuỳ chá»n '^quota' sẽ dè lên đối số '-Q'.\n"
+"Cảnh báo: tuỳ chá»n “^quota†sẽ dè lên đối số “-Qâ€.\n"
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr "Hệ thống tập tin đã có nhật ký.\n"
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
"\twhile trying to open journal on %s\n"
msgstr ""
"\n"
-"trong khi thử mở nhật ký trên %s\n"
+"trong khi cố mở nhật ký trên %s\n"
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr "Äang tạo nhật ký trên thiết bị %s: "
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:704
#, 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:671
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr "Äang tạo nút thông tin nhật ký: "
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
msgstr ""
"\n"
-"trong khi thử tạo tập tin nhật ký"
+"trong khi cố tạo tập tin nhật ký"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:799
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr "Không thể cấp phát bá»™ nhá»› để phân tách các tùy chá»n hạn ngạch!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:821
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with comma):\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
@@ -4998,103 +5400,105 @@ msgstr ""
"\n"
"Äã chỉ định tuỳ chá»n hạn ngạch sai.\n"
"\n"
-"Sau đây là danh sách các tuỳ chá»n hạn ngạch được dùng (chấp nhận ngăn cách bằng dấu phẩy):\n"
+"Sau đây là danh sách các tuỳ chá»n hạn ngạch được dùng (chấp nhận ngăn cách "
+"bằng dấu phẩy):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:881
#, 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:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
-msgstr "số đếm lắp sai — %s"
+msgstr "số đếm gắn sai — %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr "ứng xử lỗi sai — %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr "GID/tên nhóm sai — %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
-msgstr "khoảng sai - %s"
+msgstr "sai nhịp - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "tỷ lệ khối dành riêng sai — %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
-msgstr "có thể xác định tùy chá»n « -o » chỉ má»™t lần"
+msgstr "có thể Ä‘Æ°a ra tùy chá»n “-o†chỉ má»™t lần"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
-msgstr "có thể xác định tùy chá»n « -O » chỉ má»™t lần"
+msgstr "có thể Ä‘Æ°a ra tùy chá»n “-O†chỉ má»™t lần"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "số đếm khối dành riêng sai — %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr "UID/tên ngÆ°á»i dùng sai — %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "kích cỡ nút sai — %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Kích cỡ nút phải là lũy thừa 2 — %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1215
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "mmp_update_interval quá lớn (%lu)\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1220
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] "Äang đặt khoảng thá»i gian cập nhật bảo vệ chống Ä‘a lắp thành %lu giây\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] ""
+"Äang đặt khoảng thá»i gian cập nhật bảo vệ chống Ä‘a lắp thành %lu giây\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Tham số stride RAID không hợp lệ: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Tham số chiá»u rá»™ng sá»c (stripe-width) RAID không hợp lệ: %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Thuật toán tạo mẫu duy nhất vẫn không hợp lệ: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Äang đặt thuật toán tạo mẫu duy nhất thành %s (%d)\n"
-#: misc/tune2fs.c:1257
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -5112,10 +5516,10 @@ msgid ""
"\t^test_fs\n"
msgstr ""
"\n"
-"Sai xác định tùy chá»n.\n"
+"Chỉ định tùy chá»n sai.\n"
"\n"
"Các tùy chá»n mở rá»™ng định giá»›i bằng dấu phẩy, có thể chấp nhận\n"
-"\tđối số được gán với dấu bằng « = ».\n"
+"\tđối số được gán vá»›i dấu bằng “=â€.\n"
"\n"
"Tùy chá»n đã mở rá»™ng hợp lệ:\n"
"\tclear_mmp\n"
@@ -5126,48 +5530,48 @@ msgstr ""
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1764
msgid "Failed to read inode bitmap\n"
-msgstr "Không thể Ä‘á»c sÆ¡ đồ inode\n"
+msgstr "Không thể Ä‘á»c ánh xạ inode\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1769
msgid "Failed to read block bitmap\n"
msgstr "Lá»—i khi Ä‘á»c mảng khối\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr "khối cần di chuyển"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr "Lỗi cấp phát ảnh mảng khối khi tăng kích cỡ inode\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr "Không đủ sức chứa để tăng kích cỡ inode\n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
msgstr "Lỗi định vị lại khối trong khi thay đổi kích cỡ inode \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
"Gặp lỗi khi thay đổi kích cỡ nút.\n"
-"Hãy chạy lệnh « e2undo » để hủy các bước thay đổi hệ thống tập tin. \n"
+"Hãy chạy lệnh “e2undo†để hủy các bước thay đổi hệ thống tập tin. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1859
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Không thể cấp phát bộ nhớ cho tên tập tin tdb\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1880
#, c-format
msgid "while trying to delete %s"
-msgstr "trong khi thử xoá %s"
+msgstr "trong khi cố xoá %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -5178,71 +5582,75 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1957
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-"Khối màu nhiệm MMP sai. Thử sửa bằng cách chạy lệnh:\n"
-"'e2fsck -f %s'\n"
+"Khối màu nhiệm MMP sai. Hãy thử sửa bằng cách chạy lệnh:\n"
+"“e2fsck -f %sâ€\n"
-#: misc/tune2fs.c:1936
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Kích cỡ nút thông tin đã %lu\n"
-#: misc/tune2fs.c:1942
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
+msgstr "Không hỗ trợ tính năng thu nhỠkích cỡ nút\n"
+
+#: misc/tune2fs.c:1987
#, c-format
-msgid "Shrinking the inode size is not supported\n"
-msgstr "Không hỗ trợ tính năng thu nhỠkích cỡ nút thông tin\n"
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "Kích cỡ nút thông tin không hợp lệ %lu (tối đa %d)\n"
-#: misc/tune2fs.c:1989
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Äang đặt số đếm lắp tối Ä‘a thành %d\n"
-#: misc/tune2fs.c:1995
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Äang đặt số đếm lắp hiện thá»i thành %d\n"
-#: misc/tune2fs.c:2000
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Äang đặt ứng xá»­ lá»—i thành %d\n"
-#: misc/tune2fs.c:2005
+#: misc/tune2fs.c:2050
#, 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:2010
+#: misc/tune2fs.c:2055
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "khoảng giữa hai lần kiểm tra quá lớn (%lu)"
-#: misc/tune2fs.c:2017
+#: misc/tune2fs.c:2062
#, 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:2024
+#: misc/tune2fs.c:2069
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Äang đặt phần trăm khối dá»± trữ thành %g%% (%llu khối)\n"
-#: misc/tune2fs.c:2030
+#: misc/tune2fs.c:2075
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "số lượng khối dự trữ quá lớn (%llu)"
-#: misc/tune2fs.c:2037
+#: misc/tune2fs.c:2082
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Äang đặt số lượng khối dá»± trữ thành %llu\n"
-#: misc/tune2fs.c:2043
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
@@ -5250,7 +5658,17 @@ msgstr ""
"\n"
"Hệ thống tập tin đã có siêu khối thưa thớt.\n"
-#: misc/tune2fs.c:2050
+#: misc/tune2fs.c:2092
+#, fuzzy
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+"Chức năng thay đổi kích cỡ nút thông tin không phải được hỗ trợ đối với hệ "
+"thống tập tin đã bật tính năng “flex_bgâ€.\n"
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
@@ -5259,116 +5677,176 @@ msgstr ""
"\n"
"Äặt cá» siêu khối thÆ°a thá»›t. %s"
-#: misc/tune2fs.c:2055
+#: misc/tune2fs.c:2108
+#, fuzzy
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
"\n"
"Tính năng xoá sạch siêu cỠsparse không được hỗ trợ.\n"
-#: misc/tune2fs.c:2063
+#: misc/tune2fs.c:2116
#, 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:2069
+#: misc/tune2fs.c:2122
#, 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:2101
+#: misc/tune2fs.c:2154
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr "Lỗi không sử dụng clear_mmp. Nó phải được sử dụng cùng với -f\n"
-#: misc/tune2fs.c:2119
-msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr "Äặc tính hạn ngạch chỉ có thể được thay đổi khi hệ thống tập tin không được gắn kết.\n"
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+"Äặc tính hạn ngạch chỉ có thể được thay đổi khi hệ thống tập tin không được "
+"gắn kết.\n"
+
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr "chỉ có thể thay đổi UUID khi hệ thống tập tin không được gắn kết.\n"
-#: misc/tune2fs.c:2152
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "Äịnh dạng UUID không hợp lệ\n"
-#: misc/tune2fs.c:2165
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
-msgstr "Kích cỡ nút chỉ có thể thay đổi khi hệ thống tập tin không được gắn kết.\n"
+msgstr ""
+"Kích cỡ nút chỉ có thể thay đổi khi hệ thống tập tin không được gắn kết.\n"
-#: misc/tune2fs.c:2173
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
-msgstr "Chức năng thay đổi kích cỡ nút thông tin không phải được hỗ trợ đối với hệ thống tập tin đã bật tính năng « flex_bg ».\n"
+msgstr ""
+"Chức năng thay đổi kích cỡ nút thông tin không phải được hỗ trợ đối với hệ "
+"thống tập tin đã bật tính năng “flex_bgâ€.\n"
-#: misc/tune2fs.c:2186
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Äang đặt kích cỡ nút %lu\n"
-#: misc/tune2fs.c:2189
-#, c-format
+#: misc/tune2fs.c:2256
msgid "Failed to change inode size\n"
msgstr "Lỗi thay đổi kích thước của nút\n"
-#: misc/tune2fs.c:2200
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Äang đặt kích cỡ stride thành %d\n"
-#: misc/tune2fs.c:2205
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Äang đặt chiá»u rá»™ng sá»c (stripe width) thành %d\n"
-#: misc/tune2fs.c:2212
+#: misc/tune2fs.c:2279
#, c-format
msgid "Setting extended default mount options to '%s'\n"
-msgstr "Äang đặt tuỳ chá»n gắn mặc định mở rá»™ng thành '%s'\n"
+msgstr "Äang đặt tuỳ chá»n gắn mặc định mở rá»™ng thành “%sâ€\n"
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
-#: misc/util.c:74
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "Vẫn còn tiếp tục không? (c,k)"
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "Vẫn còn tiếp tục không? (c,k)"
-#: misc/util.c:89
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "số đếm gắn sai — %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "số đếm gắn sai — %s"
+
+#: misc/util.c:135
+#, c-format
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "Không thể lấy các thông tin vỠ%s — %s\n"
+msgid "Found a %s partition table in %s\n"
+msgstr ""
-#: misc/util.c:92
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "tập tin thÆ°á»ng"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "Không thể mở %s: %s"
+
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
msgstr ""
"\n"
-"Có vẻ là thiết bị không tồn tại; bạn có xác định đúng chưa?\n"
+"Có vẻ là thiết bị không tồn tại; bạn có đưa ra đúng chưa?\n"
-#: misc/util.c:103
+#: misc/util.c:230
#, c-format
msgid "%s is not a block special device.\n"
msgstr "%s không phải thiết bị đặc biệt khối.\n"
-#: misc/util.c:132
+#: misc/util.c:252
+#, fuzzy, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr " chứa hệ thống tập tin có lỗi"
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr " chứa hệ thống tập tin có lỗi"
+
+#: misc/util.c:292
#, 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:154
+#: misc/util.c:315
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 » không đúng.\n"
+msgstr "Tiến trình mke2fs vẫn còn bị ép buộc. Mong “/etc/mtab†không đúng.\n"
-#: misc/util.c:159
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr "sẽ không làm %s ở đây !\n"
-#: misc/util.c:166
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "Tiến trình mke2fs vẫn còn bị ép buộc.\n"
-#: misc/util.c:182
+#: misc/util.c:343
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:207
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
@@ -5377,7 +5855,8 @@ msgstr ""
"\n"
"Không tìm thấy thiết bị nhật ký tương ứng với %s\n"
-#: misc/util.c:228
+#: misc/util.c:395
+#, fuzzy
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -5388,15 +5867,16 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
msgstr ""
"\n"
-"Sai xác định tùy chá»n nhật ký.\n"
+"ÄÆ°a ra tùy chá»n nhật ký sai.\n"
"\n"
"Các tùy chá»n nhật ký cÅ©ng định giá»›i bằng dấu phẩy, có thể chấp nhận\n"
-"đối số được ngụ ý với dấu bằng « = ».\n"
+"đối số được ngụ ý vá»›i 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"
@@ -5406,7 +5886,7 @@ msgstr ""
"1024 đến 10240000 khối hệ thống tập tin.\n"
"\n"
-#: misc/util.c:258
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -5414,7 +5894,7 @@ msgstr ""
"\n"
"Hệ thống tập tin quá nhỠđối với nhật ký\n"
-#: misc/util.c:265
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -5426,7 +5906,7 @@ msgstr ""
"nó phải nằm trong phạm vi 1024 đến 10240000 khối\n"
"nên hủy bá».\n"
-#: misc/util.c:273
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
@@ -5434,7 +5914,7 @@ msgstr ""
"\n"
"Kích cỡ nhật ký quá lớn đối với hệ thống tập tin.\n"
-#: misc/util.c:287
+#: misc/util.c:455
#, c-format
msgid ""
"This filesystem will be automatically checked every %d mounts or\n"
@@ -5442,12 +5922,13 @@ msgid ""
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 » để ghi đè lên nó.\n"
+"“tune2fs -c†hay “tune2fs -i†để ghi đè lên nó.\n"
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr "Sá»­ dụng: %s [-d] [-p tập_tin_PID] [-s Ä‘Æ°á»ng_dẫn_ổ_cắm] [-T thá»i_hạn]\n"
+msgstr ""
+"Cách dùng: %s [-d] [-p tập_tin_PID] [-s Ä‘Æ°á»ng_dẫn_ổ_cắm] [-T thá»i_hạn]\n"
#: misc/uuidd.c:50
#, c-format
@@ -5552,7 +6033,6 @@ msgid_plural "%s and subsequent %d UUIDs\n"
msgstr[0] "%s và %d UUID xảy ra sau\n"
#: misc/uuidd.c:547
-#, c-format
msgid "List of UUID's:\n"
msgstr "Danh sách của UUID:\n"
@@ -5574,105 +6054,113 @@ msgstr "Äã buá»™c kết thúc uuidd chạy tại PID %d\n"
#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
-msgstr "Sử dụng: %s [-r] [-t]\n"
+msgstr "Cách dùng: %s [-r] [-t]\n"
#: resize/extent.c:202
msgid "# Extent dump:\n"
-msgstr "# Äổ khoảng:\n"
+msgstr "# Äổ mở rá»™ng:\n"
#: resize/extent.c:203
#, c-format
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
-msgstr "#\tSố=%llu, Cỡ=%llu, Con trá»=%llu, Sắp xếp=%llu\n"
+msgstr "#\tSố=%llu, Cỡ=%llu, Con trá»=%llu, Sắp xếp=%llu\n"
-#: resize/main.c:43
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Sá»­ dụng: %s [-d cá»_gỡ_lá»—i] [-f] [-F] [-M] [-P] [-p] thiết_bị [kích_cỡ_má»›i]\n"
+"Cách dùng: %s [-d cá»_gỡ_lá»—i] [-f] [-F] [-M] [-P] [-p] thiết_bị "
+"[kích_cỡ_mới]\n"
"\n"
-#: resize/main.c:65
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "Äang mở rá»™ng bảng nút thông tin"
-#: resize/main.c:68
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "Äang định vị lại các khối"
-#: resize/main.c:71
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "Äang quét bảng nút thông tin"
-#: resize/main.c:74
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "Äang cập nhật các tham chiếu nút thông tin"
-#: resize/main.c:77
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "Äang di chuyển bảng nút thông tin"
-#: resize/main.c:80
+#: resize/main.c:81
msgid "Unknown pass?!?"
-msgstr "Lần qua lạ ?!?"
+msgstr "Lần qua lạ?!?"
-#: resize/main.c:83
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr "Khởi chạy lần qua %d (tối đa = %lu)\n"
-#: resize/main.c:263
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+"\n"
+"Việc thay đổi kích thước của hệ thống tập tin bigalloc chưa được thử nghiệm "
+"đầy đủ.\n"
+"Tá»± chịu trách nhiệm nếu muốn dùng! Dùng tùy chá»n ép buá»™c nếu bạn muốn thá»±c "
+"hiện tiếp.\n"
+"\n"
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "trong khi mở %s"
-#: resize/main.c:275
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "trong khi lấy các thông tin vỠ%s"
-#: resize/main.c:336
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: tổ hợp hai tính năng flex_bg và !resize_inode\n"
-"Ä‘á»u không được resize2fs há»— trợ.\n"
-
-#: resize/main.c:349 resize/main.c:457
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"\n"
-msgstr "Trước tiên hãy chạy tiến trình « e2fsck -f %s ».\n"
+msgstr ""
+"TrÆ°á»›c tiên hãy chạy lệnh “e2fsck -f %sâ€.\n"
+"\n"
-#: resize/main.c:353
+#: resize/main.c:342
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
-msgstr "Kích cỡ hệ thống tập tin tối thiểu được ước tính: %llu\n"
+msgstr "Ước tính tích cỡ tối thiểu của hệ thống tập tin: %llu\n"
-#: resize/main.c:389
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Kích cỡ mới không hợp lệ: %s\n"
-#: resize/main.c:397
+#: resize/main.c:394
msgid "New size too large to be expressed in 32 bits\n"
msgstr "Kích thước mới quá lớn để có thể dùng số 32 bit\n"
-#: resize/main.c:409
+#: resize/main.c:402
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Kích cỡ mới vẫn nhỠhơn mức tối thiểu (%llu)\n"
-#: resize/main.c:415
+#: resize/main.c:408
msgid "Invalid stride length"
msgstr "Äá»™ dài stride không hợp lệ"
-#: resize/main.c:439
+#: resize/main.c:432
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
@@ -5683,7 +6171,7 @@ msgstr ""
"Bạn đã yêu cầu kích cỡ mới %llu khối.\n"
"\n"
-#: resize/main.c:446
+#: resize/main.c:439
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
@@ -5692,26 +6180,27 @@ msgstr ""
"Hệ thống tập tin đã có độ dài %llu khối. Không có gì cần làm !\n"
"\n"
-#: resize/main.c:461
+#: resize/main.c:456
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
-msgstr "Äang thay đổi kích cỡ của hệ thống tập tin trên %s thành %llu (%dk) khối.\n"
+msgstr ""
+"Äang thay đổi kích cỡ của hệ thống tập tin trên %s thành %llu (%dk) khối.\n"
-#: resize/main.c:470
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
-msgstr "trong khi thử thay đổi kích cỡ %s"
+msgstr "trong khi cố thay đổi kích cỡ %s"
-#: resize/main.c:473
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"after the aborted resize operation.\n"
msgstr ""
-"Hãy chạy câu lệnh « e2fsck -fy %s » để sửa chữa hệ thống tập tin\n"
+"Hãy chạy câu lệnh “e2fsck -fy %s†để sửa chữa hệ thống tập tin\n"
"đằng sau thao tác thay đổi kích cỡ bị hủy bá».\n"
-#: resize/main.c:479
+#: resize/main.c:474
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
@@ -5720,85 +6209,122 @@ msgstr ""
"Hệ thống tập tin nằm trên %s giỠcó độ dài %llu khối.\n"
"\n"
-#: resize/main.c:494
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
-msgstr "trong khi thử cắt ngắn %s"
+msgstr "trong khi cố cắt ngắn %s"
+
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "Hạt nhân không hỗ trợ tính năng thay đổi kích cỡ trực tuyến"
-#: resize/online.c:40
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr "Hệ thống tập tin ở %s được gắn kết vào %s; cần thiết thay đổi kích cỡ trực tuyến\n"
+msgstr ""
+"Hệ thống tập tin ở %s được gắn kết vào %s; cần thiết thay đổi kích cỡ trực "
+"tuyến\n"
-#: resize/online.c:44
+#: resize/online.c:91
msgid "On-line shrinking not supported"
msgstr "Tính năng thu nhỠkhi đang chạy không được hỗ trợ"
-#: resize/online.c:63
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr "Hệ thống tập tin không hỗ trợ tính năng thay đổi kích cỡ trực tuyến"
-#: resize/online.c:70
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Không đủ khối dự trữ gdt để thay đổi kích thước"
+
+#: resize/online.c:132
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+"Hạt nhân không hỗ trợ tính năng thay đổi kích cỡ hệ thống tập tin này rộng "
+"hơn"
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
-msgstr "trong khi thử mở điểm lắp %s"
+msgstr "trong khi cố mở điểm lắp %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr "Äã yêu cầu giao diện thay đổi kích cỡ cÅ©.\n"
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "Không đủ quyá»n để thay đổi kích cỡ của hệ thống tập tin"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "Trong khi kiểm tra có hỗ trợ thay đổi kích cỡ trực tuyến"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "Hạt nhân không hỗ trợ tính năng thay đổi kích cỡ hệ thống tệp tin này rộng hơn"
-
-#: resize/online.c:119
+#: resize/online.c:184
msgid "Kernel does not support online resizing"
msgstr "Hạt nhân không hỗ trợ tính năng thay đổi kích cỡ trực tuyến"
-#: resize/online.c:152
+#: resize/online.c:223
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr "Äang thá»±c hiện má»™t công việc thay đổi kích cỡ %s trá»±c tuyến thành %llu (%dk) khối.\n"
+msgstr ""
+"Äang thá»±c hiện má»™t công việc thay đổi kích cỡ %s trá»±c tuyến thành %llu (%dk) "
+"khối.\n"
-#: resize/online.c:162
+#: resize/online.c:233
msgid "While trying to extend the last group"
-msgstr "Trong khi thử mở rộng nhóm cuối cùng"
+msgstr "Trong khi cố mở rộng nhóm cuối cùng"
-#: resize/online.c:216
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
-msgstr "Trong khi thử thêm nhóm số %d"
+msgstr "Trong khi cố thêm nhóm số %d"
-#: resize/online.c:227
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
-msgstr "Hệ thống tập tin ở %s được gắn kết vào %s, và tính năng thay đổi kích cỡ trên dòng không được hỗ trợ trên hệ thống này.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
+msgstr ""
+"Hệ thống tập tin ở %s được gắn kết vào %s, và tính năng thay đổi kích cỡ "
+"trên dòng không được hỗ trợ trên hệ thống này.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "nút thông tin (%llu) phải nhỠhơn %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "khối dành riêng"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
-msgstr "khối siêu dữ liệu"
+msgstr "khối siêu_dữ_liệu"
-#: resize/resize2fs.c:1735
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "khối siêu_dữ_liệu"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Không bao giá» nên xảy ra: nút thông tin thay đổi kích cỡ bị há»ng !\n"
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42-WIP"
-msgstr "Thư viện EXT2FS phiên bản 1.42-WIP"
+#, fuzzy
+msgid "EXT2FS Library version 1.42.10"
+msgstr "Thư viện EXT2FS phiên bản 1.42.9"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
@@ -5858,7 +6384,7 @@ msgstr "Sai số màu nhiệm cho cấu trúc Powerquest io_channe"
#: lib/ext2fs/ext2_err.c:26
msgid "Wrong magic number for ext2 file structure"
-msgstr "Sai số màu nhiệm cho cấu trúc tệp tin ext2"
+msgstr "Sai số màu nhiệm cho cấu trúc tập tin ext2"
#: lib/ext2fs/ext2_err.c:27
msgid "Wrong magic number for Ext2 Image Header"
@@ -5878,11 +6404,11 @@ msgstr "Sai số màu nhiệm trong siêu khối"
#: lib/ext2fs/ext2_err.c:31
msgid "Filesystem revision too high"
-msgstr "Phiên bản hệ thống tệp tin quá cao"
+msgstr "Phiên bản hệ thống tập tin quá cao"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Thá»­ viết vào hệ thống tệp tin mà nónó chỉ Ä‘á»c"
+msgstr "Thá»­ viết vào hệ thống tập tin mà nó chỉ Ä‘á»c"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
@@ -5913,11 +6439,11 @@ msgid "Can't read an inode bitmap"
msgstr "Không thể Ä‘á»c mảng ảnh nút"
#: lib/ext2fs/ext2_err.c:40
-msgid "Can't write an block bitmap"
+msgid "Can't write a block bitmap"
msgstr "Không thể ghi mảng ảnh khối"
#: lib/ext2fs/ext2_err.c:41
-msgid "Can't read an block bitmap"
+msgid "Can't read a block bitmap"
msgstr "Không thể Ä‘á»c mảng ảnh khối"
#: lib/ext2fs/ext2_err.c:42
@@ -5926,7 +6452,7 @@ msgstr "Không thể ghi bảng nút thông tin"
#: lib/ext2fs/ext2_err.c:43
msgid "Can't read an inode table"
-msgstr "Không thể Ä‘á»cbảng nút thông tin"
+msgstr "Không thể Ä‘á»c bảng nút thông tin"
#: lib/ext2fs/ext2_err.c:44
msgid "Can't read next inode"
@@ -5934,7 +6460,7 @@ msgstr "Không thể Ä‘á»c nút tiếp theo"
#: lib/ext2fs/ext2_err.c:45
msgid "Filesystem has unexpected block size"
-msgstr "Hệ thống tệp tin có kích cỡ khối bất thÆ°á»ng"
+msgstr "Hệ thống tập tin có kích cỡ khối bất thÆ°á»ng"
#: lib/ext2fs/ext2_err.c:46
msgid "EXT2 directory corrupted"
@@ -5942,11 +6468,11 @@ msgstr "ThÆ° mục ext2 đã há»ng"
#: lib/ext2fs/ext2_err.c:47
msgid "Attempt to read block from filesystem resulted in short read"
-msgstr "Thá»­ Ä‘á»c khối từ hệ thống tệp tin kết quả dạng ngắn"
+msgstr "Thá»­ Ä‘á»c khối từ hệ thống tập tin kết quả dạng ngắn"
#: lib/ext2fs/ext2_err.c:48
msgid "Attempt to write block to filesystem resulted in short write"
-msgstr "Thử ghi khối tới hệ thống tệp tin kết quả dạng ngắn"
+msgstr "Thử ghi khối tới hệ thống tập tin kết quả dạng ngắn"
#: lib/ext2fs/ext2_err.c:49
msgid "No free space in the directory"
@@ -5974,7 +6500,7 @@ msgstr "Lá»—i ná»™i bá»™ trong ext2fs_expand_dir"
#: lib/ext2fs/ext2_err.c:55
msgid "Not enough space to build proposed filesystem"
-msgstr "Không đủ sức chứa để xây dựng hệ thống tệp tin như đỠxuất"
+msgstr "Không đủ sức chứa để xây dựng hệ thống tập tin như đỠxuất"
#: lib/ext2fs/ext2_err.c:56
msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
@@ -6038,23 +6564,26 @@ msgstr "Một nhóm khối bị mất một bảng nút"
#: lib/ext2fs/ext2_err.c:71
msgid "The ext2 superblock is corrupt"
-msgstr "Siêu khối ext2 bị há»ng."
+msgstr "Siêu khối ext2 bị há»ng"
#: lib/ext2fs/ext2_err.c:72
msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
-msgstr "Số bít chung không hợp lệ được chuyển qua cho ext2fs_mark_generic_bitmap"
+msgstr ""
+"Số bít chung không hợp lệ được chuyển qua cho ext2fs_mark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:73
msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
-msgstr "Số bít chung không hợp lệ được chuyển qua cho ext2fs_unmark_generic_bitmap"
+msgstr ""
+"Số bít chung không hợp lệ được chuyển qua cho ext2fs_unmark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:74
msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
-msgstr "Số bít chung không hợp lệ được chuyển qua cho ext2fs_test_generic_bitmap"
+msgstr ""
+"Số bít chung không hợp lệ được chuyển qua cho ext2fs_test_generic_bitmap"
#: lib/ext2fs/ext2_err.c:75
msgid "Too many symbolic links encountered."
-msgstr "Gặp quá nhiá»u liên kết tượng trÆ°ng"
+msgstr "Gặp quá nhiá»u liên kết má»m"
#: lib/ext2fs/ext2_err.c:76
msgid "The callback function will not handle this case"
@@ -6066,15 +6595,15 @@ msgstr "Nút từ một khối sai trong bảng nút"
#: lib/ext2fs/ext2_err.c:78
msgid "Filesystem has unsupported feature(s)"
-msgstr "Hệ thống tệp tin có tính năng không được hỗ trợ"
+msgstr "Hệ thống tập tin có tính năng không được hỗ trợ"
#: lib/ext2fs/ext2_err.c:79
msgid "Filesystem has unsupported read-only feature(s)"
-msgstr "Hệ thống tệp tin không há»— trợ tính năng chỉ Ä‘á»c"
+msgstr "Hệ thống tập tin không há»— trợ tính năng chỉ Ä‘á»c"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr "Kênh IO gặp lá»—i khi tìm kiếm trên tệp tin lúc Ä‘á»c hay ghi"
+msgstr "Kênh IO gặp lá»—i khi di chuyển vị trí trên tập tin lúc Ä‘á»c hay ghi"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
@@ -6102,11 +6631,11 @@ msgstr "Có quá nhiá»u tham chiếu trong bảng"
#: lib/ext2fs/ext2_err.c:87
msgid "File not found by ext2_lookup"
-msgstr "Tệp tin không tìm được bởi ext2_lookup"
+msgstr "Tập tin không tìm được bởi ext2_lookup"
#: lib/ext2fs/ext2_err.c:88
msgid "File open read-only"
-msgstr "Mở tệp tin trong chế Ä‘á»™ chỉ cho Ä‘á»c"
+msgstr "Mở tập tin trong chế Ä‘á»™ chỉ cho Ä‘á»c"
#: lib/ext2fs/ext2_err.c:89
msgid "Ext2 directory block not found"
@@ -6126,7 +6655,7 @@ msgstr "NgÆ°á»i dùng yêu cầu hủy"
#: lib/ext2fs/ext2_err.c:93
msgid "Ext2 file too big"
-msgstr "Tệp tin ext2 quá lớn"
+msgstr "Tập tin ext2 quá lớn"
#: lib/ext2fs/ext2_err.c:94
msgid "Supplied journal device not a block device"
@@ -6162,7 +6691,7 @@ msgstr "Số khối thuộc tính mở rộng không hợp lệ"
#: lib/ext2fs/ext2_err.c:102
msgid "Cannot create filesystem with requested number of inodes"
-msgstr "Không thể tạo hệ thống tệp tin với số nút đã yêu cầu"
+msgstr "Không thể tạo hệ thống tập tin với số nút đã yêu cầu"
#: lib/ext2fs/ext2_err.c:103
msgid "E2image snapshot not in use"
@@ -6214,7 +6743,7 @@ msgstr "TDB: Äối số không hợp lệ"
#: lib/ext2fs/ext2_err.c:115
msgid "TDB: Record does not exist"
-msgstr "TDB: Bản ghi chưa tồn tại"
+msgstr "TDB: Bản ghi không tồn tại"
#: lib/ext2fs/ext2_err.c:116
msgid "TDB: Write not permitted"
@@ -6294,23 +6823,23 @@ msgstr "Inode does not use extents"
#: lib/ext2fs/ext2_err.c:135
msgid "No 'next' extent"
-msgstr "Không có extent 'tiếp theo'"
+msgstr "Không có extent “tiếp theoâ€"
#: lib/ext2fs/ext2_err.c:136
msgid "No 'previous' extent"
-msgstr "Không có extent 'liá»n trÆ°á»›c'"
+msgstr "Không có extent “liá»n trÆ°á»›câ€"
#: lib/ext2fs/ext2_err.c:137
msgid "No 'up' extent"
-msgstr "Không có extent 'lên'"
+msgstr "Không có extent “lênâ€"
#: lib/ext2fs/ext2_err.c:138
msgid "No 'down' extent"
-msgstr "Không có extent 'xuống'"
+msgstr "Không có extent “xuốngâ€"
#: lib/ext2fs/ext2_err.c:139
msgid "No current node"
-msgstr "Không nút hiện thá»i hành"
+msgstr "Không nút hiện hành"
#: lib/ext2fs/ext2_err.c:140
msgid "Ext2fs operation not supported"
@@ -6342,11 +6871,12 @@ msgstr "Kênh I/O không hỗ trợ số khối 64-bít"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr "Không thể kiểm tra nếu hệ thống tệp tin được gắn bởi vì mất tệp tin mtab"
+msgstr ""
+"Không thể kiểm tra nếu hệ thống tập tin được gắn bởi vì mất tập tin mtab"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "Hệ thống tệp tin quá lớn để có thể sử dụng mảng kiểu cũ"
+msgstr "Hệ thống tập tin quá lớn để có thể sử dụng mảng kiểu cũ"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
@@ -6362,7 +6892,7 @@ msgstr "MMP: fsck đang chạy"
#: lib/ext2fs/ext2_err.c:152
msgid "MMP: block number beyond filesystem range"
-msgstr "MMP: số khối nằm xa ngoài vùng của hệ thống tệp tin"
+msgstr "MMP: số khối nằm xa ngoài vùng của hệ thống tập tin"
#: lib/ext2fs/ext2_err.c:153
msgid "MMP: undergoing an unknown operation"
@@ -6370,12 +6900,56 @@ msgstr "MMP: trải qua một thao tác chưa được biết đến"
#: lib/ext2fs/ext2_err.c:154
msgid "MMP: filesystem still in use"
-msgstr "MMP: hệ thống tệp tin vẫn đang được sử dụng"
+msgstr "MMP: hệ thống tập tin vẫn đang được sử dụng"
#: lib/ext2fs/ext2_err.c:155
msgid "MMP: open with O_DIRECT failed"
msgstr "MMP: mở với O_DIRECT gặp lỗi"
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr "Kích thước bộ mô tả nhóm khối không "
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr "Tổng kiểm nút không khớp với nút "
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr "Tổng kiểm Mảng ảnh nút không khớp nhau"
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr "Tổng kiểm tra khối mở rộng không khớp với khối mở rộng"
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr "Khối thư mục không có chỗ dành cho tổng kiểm tra"
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr "Tổng kiểm tra khối thư mục không khớp với khối thư mục"
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr "Tổng kiểm tra khối thuộc tính mở rộng không khớp với khối"
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr "Tổng kiểm siêu khối không khớp với siêu khối "
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr "Không hiểu thuật toán băm tổng kiểm "
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr "Tổng kiểm tra khối MMP không khớp với khối MMP"
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr "Tập tin ext2 đã sẵn có rồi"
+
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
msgstr "Profile phiên bản 0.0"
@@ -6426,7 +7000,7 @@ msgstr "Tham số không hợp lệ được chuyển qua cho thư viện profil
#: e2fsck/prof_err.c:23
msgid "Attempt to modify read-only profile"
-msgstr "Thá»­ viết vào hệ thống tệp tin profile chỉ Ä‘á»c"
+msgstr "Thá»­ viết vào hệ thống tập tin profile chỉ Ä‘á»c"
#: e2fsck/prof_err.c:24
msgid "Profile section header not at top level"
@@ -6500,6 +7074,49 @@ msgstr "Giá trị nguyên không hợp lệ"
msgid "Bad magic value in profile_file_data_t"
msgstr "Giá trị số mầu nhiệm sai trong profile_file_data_t"
+#~ msgid ""
+#~ "\b\b\b\b\b\b\b\bCopied %llu / %llu blocks (%llu%%) in %s at %.2f MB/"
+#~ "s \n"
+#~ msgstr ""
+#~ "\b\b\b\b\b\b\b\bÄã chép %llu / %llu khối (%llu%%) trong %s tốc Ä‘á»™ %.2f MB/"
+#~ "s \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Warning: the quota feature is still under development\n"
+#~ "See https://ext4.wiki.kernel.org/index.php/Quota for more information\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Cảnh báo: đặc tính hạn ngạch vẫn đang trong quá trình phát triển\n"
+#~ "Xem https://ext4.wiki.kernel.org/index.php/Quota để biết chi tiết\n"
+#~ "\n"
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "Không thể lấy các thông tin vỠ%s — %s\n"
+
+#~ msgid "Clearing extent flag not supported on %s"
+#~ msgstr "Chức năng xoá sạch cỠtầm không được hỗ trợ trên %s"
+
+#~ msgid ""
+#~ "%s: The combination of flex_bg and\n"
+#~ "\t!resize_inode features is not supported by resize2fs.\n"
+#~ msgstr ""
+#~ "%s: tổ hợp hai tính năng flex_bg và !resize_inode\n"
+#~ "Ä‘á»u không được resize2fs há»— trợ.\n"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "%s đã gắn kết. "
+
+#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
+#~ msgstr "@B @b của @g %g chưa khởi tạo nhưng đang dùng @B @i.\n"
+
+#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
+#~ msgstr "@i %i không nên lập EOFBLOCKS_FL (kích cỡ %Is, lblk %r)\n"
+
+#~ msgid "Couldn't determine journal size"
+#~ msgstr "Không thể xác định kích cỡ nhật ký"
+
#~ msgid "<The ACL index inode>"
#~ msgstr "<nút thông tin chỉ mục ACL>"
@@ -6513,7 +7130,7 @@ msgstr "Giá trị số mầu nhiệm sai trong profile_file_data_t"
#~ msgstr "cỡ đoạn không hợp lệ — %s"
#~ 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"
+#~ msgstr "Cảnh báo: không há»— trợ Ä‘oạn nên bá» qua tùy chá»n “-fâ€\n"
#~ msgid "Calling BLKDISCARD from %llu to %llu "
#~ msgstr "Äang gá»i BLKDISCARD từ %llu đến %llu "
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index c04c0632..82c6ab9d 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 0523fa28..75353c5b 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -64,706 +64,711 @@ msgid ""
msgstr ""
"Project-Id-Version: e2fsprogs-1.41.14\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2010-12-13 08:35-0500\n"
+"POT-Creation-Date: 2014-05-18 21:45-0400\n"
"PO-Revision-Date: 2011-01-26 21:53+0800\n"
"Last-Translator: Dark Raven <drdarkraven@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Chinese\n"
"X-Poedit-Country: CHINA\n"
-#: e2fsck/badblocks.c:22 misc/mke2fs.c:169
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:209
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "åå—%u超出范围;忽略.\n"
-#: e2fsck/badblocks.c:45
+#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
msgstr "在对åå—inode进行一致性检验是"
-#: e2fsck/badblocks.c:57
+#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
msgstr "当读å–åå—inodeæ—¶"
-#: e2fsck/badblocks.c:71 e2fsck/iscan.c:112 e2fsck/scantest.c:109
-#: e2fsck/unix.c:1103 e2fsck/unix.c:1188 misc/badblocks.c:1158
-#: misc/badblocks.c:1166 misc/badblocks.c:1180 misc/badblocks.c:1192
-#: misc/dumpe2fs.c:566 misc/e2image.c:583 misc/e2image.c:679
-#: misc/e2image.c:695 misc/mke2fs.c:185 misc/tune2fs.c:1623 resize/main.c:310
+#: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1341
+#: e2fsck/unix.c:1430 misc/badblocks.c:1227 misc/badblocks.c:1235
+#: misc/badblocks.c:1249 misc/badblocks.c:1261 misc/dumpe2fs.c:602
+#: misc/e2image.c:1396 misc/e2image.c:1580 misc/e2image.c:1599
+#: misc/mke2fs.c:225 misc/tune2fs.c:1945 resize/main.c:316
#, c-format
msgid "while trying to open %s"
msgstr "当å°è¯•æ‰“å¼€ %s æ—¶"
-#: e2fsck/badblocks.c:82
+#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
msgstr "当å°è¯•å¯¹ '%s' 进行popenæ—¶"
-#: e2fsck/badblocks.c:93 misc/mke2fs.c:192
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:232
msgid "while reading in list of bad blocks from file"
msgstr "当从文件中读å–åå—表时"
-#: e2fsck/badblocks.c:104
+#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
msgstr "当更新åå—inodeæ—¶"
-#: e2fsck/badblocks.c:130
+#: e2fsck/badblocks.c:133
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
msgstr "警告:在åå—inode中å‘现éžæ³•çš„å—%u. 清除.\n"
-#: e2fsck/ehandler.c:54
+#: e2fsck/ehandler.c:55
#, fuzzy, c-format
msgid "Error reading block %lu (%s) while %s. "
msgstr "读å–å— %lu (%s) 错误 , %s. "
-#: e2fsck/ehandler.c:57
+#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
msgstr "读å–å— %lu (%s) 错误"
-#: e2fsck/ehandler.c:60 e2fsck/ehandler.c:109
+#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
msgstr "忽略错误"
-#: e2fsck/ehandler.c:61
+#: e2fsck/ehandler.c:62
msgid "Force rewrite"
msgstr "强制覆盖"
-#: e2fsck/ehandler.c:103
+#: e2fsck/ehandler.c:104
#, fuzzy, c-format
msgid "Error writing block %lu (%s) while %s. "
msgstr "å†™å— %lu (%s) 出错 , %s. "
-#: e2fsck/ehandler.c:106
+#: e2fsck/ehandler.c:107
#, c-format
msgid "Error writing block %lu (%s). "
msgstr "å†™å— %lu (%s) 出错. "
-#: e2fsck/emptydir.c:56
+#: e2fsck/emptydir.c:57
msgid "empty dirblocks"
msgstr "空的dirå—"
-#: e2fsck/emptydir.c:61
+#: e2fsck/emptydir.c:62
msgid "empty dir map"
msgstr "空ACL映射"
-#: e2fsck/emptydir.c:97
+#: e2fsck/emptydir.c:98
#, c-format
msgid "Empty directory block %u (#%d) in inode %u\n"
msgstr "ç©ºç›®å½•å— %u (#%d),于 inode %u 中\n"
-#: e2fsck/extend.c:21
+#: e2fsck/extend.c:22
#, c-format
msgid "%s: %s filename nblocks blocksize\n"
msgstr ""
-#: e2fsck/extend.c:43
+#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
msgstr "éžæ³•çš„å—æ•°é‡!\n"
-#: e2fsck/extend.c:49
+#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
msgstr "无法分é…å—缓存 (大å°=%d)\n"
-#: e2fsck/flushb.c:34
+#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
msgstr "用法: %s disk\n"
-#: e2fsck/flushb.c:63
+#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
msgstr "ä¸æ”¯æŒå¯¹BLKFLSBUF进行 ioctl 调用! 无法刷新缓存.\n"
-#: e2fsck/iscan.c:46
+#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "用法: %s [-F] [-I inode_buffer_blocks] device\n"
-#: e2fsck/iscan.c:83 e2fsck/unix.c:856
+#: e2fsck/iscan.c:81 e2fsck/unix.c:969
#, fuzzy, c-format
msgid "while opening %s for flushing"
msgstr "当为刷新打开“%sâ€æ—¶"
-#: e2fsck/iscan.c:88 e2fsck/unix.c:862 resize/main.c:286
+#: e2fsck/iscan.c:86 e2fsck/unix.c:975 resize/main.c:289
#, fuzzy, c-format
msgid "while trying to flush %s"
msgstr "当å°è¯•åˆ·æ–° %s æ—¶"
-#: e2fsck/iscan.c:121 e2fsck/scantest.c:116 misc/e2image.c:489
+#: e2fsck/iscan.c:110
+#, fuzzy, c-format
+msgid "while trying to open '%s'"
+msgstr "当å°è¯•æ‰“å¼€ %s æ—¶"
+
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1290
msgid "while opening inode scan"
msgstr "在打开inode扫ææ—¶"
-#: e2fsck/iscan.c:129 misc/e2image.c:507
+#: e2fsck/iscan.c:127 misc/e2image.c:1309
msgid "while getting next inode"
msgstr "当获å–下一个inodeæ—¶"
-#: e2fsck/iscan.c:138
+#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
msgstr "%u 个 inode 被扫æ.\n"
-#: e2fsck/journal.c:508
+#: e2fsck/journal.c:525
msgid "reading journal superblock\n"
msgstr "读å–日志超级å—\n"
-#: e2fsck/journal.c:565
+#: e2fsck/journal.c:582
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr "%s: 没有å‘现日志超级å—\n"
-#: e2fsck/journal.c:574
+#: e2fsck/journal.c:591
#, c-format
msgid "%s: journal too short\n"
msgstr "%s: 日志过短\n"
-#: e2fsck/journal.c:861
+#: e2fsck/journal.c:883
#, c-format
msgid "%s: recovering journal\n"
msgstr "%s: 正在修å¤æ—¥å¿—\n"
-#: e2fsck/journal.c:863
+#: e2fsck/journal.c:885
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr "%s: 使用åªè¯»æ¨¡å¼æ—¶ä¸ä¼šè¿›è¡Œæ—¥å¿—ä¿®å¤\n"
-#: e2fsck/journal.c:888
+#: e2fsck/journal.c:912
#, c-format
msgid "while trying to re-open %s"
msgstr "在å°è¯•é‡æ–°æ‰“å¼€ %s æ—¶"
-#: e2fsck/message.c:111
+#: e2fsck/message.c:113
msgid "aextended attribute"
msgstr "a扩展属性"
-#: e2fsck/message.c:112
+#: e2fsck/message.c:114
msgid "Aerror allocating"
msgstr "A分é…出错"
-#: e2fsck/message.c:113
+#: e2fsck/message.c:115
msgid "bblock"
msgstr "bå—"
-#: e2fsck/message.c:114
+#: e2fsck/message.c:116
msgid "Bbitmap"
msgstr "Bä½å›¾"
-#: e2fsck/message.c:115
+#: e2fsck/message.c:117
msgid "ccompress"
msgstr "c压缩"
-#: e2fsck/message.c:116
+#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
msgstr "C与其他文件系统@b冲çª"
-#: e2fsck/message.c:117
+#: e2fsck/message.c:119
msgid "iinode"
msgstr "iinode"
-#: e2fsck/message.c:118
+#: e2fsck/message.c:120
msgid "Iillegal"
msgstr "Iéžæ³•çš„"
-#: e2fsck/message.c:119
+#: e2fsck/message.c:121
msgid "jjournal"
msgstr "j日志"
-#: e2fsck/message.c:120
+#: e2fsck/message.c:122
msgid "Ddeleted"
msgstr "D删除"
-#: e2fsck/message.c:121
+#: e2fsck/message.c:123
msgid "ddirectory"
msgstr "d目录"
-#: e2fsck/message.c:122
+#: e2fsck/message.c:124
msgid "eentry"
msgstr "eå…¥å£"
-#: e2fsck/message.c:123
+#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
msgstr "E在 %p (%i) 中的@e '%Dn'"
-#: e2fsck/message.c:124
+#: e2fsck/message.c:126
msgid "ffilesystem"
msgstr "f文件系统"
-#: e2fsck/message.c:125
+#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
msgstr ""
-#: e2fsck/message.c:126
+#: e2fsck/message.c:128
msgid "ggroup"
msgstr "gç°‡"
-#: e2fsck/message.c:127
+#: e2fsck/message.c:129
msgid "hHTREE @d @i"
msgstr "hHTREE@d@i"
-#: e2fsck/message.c:128
+#: e2fsck/message.c:130
msgid "llost+found"
msgstr "llost+found"
-#: e2fsck/message.c:129
+#: e2fsck/message.c:131
msgid "Lis a link"
msgstr "L是一个链接"
-#: e2fsck/message.c:130
+#: e2fsck/message.c:132
msgid "mmultiply-claimed"
msgstr ""
-#: e2fsck/message.c:131
+#: e2fsck/message.c:133
msgid "ninvalid"
msgstr "n无效的"
-#: e2fsck/message.c:132
+#: e2fsck/message.c:134
msgid "oorphaned"
msgstr "孤立的"
-#: e2fsck/message.c:133
+#: e2fsck/message.c:135
msgid "pproblem in"
msgstr "问题出于"
-#: e2fsck/message.c:134
+#: e2fsck/message.c:136
+msgid "qquota"
+msgstr ""
+
+#: e2fsck/message.c:137
msgid "rroot @i"
msgstr "ræ ¹@i"
-#: e2fsck/message.c:135
+#: e2fsck/message.c:138
msgid "sshould be"
msgstr "s应为"
-#: e2fsck/message.c:136
+#: e2fsck/message.c:139
msgid "Ssuper@b"
msgstr "S超级@b"
-#: e2fsck/message.c:137
+#: e2fsck/message.c:140
msgid "uunattached"
msgstr ""
-#: e2fsck/message.c:138
+#: e2fsck/message.c:141
msgid "vdevice"
msgstr "v设备"
-#: e2fsck/message.c:139
+#: e2fsck/message.c:142
#, fuzzy
msgid "xextent"
msgstr "x程度"
-#: e2fsck/message.c:140
+#: e2fsck/message.c:143
msgid "zzero-length"
msgstr "z零长度"
-#: e2fsck/message.c:151
+#: e2fsck/message.c:154
msgid "<The NULL inode>"
msgstr "<空的 inode>"
-#: e2fsck/message.c:152
+#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
msgstr "<åå— inode>"
-#: e2fsck/message.c:154
-msgid "<The ACL index inode>"
-msgstr "<ACL 索引 inode>"
+#: e2fsck/message.c:157
+#, fuzzy
+msgid "<The user quota inode>"
+msgstr "<日志 inode>"
-#: e2fsck/message.c:155
-msgid "<The ACL data inode>"
-msgstr "<ACL æ•°æ® inode>"
+#: e2fsck/message.c:158
+#, fuzzy
+msgid "<The group quota inode>"
+msgstr "<组æ述符inode>"
-#: e2fsck/message.c:156
+#: e2fsck/message.c:159
msgid "<The boot loader inode>"
msgstr "<å¯åŠ¨å™¨ inode>"
-#: e2fsck/message.c:157
+#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
msgstr "<未删除的目录 inode>"
-#: e2fsck/message.c:158
+#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
msgstr "<组æ述符inode>"
-#: e2fsck/message.c:159
+#: e2fsck/message.c:162
msgid "<The journal inode>"
msgstr "<日志 inode>"
-#: e2fsck/message.c:160
+#: e2fsck/message.c:163
msgid "<Reserved inode 9>"
msgstr "<ä¿ç•™çš„ inode 9>"
-#: e2fsck/message.c:161
+#: e2fsck/message.c:164
msgid "<Reserved inode 10>"
msgstr "<ä¿ç•™çš„ inode 10>"
-#: e2fsck/message.c:330
-#, c-format
+#: e2fsck/message.c:334
msgid "regular file"
msgstr "一般文件"
-#: e2fsck/message.c:332
-#, c-format
+#: e2fsck/message.c:336
msgid "directory"
msgstr "文件夹"
-#: e2fsck/message.c:334
-#, c-format
+#: e2fsck/message.c:338
msgid "character device"
msgstr "字符设备"
-#: e2fsck/message.c:336
-#, c-format
+#: e2fsck/message.c:340
msgid "block device"
msgstr "å—设备"
-#: e2fsck/message.c:338
-#, c-format
+#: e2fsck/message.c:342
msgid "named pipe"
msgstr "命å管é“"
-#: e2fsck/message.c:340
-#, c-format
+#: e2fsck/message.c:344
msgid "symbolic link"
msgstr "符å·é“¾æŽ¥"
-#: e2fsck/message.c:342
-#, c-format
+#: e2fsck/message.c:346 misc/uuidd.c:161
msgid "socket"
msgstr "套接字"
-#: e2fsck/message.c:344
+#: e2fsck/message.c:348
#, c-format
msgid "unknown file type with mode 0%o"
msgstr "模å¼ä¸º 0%o 的未知文件类型"
-#: e2fsck/message.c:422
+#: e2fsck/message.c:423
msgid "indirect block"
msgstr ""
-#: e2fsck/message.c:424
+#: e2fsck/message.c:425
msgid "double indirect block"
msgstr ""
-#: e2fsck/message.c:426
+#: e2fsck/message.c:427
msgid "triple indirect block"
msgstr ""
-#: e2fsck/message.c:428
+#: e2fsck/message.c:429
msgid "translator block"
msgstr ""
-#: e2fsck/message.c:430
+#: e2fsck/message.c:431
msgid "block #"
msgstr "å— #"
-#: e2fsck/pass1b.c:220
+#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
msgstr ""
-#: e2fsck/pass1b.c:581 e2fsck/pass1b.c:714
-#, c-format
-msgid "internal error: can't find dup_blk for %u\n"
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
+#, fuzzy, c-format
+msgid "internal error: can't find dup_blk for %llu\n"
msgstr "内部错误: 无法找到 %u 的 duo_blk\n"
-#: e2fsck/pass1b.c:757
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr "从 clone_file_block 中返回"
-#: e2fsck/pass1b.c:776
-#, c-format
-msgid "internal error: couldn't lookup EA block record for %u"
+#: e2fsck/pass1b.c:843
+#, fuzzy, c-format
+msgid "internal error: couldn't lookup EA block record for %llu"
msgstr "内部错误: 无法找到 %u çš„EAå—记录"
-#: e2fsck/pass1b.c:788
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr "内部错误: 无法找到 %u 的EA节点记录"
-#: e2fsck/pass1.c:475 e2fsck/pass2.c:776
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr "正在读å–目录å—"
-#: e2fsck/pass1.c:597
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr "使用中的inode映射"
-#: e2fsck/pass1.c:606
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr "目录inode映射"
-#: e2fsck/pass1.c:614
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr "普通文件inode映射"
-#: e2fsck/pass1.c:621
+#: e2fsck/pass1.c:628 misc/e2image.c:1265
msgid "in-use block map"
msgstr "使用中的å—映射"
-#: e2fsck/pass1.c:675
+#: e2fsck/pass1.c:693
msgid "opening inode scan"
msgstr "打开inode扫æ中"
-#: e2fsck/pass1.c:699
+#: e2fsck/pass1.c:727
msgid "getting next inode from scan"
msgstr "正在获å–扫æ中的下一个inode"
-#: e2fsck/pass1.c:1173
+#: e2fsck/pass1.c:1243
msgid "Pass 1"
msgstr "第1步"
-#: e2fsck/pass1.c:1230
+#: e2fsck/pass1.c:1300
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr ""
-#: e2fsck/pass1.c:1274
+#: e2fsck/pass1.c:1350
msgid "bad inode map"
msgstr "错误的inode映射"
-#: e2fsck/pass1.c:1296
+#: e2fsck/pass1.c:1373
msgid "inode in bad block map"
msgstr "错误å—映射中的inode"
-#: e2fsck/pass1.c:1316
+#: e2fsck/pass1.c:1393
msgid "imagic inode map"
msgstr ""
-#: e2fsck/pass1.c:1343
+#: e2fsck/pass1.c:1420
msgid "multiply claimed block map"
msgstr ""
-#: e2fsck/pass1.c:1443
+#: e2fsck/pass1.c:1531
msgid "ext attr block map"
msgstr "ext attr å—映射"
-#: e2fsck/pass1.c:2181
+#: e2fsck/pass1.c:2315
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr ""
-#: e2fsck/pass1.c:2533
+#: e2fsck/pass1.c:2678
msgid "block bitmap"
msgstr "å—ä½å›¾"
-#: e2fsck/pass1.c:2537
+#: e2fsck/pass1.c:2684
msgid "inode bitmap"
msgstr "inode ä½å›¾"
-#: e2fsck/pass1.c:2541
+#: e2fsck/pass1.c:2690
msgid "inode table"
msgstr "inode表"
-#: e2fsck/pass2.c:277
+#: e2fsck/pass2.c:283
msgid "Pass 2"
msgstr "第2步"
-#: e2fsck/pass2.c:799
+#: e2fsck/pass2.c:805
msgid "Can not continue."
msgstr "无法继续."
-#: e2fsck/pass3.c:76
+#: e2fsck/pass3.c:77
msgid "inode done bitmap"
msgstr ""
-#: e2fsck/pass3.c:84
+#: e2fsck/pass3.c:86
msgid "Peak memory"
msgstr "内存峰值"
-#: e2fsck/pass3.c:134
+#: e2fsck/pass3.c:137
msgid "Pass 3"
msgstr "第3步"
-#: e2fsck/pass3.c:320
+#: e2fsck/pass3.c:323
msgid "inode loop detection bitmap"
msgstr ""
-#: e2fsck/pass4.c:193
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr "第4步"
-#: e2fsck/pass5.c:64
+#: e2fsck/pass5.c:74
msgid "Pass 5"
msgstr "第5步"
-#: e2fsck/problem.c:50
+#: e2fsck/problem.c:51
#, fuzzy
msgid "(no prompt)"
msgstr "(没有æ示)"
-#: e2fsck/problem.c:51
+#: e2fsck/problem.c:52
msgid "Fix"
msgstr "处ç†"
-#: e2fsck/problem.c:52
+#: e2fsck/problem.c:53
msgid "Clear"
msgstr "清除"
-#: e2fsck/problem.c:53
+#: e2fsck/problem.c:54
msgid "Relocate"
msgstr "é‡å®šä½"
-#: e2fsck/problem.c:54
+#: e2fsck/problem.c:55
msgid "Allocate"
msgstr "分é…"
-#: e2fsck/problem.c:55
+#: e2fsck/problem.c:56
msgid "Expand"
msgstr "扩充"
-#: e2fsck/problem.c:56
+#: e2fsck/problem.c:57
msgid "Connect to /lost+found"
msgstr "连接到 /lost+found"
-#: e2fsck/problem.c:57
+#: e2fsck/problem.c:58
msgid "Create"
msgstr "创建"
-#: e2fsck/problem.c:58
+#: e2fsck/problem.c:59
msgid "Salvage"
msgstr "ä¿®å¤"
-#: e2fsck/problem.c:59
+#: e2fsck/problem.c:60
msgid "Truncate"
msgstr "截断"
-#: e2fsck/problem.c:60
+#: e2fsck/problem.c:61
msgid "Clear inode"
msgstr "清空inode"
-#: e2fsck/problem.c:61
+#: e2fsck/problem.c:62
msgid "Abort"
msgstr "中断"
-#: e2fsck/problem.c:62
+#: e2fsck/problem.c:63
msgid "Split"
msgstr "分裂"
-#: e2fsck/problem.c:63
+#: e2fsck/problem.c:64
msgid "Continue"
msgstr "继续"
-#: e2fsck/problem.c:64
+#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
msgstr ""
-#: e2fsck/problem.c:65
+#: e2fsck/problem.c:66
msgid "Delete file"
msgstr "删除文件"
-#: e2fsck/problem.c:66
+#: e2fsck/problem.c:67
#, fuzzy
msgid "Suppress messages"
msgstr "ä¸æ˜¾ç¤ºæ¶ˆæ¯"
-#: e2fsck/problem.c:67
+#: e2fsck/problem.c:68
msgid "Unlink"
msgstr "解除链接"
-#: e2fsck/problem.c:68
+#: e2fsck/problem.c:69
msgid "Clear HTree index"
msgstr "清空 HTree 索引"
-#: e2fsck/problem.c:69
+#: e2fsck/problem.c:70
msgid "Recreate"
msgstr "é‡å»º"
-#: e2fsck/problem.c:78
+#: e2fsck/problem.c:79
msgid "(NONE)"
msgstr "(空)"
-#: e2fsck/problem.c:79
+#: e2fsck/problem.c:80
msgid "FIXED"
msgstr "已处ç†"
-#: e2fsck/problem.c:80
+#: e2fsck/problem.c:81
msgid "CLEARED"
msgstr "已清除"
-#: e2fsck/problem.c:81
+#: e2fsck/problem.c:82
msgid "RELOCATED"
msgstr "å·²é‡å®šä½"
-#: e2fsck/problem.c:82
+#: e2fsck/problem.c:83
msgid "ALLOCATED"
msgstr "已分é…"
-#: e2fsck/problem.c:83
+#: e2fsck/problem.c:84
msgid "EXPANDED"
msgstr "已扩充"
-#: e2fsck/problem.c:84
+#: e2fsck/problem.c:85
msgid "RECONNECTED"
msgstr "å·²é‡æ–°è¿žæŽ¥"
-#: e2fsck/problem.c:85
+#: e2fsck/problem.c:86
msgid "CREATED"
msgstr "已创建"
-#: e2fsck/problem.c:86
+#: e2fsck/problem.c:87
msgid "SALVAGED"
msgstr "已修å¤"
-#: e2fsck/problem.c:87
+#: e2fsck/problem.c:88
msgid "TRUNCATED"
msgstr "已截断"
-#: e2fsck/problem.c:88
+#: e2fsck/problem.c:89
#, fuzzy
msgid "INODE CLEARED"
msgstr "INODE 已清除"
-#: e2fsck/problem.c:89
+#: e2fsck/problem.c:90
msgid "ABORTED"
msgstr "已中断"
-#: e2fsck/problem.c:90
+#: e2fsck/problem.c:91
#, fuzzy
msgid "SPLIT"
msgstr "分裂"
-#: e2fsck/problem.c:91
+#: e2fsck/problem.c:92
msgid "CONTINUING"
msgstr "继续"
-#: e2fsck/problem.c:92
+#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
msgstr ""
-#: e2fsck/problem.c:93
+#: e2fsck/problem.c:94
msgid "FILE DELETED"
msgstr "文件已删除"
-#: e2fsck/problem.c:94
+#: e2fsck/problem.c:95
msgid "SUPPRESSED"
msgstr "ç¦æ­¢"
-#: e2fsck/problem.c:95
+#: e2fsck/problem.c:96
msgid "UNLINKED"
msgstr "å·²Unlink"
-#: e2fsck/problem.c:96
+#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
msgstr "HTREE索引已清除"
-#: e2fsck/problem.c:97
+#: e2fsck/problem.c:98
msgid "WILL RECREATE"
msgstr "将会é‡å»º"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:106
+#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
msgstr ""
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
-#: e2fsck/problem.c:110
+#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
msgstr ""
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
-#: e2fsck/problem.c:115
+#: e2fsck/problem.c:116
msgid ""
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
@@ -772,28 +777,31 @@ msgstr ""
"警告:å¯èƒ½é€ æˆä¸¥é‡çš„æ•°æ®ä¸¢å¤±ã€‚\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: The superblock could not be read or does not describe a valid ext2/ext3/ext4\n
+#. @-expanded: filesystem. If the device is valid and it really contains an ext2/ext3/ext4\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: e2fsck -b 8193 <device>\n
+#. @-expanded: or\n
+#. @-expanded: e2fsck -b 32768 <device>\n
#. @-expanded: \n
-#: e2fsck/problem.c:121
-#, c-format
+#: e2fsck/problem.c:122
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"
+"The @S could not be read or does not describe a valid ext2/ext3/ext4\n"
+"@f. If the @v is valid and it really contains an ext2/ext3/ext4\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"
+" e2fsck -b 8193 <@v>\n"
+" or\n"
+" e2fsck -b 32768 <@v>\n"
"\n"
msgstr ""
#. @-expanded: The filesystem size (according to the superblock) is %b blocks\n
#. @-expanded: The physical size of the device is %c blocks\n
#. @-expanded: Either the superblock or the partition table is likely to be corrupt!\n
-#: e2fsck/problem.c:130
+#: e2fsck/problem.c:133
msgid ""
"The @f size (according to the @S) is %b @bs\n"
"The physical size of the @v is %c @bs\n"
@@ -806,7 +814,7 @@ msgstr ""
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
#. @-expanded: from the block size.\n
-#: e2fsck/problem.c:137
+#: e2fsck/problem.c:140
msgid ""
"@S @b_size = %b, fragsize = %c.\n"
"This version of e2fsck does not support fragment sizes different\n"
@@ -814,18 +822,18 @@ msgid ""
msgstr ""
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
-#: e2fsck/problem.c:144
+#: e2fsck/problem.c:147
msgid "@S @bs_per_group = %b, should have been %c\n"
msgstr ""
#. @-expanded: superblock first_data_block = %b, should have been %c\n
-#: e2fsck/problem.c:149
+#: e2fsck/problem.c:152
msgid "@S first_data_@b = %b, should have been %c\n"
msgstr ""
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
-#: e2fsck/problem.c:154
+#: e2fsck/problem.c:157
msgid ""
"@f did not have a UUID; generating one.\n"
"\n"
@@ -833,7 +841,7 @@ msgstr ""
"@f缺少UUID;正在生æˆä¸€ä¸ªã€‚\n"
"\n"
-#: e2fsck/problem.c:159
+#: e2fsck/problem.c:162
#, c-format
msgid ""
"Note: if several inode or block bitmap blocks or part\n"
@@ -845,48 +853,48 @@ msgid ""
msgstr ""
#. @-expanded: Corruption found in superblock. (%s = %N).\n
-#: e2fsck/problem.c:168
+#: e2fsck/problem.c:171
msgid "Corruption found in @S. (%s = %N).\n"
msgstr "在@S中å‘现错误. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
-#: e2fsck/problem.c:173
+#: e2fsck/problem.c:176
#, c-format
msgid "Error determining size of the physical @v: %m\n"
msgstr "决定物ç†@v的大å°å‡ºé”™ %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
-#: e2fsck/problem.c:178
+#: e2fsck/problem.c:181
msgid "@i count in @S is %i, @s %j.\n"
msgstr "@S中的@i计数为 %i,@s %j.\n"
-#: e2fsck/problem.c:182
+#: e2fsck/problem.c:185
msgid "The Hurd does not support the filetype feature.\n"
msgstr "Hurd系统ä¸æ”¯æŒfiletype功能。\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
-#: e2fsck/problem.c:187
+#: e2fsck/problem.c:190
#, c-format
msgid "@S has an @n @j (@i %i).\n"
msgstr "@S包å«@n ext3 @j(@i %i).\n"
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
-#: e2fsck/problem.c:192
+#: e2fsck/problem.c:195
msgid "External @j has multiple @f users (unsupported).\n"
msgstr "外部@jåŒæ—¶æœ‰å¤šä¸ª@f使用 (ä¸æ”¯æŒ)。\n"
#. @-expanded: Can't find external journal\n
-#: e2fsck/problem.c:197
+#: e2fsck/problem.c:200
msgid "Can't find external @j\n"
msgstr "无法找到外部@j\n"
#. @-expanded: External journal has bad superblock\n
-#: e2fsck/problem.c:202
+#: e2fsck/problem.c:205
msgid "External @j has bad @S\n"
msgstr "外部@j有错误的@S\n"
#. @-expanded: External journal does not support this filesystem\n
-#: e2fsck/problem.c:207
+#: e2fsck/problem.c:210
msgid "External @j does not support this @f\n"
msgstr "外部@jä¸æ”¯æŒæ­¤@f\n"
@@ -894,90 +902,91 @@ msgstr "外部@jä¸æ”¯æŒæ­¤@f\n"
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#. @-expanded: format.\n
#. @-expanded: It is also possible the journal superblock is corrupt.\n
-#: e2fsck/problem.c:212
+#: e2fsck/problem.c:215
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
+"format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
#. @-expanded: journal superblock is corrupt.\n
-#: e2fsck/problem.c:220
+#: e2fsck/problem.c:223
msgid "@j @S is corrupt.\n"
msgstr "@j@Så·²æŸå.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
-#: e2fsck/problem.c:225
+#: e2fsck/problem.c:228
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
msgstr "@S没有has_journal标志,但是存在一个@j %s。\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
-#: e2fsck/problem.c:230
+#: e2fsck/problem.c:233
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr "@S有needs_recovery标志,但是没有@j存在。\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
-#: e2fsck/problem.c:235
+#: e2fsck/problem.c:238
msgid "@S needs_recovery flag is clear, but @j has data.\n"
msgstr "@S没有needs_recovery标志,但是@j中没有数æ®ã€‚\n"
#. @-expanded: Clear journal
-#: e2fsck/problem.c:240
+#: e2fsck/problem.c:243
#, fuzzy
msgid "Clear @j"
msgstr "清除@j"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
-#: e2fsck/problem.c:245 e2fsck/problem.c:664
+#: e2fsck/problem.c:248 e2fsck/problem.c:702
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
msgstr ""
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
-#: e2fsck/problem.c:250
+#: e2fsck/problem.c:253
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
msgstr ""
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:255
+#: e2fsck/problem.c:258
msgid "@I %B (%b) found in @o @i %i.\n"
msgstr ""
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
-#: e2fsck/problem.c:260
+#: e2fsck/problem.c:263
msgid "Already cleared %B (%b) found in @o @i %i.\n"
msgstr "å·²ç»æ¸…除在@o@i %i中的%B (%b)。\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
-#: e2fsck/problem.c:265
+#: e2fsck/problem.c:268
#, c-format
msgid "@I @o @i %i in @S.\n"
msgstr "@S中有@I@o@i %i.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
-#: e2fsck/problem.c:270
+#: e2fsck/problem.c:273
#, c-format
msgid "@I @i %i in @o @i list.\n"
msgstr ""
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
-#: e2fsck/problem.c:275
+#: e2fsck/problem.c:278
msgid "@j @S has an unknown read-only feature flag set.\n"
msgstr ""
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
-#: e2fsck/problem.c:280
+#: e2fsck/problem.c:283
msgid "@j @S has an unknown incompatible feature flag set.\n"
msgstr ""
#. @-expanded: journal version not supported by this e2fsck.\n
-#: e2fsck/problem.c:285
+#: e2fsck/problem.c:288
msgid "@j version not supported by this e2fsck.\n"
msgstr "e2fsckä¸æ”¯æŒæ­¤@j版本.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
-#: e2fsck/problem.c:290
+#: e2fsck/problem.c:293
#, c-format
msgid ""
"Moving @j from /%s to hidden @i.\n"
@@ -986,7 +995,7 @@ msgstr ""
#. @-expanded: Error moving journal: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:295
+#: e2fsck/problem.c:298
#, c-format
msgid ""
"Error moving @j: %m\n"
@@ -998,7 +1007,7 @@ msgstr ""
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
#. @-expanded: Clearing fields beyond the V1 journal superblock...\n
#. @-expanded: \n
-#: e2fsck/problem.c:300
+#: e2fsck/problem.c:303
msgid ""
"Found @n V2 @j @S fields (from V1 @j).\n"
"Clearing fields beyond the V1 @j @S...\n"
@@ -1006,19 +1015,19 @@ msgid ""
msgstr ""
#. @-expanded: Run journal anyway
-#: e2fsck/problem.c:306
+#: e2fsck/problem.c:309
#, fuzzy
msgid "Run @j anyway"
msgstr "强制@j"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
-#: e2fsck/problem.c:311
+#: e2fsck/problem.c:314
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
msgstr ""
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
-#: e2fsck/problem.c:316
+#: e2fsck/problem.c:319
msgid ""
"Backing up @j @i @b information.\n"
"\n"
@@ -1026,25 +1035,25 @@ msgstr ""
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: is %N; should be zero.
-#: e2fsck/problem.c:321
+#: e2fsck/problem.c:324
msgid ""
"@f does not have resize_@i enabled, but s_reserved_gdt_@bs\n"
"is %N; @s zero. "
msgstr ""
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
-#: e2fsck/problem.c:327
+#: e2fsck/problem.c:330
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
msgstr ""
#. @-expanded: Resize inode not valid.
-#: e2fsck/problem.c:332
+#: e2fsck/problem.c:335
msgid "Resize @i not valid. "
msgstr ""
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:337
+#: e2fsck/problem.c:340
msgid ""
"@S last mount time (%t,\n"
"\tnow = %T) is in the future.\n"
@@ -1052,198 +1061,234 @@ msgstr ""
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
-#: e2fsck/problem.c:342
+#: e2fsck/problem.c:345
msgid ""
"@S last write time (%t,\n"
"\tnow = %T) is in the future.\n"
msgstr ""
#. @-expanded: superblock hint for external superblock should be %X.
-#: e2fsck/problem.c:346
+#: e2fsck/problem.c:349
#, c-format
msgid "@S hint for external superblock @s %X. "
msgstr ""
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
-#: e2fsck/problem.c:351
+#: e2fsck/problem.c:354
msgid ""
"Adding dirhash hint to @f.\n"
"\n"
msgstr ""
-#. @-expanded: group descriptor %g checksum is invalid.
-#: e2fsck/problem.c:356
-#, c-format
-msgid "@g descriptor %g checksum is invalid. "
+#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
+#: e2fsck/problem.c:359
+msgid "@g descriptor %g checksum is %04x, should be %04y. "
msgstr ""
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
-#: e2fsck/problem.c:361
+#: e2fsck/problem.c:364
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
msgstr ""
-#. @-expanded: group %g block bitmap uninitialized but inode bitmap in use.\n
-#: e2fsck/problem.c:366
-#, c-format
-msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-msgstr ""
-
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
-#: e2fsck/problem.c:371
+#: e2fsck/problem.c:369
msgid "@g descriptor %g has invalid unused inodes count %b. "
msgstr ""
#. @-expanded: Last group block bitmap uninitialized.
-#: e2fsck/problem.c:376
+#: e2fsck/problem.c:374
msgid "Last @g @b @B uninitialized. "
msgstr "最åŽä¸€ä¸ª@gçš„@b@B未åˆå§‹åŒ–. "
-#: e2fsck/problem.c:381
+#: e2fsck/problem.c:379
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
msgstr ""
-#: e2fsck/problem.c:385
+#: e2fsck/problem.c:383
msgid "The test_fs flag is set (and ext4 is available). "
msgstr ""
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set)
-#: e2fsck/problem.c:390
+#: e2fsck/problem.c:388
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set) "
msgstr ""
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#. @-expanded: set).
-#: e2fsck/problem.c:396
+#: e2fsck/problem.c:394
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly "
+"set). "
msgstr ""
#. @-expanded: One or more block group descriptor checksums are invalid.
-#: e2fsck/problem.c:402
+#: e2fsck/problem.c:400
msgid "One or more @b @g descriptor checksums are invalid. "
msgstr ""
+#. @-expanded: Setting free inodes count to %j (was %i)\n
+#: e2fsck/problem.c:405
+msgid "Setting free @is count to %j (was %i)\n"
+msgstr ""
+
+#. @-expanded: Setting free blocks count to %c (was %b)\n
+#: e2fsck/problem.c:410
+msgid "Setting free @bs count to %c (was %b)\n"
+msgstr ""
+
+#. @-expanded: Making quota inode %i (%Q) hidden.\n
+#: e2fsck/problem.c:415
+msgid "Making @q @i %i (%Q) hidden.\n"
+msgstr ""
+
+#. @-expanded: superblock has invalid MMP block.
+#: e2fsck/problem.c:420
+#, fuzzy
+msgid "@S has invalid MMP block. "
+msgstr "无效的å—å¤§å° - %s"
+
+#. @-expanded: superblock has invalid MMP magic.
+#: e2fsck/problem.c:425
+msgid "@S has invalid MMP magic. "
+msgstr ""
+
+#: e2fsck/problem.c:430
+#, c-format
+msgid "ext2fs_open2: %m\n"
+msgstr ""
+
+#: e2fsck/problem.c:435
+#, c-format
+msgid "ext2fs_check_desc: %m\n"
+msgstr ""
+
+#. @-expanded: superblock 64bit filesystems needs extents to access the whole disk.
+#: e2fsck/problem.c:440
+msgid "@S 64bit filesystems needs extents to access the whole disk. "
+msgstr ""
+
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
-#: e2fsck/problem.c:409
+#: e2fsck/problem.c:447
msgid "Pass 1: Checking @is, @bs, and sizes\n"
msgstr "第一步: 检查@i,@b,和大å°\n"
#. @-expanded: root inode is not a directory.
-#: e2fsck/problem.c:413
+#: e2fsck/problem.c:451
msgid "@r is not a @d. "
msgstr "@rä¸æ˜¯ä¸€ä¸ª@d. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
-#: e2fsck/problem.c:418
+#: e2fsck/problem.c:456
msgid "@r has dtime set (probably due to old mke2fs). "
msgstr ""
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
-#: e2fsck/problem.c:423
+#: e2fsck/problem.c:461
msgid "Reserved @i %i (%Q) has @n mode. "
msgstr "ä¿ç•™çš„@i %i (%Q) 的模å¼æ— æ•ˆ. "
#. @-expanded: deleted inode %i has zero dtime.
-#: e2fsck/problem.c:428
+#: e2fsck/problem.c:466
#, c-format
msgid "@D @i %i has zero dtime. "
msgstr ""
#. @-expanded: inode %i is in use, but has dtime set.
-#: e2fsck/problem.c:433
+#: e2fsck/problem.c:471
#, c-format
msgid "@i %i is in use, but has dtime set. "
msgstr ""
#. @-expanded: inode %i is a zero-length directory.
-#: e2fsck/problem.c:438
+#: e2fsck/problem.c:476
#, c-format
msgid "@i %i is a @z @d. "
msgstr ""
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:443
+#: e2fsck/problem.c:481
msgid "@g %g's @b @B at %b @C.\n"
msgstr ""
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:448
+#: e2fsck/problem.c:486
msgid "@g %g's @i @B at %b @C.\n"
msgstr ""
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
-#: e2fsck/problem.c:453
+#: e2fsck/problem.c:491
msgid "@g %g's @i table at %b @C.\n"
msgstr ""
#. @-expanded: group %g's block bitmap (%b) is bad.
-#: e2fsck/problem.c:458
+#: e2fsck/problem.c:496
msgid "@g %g's @b @B (%b) is bad. "
msgstr ""
#. @-expanded: group %g's inode bitmap (%b) is bad.
-#: e2fsck/problem.c:463
+#: e2fsck/problem.c:501
msgid "@g %g's @i @B (%b) is bad. "
msgstr ""
#. @-expanded: inode %i, i_size is %Is, should be %N.
-#: e2fsck/problem.c:468
+#: e2fsck/problem.c:506
msgid "@i %i, i_size is %Is, @s %N. "
msgstr ""
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
-#: e2fsck/problem.c:473
+#: e2fsck/problem.c:511
msgid "@i %i, i_@bs is %Ib, @s %N. "
msgstr ""
#. @-expanded: illegal %B (%b) in inode %i.
-#: e2fsck/problem.c:478
+#: e2fsck/problem.c:516
msgid "@I %B (%b) in @i %i. "
msgstr ""
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
-#: e2fsck/problem.c:483
+#: e2fsck/problem.c:521
msgid "%B (%b) overlaps @f metadata in @i %i. "
msgstr ""
#. @-expanded: inode %i has illegal block(s).
-#: e2fsck/problem.c:488
+#: e2fsck/problem.c:526
#, c-format
msgid "@i %i has illegal @b(s). "
msgstr "@i %i 中包å«éžæ³•@b. "
#. @-expanded: Too many illegal blocks in inode %i.\n
-#: e2fsck/problem.c:493
+#: e2fsck/problem.c:531
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
msgstr "@i %i 中包å«äº†è¿‡å¤šçš„éžæ³•@b.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
-#: e2fsck/problem.c:498
+#: e2fsck/problem.c:536
msgid "@I %B (%b) in bad @b @i. "
msgstr ""
#. @-expanded: Bad block inode has illegal block(s).
-#: e2fsck/problem.c:503
+#: e2fsck/problem.c:541
msgid "Bad @b @i has illegal @b(s). "
msgstr ""
#. @-expanded: Duplicate or bad block in use!\n
-#: e2fsck/problem.c:508
+#: e2fsck/problem.c:546
msgid "Duplicate or bad @b in use!\n"
msgstr ""
#. @-expanded: Bad block %b used as bad block inode indirect block.
-#: e2fsck/problem.c:513
+#: e2fsck/problem.c:551
msgid "Bad @b %b used as bad @b @i indirect @b. "
msgstr ""
@@ -1251,7 +1296,7 @@ msgstr ""
#. @-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:518
+#: e2fsck/problem.c:556
msgid ""
"\n"
"The bad @b @i has probably been corrupted. You probably\n"
@@ -1261,7 +1306,7 @@ msgstr ""
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
-#: e2fsck/problem.c:525
+#: e2fsck/problem.c:563
msgid ""
"\n"
"If the @b is really bad, the @f can not be fixed.\n"
@@ -1270,7 +1315,7 @@ msgstr ""
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: \n
-#: e2fsck/problem.c:530
+#: e2fsck/problem.c:568
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"
@@ -1278,121 +1323,121 @@ msgid ""
msgstr ""
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
-#: e2fsck/problem.c:536
+#: e2fsck/problem.c:574
msgid "The primary @S (%b) is on the bad @b list.\n"
msgstr ""
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
-#: e2fsck/problem.c:541
+#: e2fsck/problem.c:579
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
msgstr ""
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
-#: e2fsck/problem.c:547
+#: e2fsck/problem.c:585
msgid "Warning: Group %g's @S (%b) is bad.\n"
msgstr ""
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
-#: e2fsck/problem.c:552
+#: e2fsck/problem.c:590
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
msgstr ""
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
-#: e2fsck/problem.c:558
+#: e2fsck/problem.c:596
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
msgstr ""
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
-#: e2fsck/problem.c:564
+#: e2fsck/problem.c:602
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
msgstr ""
#. @-expanded: error allocating block buffer for relocating %s\n
-#: e2fsck/problem.c:569
+#: e2fsck/problem.c:607
#, c-format
msgid "@A @b buffer for relocating %s\n"
msgstr ""
#. @-expanded: Relocating group %g's %s from %b to %c...\n
-#: e2fsck/problem.c:574
+#: e2fsck/problem.c:612
msgid "Relocating @g %g's %s from %b to %c...\n"
msgstr ""
#. @-expanded: Relocating group %g's %s to %c...\n
-#: e2fsck/problem.c:579
+#: e2fsck/problem.c:617
#, c-format
msgid "Relocating @g %g's %s to %c...\n"
msgstr ""
#. @-expanded: Warning: could not read block %b of %s: %m\n
-#: e2fsck/problem.c:584
+#: e2fsck/problem.c:622
msgid "Warning: could not read @b %b of %s: %m\n"
msgstr "警告: 无法从%s中读å–@b %b: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
-#: e2fsck/problem.c:589
+#: e2fsck/problem.c:627
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr "警告: 无法å‘%s中写入@b %b: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
-#: e2fsck/problem.c:594 e2fsck/problem.c:1405
+#: e2fsck/problem.c:632 e2fsck/problem.c:1481
msgid "@A @i @B (%N): %m\n"
msgstr ""
#. @-expanded: error allocating block bitmap (%N): %m\n
-#: e2fsck/problem.c:599
+#: e2fsck/problem.c:637
msgid "@A @b @B (%N): %m\n"
msgstr ""
#. @-expanded: error allocating icount link information: %m\n
-#: e2fsck/problem.c:604
+#: e2fsck/problem.c:642
#, c-format
msgid "@A icount link information: %m\n"
msgstr ""
#. @-expanded: error allocating directory block array: %m\n
-#: e2fsck/problem.c:609
+#: e2fsck/problem.c:647
#, c-format
msgid "@A @d @b array: %m\n"
msgstr "分é…@d@b数组时出错: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
-#: e2fsck/problem.c:614
+#: e2fsck/problem.c:652
#, c-format
msgid "Error while scanning @is (%i): %m\n"
msgstr ""
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
-#: e2fsck/problem.c:619
+#: e2fsck/problem.c:657
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
msgstr ""
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
-#: e2fsck/problem.c:624
+#: e2fsck/problem.c:662
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
msgstr ""
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
-#: e2fsck/problem.c:629
+#: e2fsck/problem.c:667
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
msgstr ""
#. @-expanded: Error reading inode %i: %m\n
-#: e2fsck/problem.c:635
+#: e2fsck/problem.c:673
#, c-format
msgid "Error reading @i %i: %m\n"
msgstr "读å–@i %i出错: %m\n"
#. @-expanded: inode %i has imagic flag set.
-#: e2fsck/problem.c:643
+#: e2fsck/problem.c:681
#, c-format
msgid "@i %i has imagic flag set. "
msgstr ""
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
-#: e2fsck/problem.c:648
+#: e2fsck/problem.c:686
#, c-format
msgid ""
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
@@ -1400,204 +1445,204 @@ msgid ""
msgstr ""
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
-#: e2fsck/problem.c:654
+#: e2fsck/problem.c:692
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
msgstr ""
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
-#: e2fsck/problem.c:659
+#: e2fsck/problem.c:697
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
msgstr ""
#. @-expanded: journal inode is not in use, but contains data.
-#: e2fsck/problem.c:669
+#: e2fsck/problem.c:707
msgid "@j @i is not in use, but contains data. "
msgstr ""
#. @-expanded: journal is not regular file.
-#: e2fsck/problem.c:674
+#: e2fsck/problem.c:712
msgid "@j is not regular file. "
msgstr "@jä¸æ˜¯æ™®é€šæ–‡ä»¶. "
#. @-expanded: inode %i was part of the orphaned inode list.
-#: e2fsck/problem.c:679
+#: e2fsck/problem.c:717
#, c-format
msgid "@i %i was part of the @o @i list. "
msgstr ""
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
-#: e2fsck/problem.c:685
+#: e2fsck/problem.c:723
msgid "@is that were part of a corrupted orphan linked list found. "
msgstr ""
#. @-expanded: error allocating refcount structure (%N): %m\n
-#: e2fsck/problem.c:690
+#: e2fsck/problem.c:728
msgid "@A refcount structure (%N): %m\n"
msgstr ""
#. @-expanded: Error reading extended attribute block %b for inode %i.
-#: e2fsck/problem.c:695
+#: e2fsck/problem.c:733
msgid "Error reading @a @b %b for @i %i. "
msgstr ""
#. @-expanded: inode %i has a bad extended attribute block %b.
-#: e2fsck/problem.c:700
+#: e2fsck/problem.c:738
msgid "@i %i has a bad @a @b %b. "
msgstr ""
#. @-expanded: Error reading extended attribute block %b (%m).
-#: e2fsck/problem.c:705
+#: e2fsck/problem.c:743
msgid "Error reading @a @b %b (%m). "
msgstr ""
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
-#: e2fsck/problem.c:710
+#: e2fsck/problem.c:748
msgid "@a @b %b has reference count %r, @s %N. "
msgstr ""
#. @-expanded: Error writing extended attribute block %b (%m).
-#: e2fsck/problem.c:715
+#: e2fsck/problem.c:753
msgid "Error writing @a @b %b (%m). "
msgstr ""
#. @-expanded: extended attribute block %b has h_blocks > 1.
-#: e2fsck/problem.c:720
+#: e2fsck/problem.c:758
msgid "@a @b %b has h_@bs > 1. "
msgstr ""
#. @-expanded: error allocating extended attribute block %b.
-#: e2fsck/problem.c:725
+#: e2fsck/problem.c:763
msgid "@A @a @b %b. "
msgstr ""
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
-#: e2fsck/problem.c:730
+#: e2fsck/problem.c:768
msgid "@a @b %b is corrupt (allocation collision). "
msgstr ""
#. @-expanded: extended attribute block %b is corrupt (invalid name).
-#: e2fsck/problem.c:735
+#: e2fsck/problem.c:773
msgid "@a @b %b is corrupt (@n name). "
msgstr ""
#. @-expanded: extended attribute block %b is corrupt (invalid value).
-#: e2fsck/problem.c:740
+#: e2fsck/problem.c:778
msgid "@a @b %b is corrupt (@n value). "
msgstr ""
#. @-expanded: inode %i is too big.
-#: e2fsck/problem.c:745
+#: e2fsck/problem.c:783
#, c-format
msgid "@i %i is too big. "
msgstr "@i %i 过大. "
#. @-expanded: %B (%b) causes directory to be too big.
-#: e2fsck/problem.c:749
+#: e2fsck/problem.c:787
msgid "%B (%b) causes @d to be too big. "
msgstr ""
-#: e2fsck/problem.c:754
+#: e2fsck/problem.c:792
msgid "%B (%b) causes file to be too big. "
msgstr ""
-#: e2fsck/problem.c:759
+#: e2fsck/problem.c:797
msgid "%B (%b) causes symlink to be too big. "
msgstr ""
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
-#: e2fsck/problem.c:764
+#: e2fsck/problem.c:802
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
msgstr ""
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
-#: e2fsck/problem.c:769
+#: e2fsck/problem.c:807
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
msgstr ""
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
-#: e2fsck/problem.c:774
+#: e2fsck/problem.c:812
#, c-format
msgid "@h %i has an @n root node.\n"
msgstr ""
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
-#: e2fsck/problem.c:779
+#: e2fsck/problem.c:817
msgid "@h %i has an unsupported hash version (%N)\n"
msgstr ""
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
-#: e2fsck/problem.c:784
+#: e2fsck/problem.c:822
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
msgstr ""
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
-#: e2fsck/problem.c:789
+#: e2fsck/problem.c:827
msgid "@h %i has a tree depth (%N) which is too big\n"
msgstr ""
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
-#: e2fsck/problem.c:794
+#: e2fsck/problem.c:832
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
msgstr ""
#. @-expanded: Resize inode (re)creation failed: %m.
-#: e2fsck/problem.c:800
+#: e2fsck/problem.c:838
#, c-format
msgid "Resize @i (re)creation failed: %m."
msgstr ""
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
-#: e2fsck/problem.c:805
+#: e2fsck/problem.c:843
msgid "@i %i has a extra size (%IS) which is @n\n"
msgstr ""
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
-#: e2fsck/problem.c:810
+#: e2fsck/problem.c:848
msgid "@a in @i %i has a namelen (%N) which is @n\n"
msgstr ""
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
-#: e2fsck/problem.c:815
+#: e2fsck/problem.c:853
msgid "@a in @i %i has a value offset (%N) which is @n\n"
msgstr ""
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
-#: e2fsck/problem.c:820
+#: e2fsck/problem.c:858
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
msgstr ""
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
-#: e2fsck/problem.c:825
+#: e2fsck/problem.c:863
msgid "@a in @i %i has a value size (%N) which is @n\n"
msgstr ""
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
-#: e2fsck/problem.c:830
+#: e2fsck/problem.c:868
msgid "@a in @i %i has a hash (%N) which is @n\n"
msgstr ""
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
-#: e2fsck/problem.c:835
+#: e2fsck/problem.c:873
msgid "@i %i is a %It but it looks like it is really a directory.\n"
msgstr ""
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
-#: e2fsck/problem.c:840
+#: e2fsck/problem.c:878
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
msgstr ""
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
-#: e2fsck/problem.c:845
+#: e2fsck/problem.c:883
msgid ""
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
@@ -1605,7 +1650,7 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, invalid physical block %b, len %N)\n
-#: e2fsck/problem.c:851
+#: e2fsck/problem.c:889
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
@@ -1613,57 +1658,104 @@ msgstr ""
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
-#: e2fsck/problem.c:856
+#: e2fsck/problem.c:894
msgid ""
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
-#: e2fsck/problem.c:861
+#: e2fsck/problem.c:899
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
msgstr ""
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
-#: e2fsck/problem.c:866
+#: e2fsck/problem.c:904
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
msgstr ""
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
-#: e2fsck/problem.c:871
+#: e2fsck/problem.c:909
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
msgstr ""
-#: e2fsck/problem.c:876
+#: e2fsck/problem.c:914
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
msgstr ""
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
-#: e2fsck/problem.c:881
+#: e2fsck/problem.c:919
msgid ""
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
-#: e2fsck/problem.c:885
+#: e2fsck/problem.c:923
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
msgstr ""
-#. @-expanded: inode %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n
-#: e2fsck/problem.c:889
-msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
+#. @-expanded: Error converting subcluster block bitmap: %m\n
+#: e2fsck/problem.c:928
+#, fuzzy, c-format
+msgid "Error converting subcluster @b @B: %m\n"
+msgstr "创建根@d (%s) 时出错: %m\n"
+
+#. @-expanded: quota inode is not regular file.
+#: e2fsck/problem.c:933
+#, fuzzy
+msgid "@q @i is not regular file. "
+msgstr "@jä¸æ˜¯æ™®é€šæ–‡ä»¶. "
+
+#. @-expanded: quota inode is not in use, but contains data.
+#: e2fsck/problem.c:938
+msgid "@q @i is not in use, but contains data. "
+msgstr ""
+
+#. @-expanded: quota inode is visible to the user.
+#: e2fsck/problem.c:943
+msgid "@q @i is visible to the user. "
+msgstr ""
+
+#. @-expanded: The bad block inode looks invalid.
+#: e2fsck/problem.c:948
+#, fuzzy
+msgid "The bad @b @i looks @n. "
+msgstr "<åå— inode>"
+
+#. @-expanded: inode %i has zero length extent\n
+#. @-expanded: \t(invalid logical block %c, physical block %b)\n
+#: e2fsck/problem.c:953
+msgid ""
+"@i %i has zero length extent\n"
+"\t(@n logical @b %c, physical @b %b)\n"
+msgstr ""
+
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+#: e2fsck/problem.c:960
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+#: e2fsck/problem.c:966
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
msgstr ""
#. @-expanded: \n
#. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n
#. @-expanded: Pass 1B: Rescanning for multiply-claimed blocks\n
-#: e2fsck/problem.c:897
+#: e2fsck/problem.c:974
msgid ""
"\n"
"Running additional passes to resolve @bs claimed by more than one @i...\n"
@@ -1671,64 +1763,64 @@ msgid ""
msgstr ""
#. @-expanded: multiply-claimed block(s) in inode %i:
-#: e2fsck/problem.c:903
+#: e2fsck/problem.c:980
#, c-format
msgid "@m @b(s) in @i %i:"
msgstr ""
-#: e2fsck/problem.c:918
+#: e2fsck/problem.c:995
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr ""
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
-#: e2fsck/problem.c:923
+#: e2fsck/problem.c:1000
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr ""
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
-#: e2fsck/problem.c:928
+#: e2fsck/problem.c:1005
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr ""
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
-#: e2fsck/problem.c:933 e2fsck/problem.c:1249
+#: e2fsck/problem.c:1010 e2fsck/problem.c:1325
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr ""
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
-#: e2fsck/problem.c:939
+#: e2fsck/problem.c:1015
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr ""
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
-#: e2fsck/problem.c:945
+#: e2fsck/problem.c:1021
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr ""
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
-#: e2fsck/problem.c:950
+#: e2fsck/problem.c:1026
msgid ""
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
-#: e2fsck/problem.c:956
+#: e2fsck/problem.c:1032
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr ""
#. @-expanded: \t<filesystem metadata>\n
-#: e2fsck/problem.c:961
+#: e2fsck/problem.c:1037
msgid "\t<@f metadata>\n"
msgstr "\t<@f元数æ®>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
-#: e2fsck/problem.c:966
+#: e2fsck/problem.c:1042
msgid ""
"(There are %N @is containing @m @bs.)\n"
"\n"
@@ -1736,321 +1828,321 @@ msgstr ""
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
-#: e2fsck/problem.c:971
+#: e2fsck/problem.c:1047
msgid ""
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-#: e2fsck/problem.c:984
+#: e2fsck/problem.c:1060
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr ""
#. @-expanded: Pass 2: Checking directory structure\n
-#: e2fsck/problem.c:990
+#: e2fsck/problem.c:1066
msgid "Pass 2: Checking @d structure\n"
msgstr "第二步: 检查目录结构\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
-#: e2fsck/problem.c:995
+#: e2fsck/problem.c:1071
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1076
msgid "@E has @n @i #: %Di.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
-#: e2fsck/problem.c:1005
+#: e2fsck/problem.c:1081
msgid "@E has @D/unused @i %Di. "
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
-#: e2fsck/problem.c:1010
+#: e2fsck/problem.c:1086
msgid "@E @L to '.' "
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
-#: e2fsck/problem.c:1015
+#: e2fsck/problem.c:1091
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
-#: e2fsck/problem.c:1020
+#: e2fsck/problem.c:1096
msgid "@E @L to @d %P (%Di).\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
-#: e2fsck/problem.c:1025
+#: e2fsck/problem.c:1101
msgid "@E @L to the @r.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
-#: e2fsck/problem.c:1030
+#: e2fsck/problem.c:1106
msgid "@E has illegal characters in its name.\n"
msgstr ""
#. @-expanded: Missing '.' in directory inode %i.\n
-#: e2fsck/problem.c:1035
+#: e2fsck/problem.c:1111
#, c-format
msgid "Missing '.' in @d @i %i.\n"
msgstr "@d@i %i 中缺少 '.'.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
-#: e2fsck/problem.c:1040
+#: e2fsck/problem.c:1116
#, c-format
msgid "Missing '..' in @d @i %i.\n"
msgstr "@d@i %i 中缺少 '..'.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1121
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr ""
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1126
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr ""
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1131
msgid "i_faddr @F %IF, @s zero.\n"
msgstr ""
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1136
msgid "i_file_acl @F %If, @s zero.\n"
msgstr ""
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1141
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr ""
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1146
msgid "i_frag @F %N, @s zero.\n"
msgstr ""
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1151
msgid "i_fsize @F %N, @s zero.\n"
msgstr ""
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1156
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr "@i %i (%Q) 有@næ¨¡å¼ (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1161
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr "@d@i %i, 第 %B @b, åç§»é‡ %N: @dæŸå\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1166
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr "@d@i %i, 第 %B @b, åç§»é‡ %N: 文件å过长\n"
#. @-expanded: directory inode %i has an unallocated %B.
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1171
msgid "@d @i %i has an unallocated %B. "
msgstr "@d@i %i 中å«æœ‰æœªåˆ†é…çš„@b #%B. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1176
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr "@d@i %i 中的 '.' @d@e 没有以NULL终止\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1181
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr "@d@i %i 中的 '..' @d@e 没有以NULL终止\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1186
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr ""
#. @-expanded: inode %i (%Q) is an illegal block device.\n
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1191
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1196
msgid "@E is duplicate '.' @e.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1201
msgid "@E is duplicate '..' @e.\n"
msgstr ""
-#: e2fsck/problem.c:1130 e2fsck/problem.c:1430
+#: e2fsck/problem.c:1206 e2fsck/problem.c:1506
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1211
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr ""
#. @-expanded: error allocating icount structure: %m\n
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1216
#, c-format
msgid "@A icount structure: %m\n"
msgstr ""
#. @-expanded: Error iterating over directory blocks: %m\n
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1221
#, c-format
msgid "Error iterating over @d @bs: %m\n"
msgstr ""
#. @-expanded: Error reading directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1226
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr ""
#. @-expanded: Error writing directory block %b (inode %i): %m\n
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1231
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr ""
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1236
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr ""
#. @-expanded: Error deallocating inode %i: %m\n
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1241
#, c-format
msgid "Error deallocating @i %i: %m\n"
msgstr ""
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1246
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr ""
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1251
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr ""
#. @-expanded: inode %i (%Q) is an illegal socket.\n
-#: e2fsck/problem.c:1180
+#: e2fsck/problem.c:1256
msgid "@i %i (%Q) is an @I socket.\n"
msgstr ""
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
-#: e2fsck/problem.c:1185
+#: e2fsck/problem.c:1261
msgid "Setting filetype for @E to %N.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1266
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1271
msgid "@E has filetype set.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1276
msgid "@E has a @z name.\n"
msgstr ""
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1281
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr ""
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1286
msgid "@a @b @F @n (%If).\n"
msgstr ""
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1291
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1296
msgid "@p @h %d: %B not referenced\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1301
msgid "@p @h %d: %B referenced twice\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1306
msgid "@p @h %d: %B has bad min hash\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1311
msgid "@p @h %d: %B has bad max hash\n"
msgstr ""
#. @-expanded: invalid HTREE directory inode %d (%q).
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1316
msgid "@n @h %d (%q). "
msgstr ""
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
-#: e2fsck/problem.c:1244
+#: e2fsck/problem.c:1320
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
-#: e2fsck/problem.c:1254
+#: e2fsck/problem.c:1330
#, c-format
msgid "@p @h %d: root node is @n\n"
msgstr "@p@h %d:根结点@n\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
-#: e2fsck/problem.c:1259
+#: e2fsck/problem.c:1335
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
-#: e2fsck/problem.c:1264
+#: e2fsck/problem.c:1340
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
-#: e2fsck/problem.c:1269
+#: e2fsck/problem.c:1345
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr ""
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
-#: e2fsck/problem.c:1274
+#: e2fsck/problem.c:1350
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr ""
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
-#: e2fsck/problem.c:1279
+#: e2fsck/problem.c:1355
msgid "Duplicate @E found. "
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
-#: e2fsck/problem.c:1284
+#: e2fsck/problem.c:1360
#, no-c-format
msgid ""
"@E has a non-unique filename.\n"
@@ -2060,7 +2152,7 @@ msgstr ""
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
-#: e2fsck/problem.c:1289
+#: e2fsck/problem.c:1365
msgid ""
"Duplicate @e '%Dn' found.\n"
"\tMarking %p (%i) to be rebuilt.\n"
@@ -2068,116 +2160,116 @@ msgid ""
msgstr ""
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1294
+#: e2fsck/problem.c:1370
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr ""
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
-#: e2fsck/problem.c:1299
+#: e2fsck/problem.c:1375
msgid "Unexpected @b in @h %d (%q).\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
-#: e2fsck/problem.c:1303
+#: e2fsck/problem.c:1379
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr ""
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
-#: e2fsck/problem.c:1308
+#: e2fsck/problem.c:1384
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
-#: e2fsck/problem.c:1313
+#: e2fsck/problem.c:1389
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr ""
#. @-expanded: Pass 3: Checking directory connectivity\n
-#: e2fsck/problem.c:1320
+#: e2fsck/problem.c:1396
msgid "Pass 3: Checking @d connectivity\n"
msgstr "第3步: 检查目录连接性\n"
#. @-expanded: root inode not allocated.
-#: e2fsck/problem.c:1325
+#: e2fsck/problem.c:1401
msgid "@r not allocated. "
msgstr ""
#. @-expanded: No room in lost+found directory.
-#: e2fsck/problem.c:1330
+#: e2fsck/problem.c:1406
msgid "No room in @l @d. "
msgstr "@l@d中没有空间. "
#. @-expanded: Unconnected directory inode %i (%p)\n
-#: e2fsck/problem.c:1335
+#: e2fsck/problem.c:1411
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
msgstr ""
#. @-expanded: /lost+found not found.
-#: e2fsck/problem.c:1340
+#: e2fsck/problem.c:1416
msgid "/@l not found. "
msgstr "/@l未找到."
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
-#: e2fsck/problem.c:1345
+#: e2fsck/problem.c:1421
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr ""
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
-#: e2fsck/problem.c:1350
+#: e2fsck/problem.c:1426
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr ""
#. @-expanded: Could not expand /lost+found: %m\n
-#: e2fsck/problem.c:1355
+#: e2fsck/problem.c:1431
#, c-format
msgid "Could not expand /@l: %m\n"
msgstr ""
-#: e2fsck/problem.c:1360
+#: e2fsck/problem.c:1436
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr ""
#. @-expanded: Error while trying to find /lost+found: %m\n
-#: e2fsck/problem.c:1365
+#: e2fsck/problem.c:1441
#, c-format
msgid "Error while trying to find /@l: %m\n"
msgstr "å°è¯•æ‰¾åˆ°/@l时出错: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1370
+#: e2fsck/problem.c:1446
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr ""
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1451
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr ""
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1456
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr ""
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1461
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr ""
#. @-expanded: Error while adjusting inode count on inode %i\n
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1466
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1471
#, c-format
msgid ""
"Couldn't fix parent of @i %i: %m\n"
@@ -2186,7 +2278,7 @@ msgstr ""
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1476
#, c-format
msgid ""
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
@@ -2194,75 +2286,75 @@ msgid ""
msgstr ""
#. @-expanded: Error creating root directory (%s): %m\n
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1486
#, c-format
msgid "Error creating root @d (%s): %m\n"
msgstr "创建根@d (%s) 时出错: %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1491
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
msgstr ""
#. @-expanded: root inode is not a directory; aborting.\n
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1496
msgid "@r is not a @d; aborting.\n"
msgstr "@rä¸æ˜¯ä¸€ä¸ª@d; 中止.\n"
#. @-expanded: Cannot proceed without a root inode.\n
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1501
msgid "Cannot proceed without a @r.\n"
msgstr ""
#. @-expanded: /lost+found is not a directory (ino=%i)\n
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1511
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
msgstr ""
-#: e2fsck/problem.c:1442
+#: e2fsck/problem.c:1518
msgid "Pass 3A: Optimizing directories\n"
msgstr ""
-#: e2fsck/problem.c:1447
+#: e2fsck/problem.c:1523
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr ""
-#: e2fsck/problem.c:1452
+#: e2fsck/problem.c:1528
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr ""
-#: e2fsck/problem.c:1457
+#: e2fsck/problem.c:1533
msgid "Optimizing directories: "
msgstr "正在优化目录: "
-#: e2fsck/problem.c:1474
+#: e2fsck/problem.c:1550
msgid "Pass 4: Checking reference counts\n"
msgstr ""
#. @-expanded: unattached zero-length inode %i.
-#: e2fsck/problem.c:1479
+#: e2fsck/problem.c:1555
#, c-format
msgid "@u @z @i %i. "
msgstr ""
#. @-expanded: unattached inode %i\n
-#: e2fsck/problem.c:1484
+#: e2fsck/problem.c:1560
#, c-format
msgid "@u @i %i\n"
msgstr ""
#. @-expanded: inode %i ref count is %Il, should be %N.
-#: e2fsck/problem.c:1489
+#: e2fsck/problem.c:1565
msgid "@i %i ref count is %Il, @s %N. "
msgstr ""
#. @-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:1493
+#: e2fsck/problem.c:1569
msgid ""
"WARNING: PROGRAMMING BUG IN E2FSCK!\n"
"\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n"
@@ -2273,140 +2365,146 @@ msgstr ""
"@i_link_info[%i] 为 %N, @i.i_links_count 为 %Il.它们应该是相åŒçš„!\n"
#. @-expanded: Pass 5: Checking group summary information\n
-#: e2fsck/problem.c:1503
+#: e2fsck/problem.c:1579
msgid "Pass 5: Checking @g summary information\n"
msgstr "第5æ­¥: 检查@g概è¦ä¿¡æ¯\n"
#. @-expanded: Padding at end of inode bitmap is not set.
-#: e2fsck/problem.c:1508
+#: e2fsck/problem.c:1584
msgid "Padding at end of @i @B is not set. "
msgstr ""
#. @-expanded: Padding at end of block bitmap is not set.
-#: e2fsck/problem.c:1513
+#: e2fsck/problem.c:1589
msgid "Padding at end of @b @B is not set. "
msgstr ""
#. @-expanded: block bitmap differences:
-#: e2fsck/problem.c:1518
+#: e2fsck/problem.c:1594
msgid "@b @B differences: "
msgstr "@b@B差异: "
#. @-expanded: inode bitmap differences:
-#: e2fsck/problem.c:1538
+#: e2fsck/problem.c:1614
msgid "@i @B differences: "
msgstr "@i@B差异: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1634
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1639
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1644
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr ""
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
-#: e2fsck/problem.c:1573
+#: e2fsck/problem.c:1649
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr ""
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
-#: e2fsck/problem.c:1578
+#: e2fsck/problem.c:1654
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr ""
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
-#: e2fsck/problem.c:1583
-msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+#: e2fsck/problem.c:1659
+msgid ""
+"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
+"endpoints (%i, %j)\n"
msgstr ""
-#: e2fsck/problem.c:1589
+#: e2fsck/problem.c:1665
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr ""
#. @-expanded: Error copying in replacement inode bitmap: %m\n
-#: e2fsck/problem.c:1594
+#: e2fsck/problem.c:1670
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
msgstr ""
#. @-expanded: Error copying in replacement block bitmap: %m\n
-#: e2fsck/problem.c:1599
+#: e2fsck/problem.c:1675
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
msgstr ""
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
-#: e2fsck/problem.c:1624
+#: e2fsck/problem.c:1700
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr ""
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
-#: e2fsck/problem.c:1629
+#: e2fsck/problem.c:1705
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr ""
#. @-expanded: Recreate journal
-#: e2fsck/problem.c:1636
+#: e2fsck/problem.c:1712
msgid "Recreate @j"
msgstr "é‡å»º@j"
-#: e2fsck/problem.c:1755
+#: e2fsck/problem.c:1717
+msgid "Update quota info for quota type %N"
+msgstr ""
+
+#: e2fsck/problem.c:1836
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr ""
-#: e2fsck/problem.c:1855
+#: e2fsck/problem.c:1961 e2fsck/problem.c:1965
msgid "IGNORED"
msgstr "已忽略"
-#: e2fsck/scantest.c:81
+#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
msgstr ""
-#: e2fsck/scantest.c:100
+#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
msgstr "inode大å°=%d\n"
-#: e2fsck/scantest.c:121
+#: e2fsck/scantest.c:119
msgid "while starting inode scan"
msgstr ""
-#: e2fsck/scantest.c:132
+#: e2fsck/scantest.c:130
msgid "while doing inode scan"
msgstr ""
-#: e2fsck/super.c:187
+#: e2fsck/super.c:190
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
msgstr ""
-#: e2fsck/super.c:209
+#: e2fsck/super.c:213
#, c-format
-msgid "while calling ext2fs_adjust_ea_refcount for inode %d"
+msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
msgstr ""
-#: e2fsck/super.c:267
+#: e2fsck/super.c:274
msgid "Truncating"
msgstr "正在截断"
-#: e2fsck/super.c:268
+#: e2fsck/super.c:275
msgid "Clearing"
msgstr "正在清除"
-#: e2fsck/unix.c:76
+#: e2fsck/unix.c:74
#, c-format
msgid ""
"Usage: %s [-panyrcdfvtDFV] [-b superblock] [-B blocksize]\n"
@@ -2415,20 +2513,19 @@ msgid ""
"\t\t[-E extended-options] device\n"
msgstr ""
-#: e2fsck/unix.c:82
-#, c-format
+#: e2fsck/unix.c:80
msgid ""
"\n"
"Emergency help:\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock list\n"
+" -c Check for bad blocks and add them to the badblock "
+"list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
-#: e2fsck/unix.c:88
-#, c-format
+#: e2fsck/unix.c:86
msgid ""
" -v Be verbose\n"
" -b superblock Use alternative superblock\n"
@@ -2438,126 +2535,242 @@ msgid ""
" -L bad_blocks_file Set badblocks list\n"
msgstr ""
-#: e2fsck/unix.c:132
+#: e2fsck/unix.c:131
#, c-format
-msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %u/%u blocks\n"
+msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr ""
-#: e2fsck/unix.c:150
+#: e2fsck/unix.c:157
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
+msgid_plural ""
+"\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
+msgstr[0] "%u 个 inode 被扫æ.\n"
+msgstr[1] "%u 个 inode 被扫æ.\n"
+
+#: e2fsck/unix.c:161
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr ""
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
-#: e2fsck/unix.c:157
+#: e2fsck/unix.c:166
+#, c-format
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:171
#, c-format
-msgid " Extent depth histogram: "
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
msgstr ""
-#: e2fsck/unix.c:207 misc/badblocks.c:931 misc/tune2fs.c:1675 misc/util.c:151
-#: resize/main.c:249
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr ""
+
+#: e2fsck/unix.c:188
+#, c-format
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:192
+#, fuzzy, c-format
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "bå—"
+msgstr[1] "bå—"
+
+#: e2fsck/unix.c:194
+#, fuzzy, c-format
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "一般文件"
+msgstr[1] "一般文件"
+
+#: e2fsck/unix.c:196
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%12u regular file\n"
+msgid_plural ""
+"\n"
+"%12u regular files\n"
+msgstr[0] "一般文件"
+msgstr[1] "一般文件"
+
+#: e2fsck/unix.c:198
+#, fuzzy, c-format
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "文件夹"
+msgstr[1] "文件夹"
+
+#: e2fsck/unix.c:200
+#, fuzzy, c-format
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "字符设备"
+msgstr[1] "字符设备"
+
+#: e2fsck/unix.c:203
+#, fuzzy, c-format
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "å—设备"
+msgstr[1] "å—设备"
+
+#: e2fsck/unix.c:205
+#, c-format
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:207
+#, c-format
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: e2fsck/unix.c:209
+#, fuzzy, c-format
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "符å·é“¾æŽ¥"
+msgstr[1] "符å·é“¾æŽ¥"
+
+#: e2fsck/unix.c:211
+#, fuzzy, c-format
+msgid " (%u fast symbolic link)\n"
+msgid_plural " (%u fast symbolic links)\n"
+msgstr[0] "符å·é“¾æŽ¥"
+msgstr[1] "符å·é“¾æŽ¥"
+
+#: e2fsck/unix.c:215
+#, fuzzy, c-format
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "套接字"
+msgstr[1] "套接字"
+
+#: e2fsck/unix.c:219
+#, fuzzy, c-format
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "一般文件"
+msgstr[1] "一般文件"
+
+#: e2fsck/unix.c:232 misc/badblocks.c:988 misc/tune2fs.c:2023 misc/util.c:308
+#: resize/main.c:260
#, c-format
msgid "while determining whether %s is mounted."
msgstr ""
-#: e2fsck/unix.c:225
-#, c-format
-msgid "Warning! %s is mounted.\n"
+#: e2fsck/unix.c:252
+#, fuzzy, c-format
+msgid "Warning! %s is %s.\n"
msgstr "警告! %s已挂载.\n"
-#: e2fsck/unix.c:229
+#: e2fsck/unix.c:259
#, c-format
-msgid "%s is mounted. "
-msgstr "%s 已挂载."
+msgid "%s is %s.\n"
+msgstr ""
-#: e2fsck/unix.c:231
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
msgstr "无法继续, 中止.\n"
-#: e2fsck/unix.c:232
-#, c-format
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
-"\a\a\a\aWARNING!!! The filesystem is mounted. If you continue you ***WILL***\n"
-"cause ***SEVERE*** filesystem damage.\a\a\a\n"
+"WARNING!!! The filesystem is mounted. If you continue you ***WILL***\n"
+"cause ***SEVERE*** filesystem damage.\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:235
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr "你真的想è¦è¦ç»§ç»­"
-#: e2fsck/unix.c:237
-#, c-format
+#: e2fsck/unix.c:271
msgid "check aborted.\n"
msgstr "检查被中止\n"
-#: e2fsck/unix.c:318
+#: e2fsck/unix.c:364
msgid " contains a file system with errors"
msgstr ""
-#: e2fsck/unix.c:320
+#: e2fsck/unix.c:366
msgid " was not cleanly unmounted"
msgstr ""
-#: e2fsck/unix.c:322
+#: e2fsck/unix.c:368
msgid " primary superblock features different from backup"
msgstr ""
-#: e2fsck/unix.c:326
+#: e2fsck/unix.c:372
#, c-format
msgid " has been mounted %u times without being checked"
msgstr ""
-#: e2fsck/unix.c:333
+#: e2fsck/unix.c:379
msgid " has filesystem last checked time in the future"
msgstr ""
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:385
#, c-format
msgid " has gone %u days without being checked"
msgstr ""
-#: e2fsck/unix.c:348
+#: e2fsck/unix.c:394
msgid ", check forced.\n"
msgstr ", 强制检查.\n"
-#: e2fsck/unix.c:351
+#: e2fsck/unix.c:427
#, c-format
-msgid "%s: clean, %u/%u files, %u/%u blocks"
+msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr ""
-#: e2fsck/unix.c:368
+#: e2fsck/unix.c:447
msgid " (check deferred; on battery)"
msgstr ""
-#: e2fsck/unix.c:371
+#: e2fsck/unix.c:450
msgid " (check after next mount)"
msgstr "(将于下次挂载时进行检查)"
-#: e2fsck/unix.c:373
+#: e2fsck/unix.c:452
#, c-format
msgid " (check in %ld mounts)"
msgstr ""
-#: e2fsck/unix.c:521
+#: e2fsck/unix.c:603
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr ""
-#: e2fsck/unix.c:591
-#, c-format
+#: e2fsck/unix.c:672
msgid "Invalid EA version.\n"
msgstr "无效的EA版本å·.\n"
-#: e2fsck/unix.c:606
+#: e2fsck/unix.c:699
#, c-format
msgid "Unknown extended option: %s\n"
msgstr ""
-#: e2fsck/unix.c:629
+#: e2fsck/unix.c:724
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
@@ -2566,55 +2779,54 @@ msgstr ""
"e2fsck é…置文件中语法错误(%s, è¡Œ #%d)\n"
"\t%s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:794
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr ""
-#: e2fsck/unix.c:701
+#: e2fsck/unix.c:798
msgid "Invalid completion information file descriptor"
msgstr ""
-#: e2fsck/unix.c:716
+#: e2fsck/unix.c:813
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr ""
-#: e2fsck/unix.c:737
+#: e2fsck/unix.c:834
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr ""
-#: e2fsck/unix.c:768 e2fsck/unix.c:840 misc/tune2fs.c:588 misc/tune2fs.c:873
-#: misc/tune2fs.c:891
+#: e2fsck/unix.c:865 e2fsck/unix.c:939 misc/tune2fs.c:846 misc/tune2fs.c:1141
+#: misc/tune2fs.c:1159
#, c-format
msgid "Unable to resolve '%s'"
msgstr ""
-#: e2fsck/unix.c:819
+#: e2fsck/unix.c:918
msgid "The -n and -D options are incompatible."
msgstr ""
-#: e2fsck/unix.c:824
+#: e2fsck/unix.c:923
msgid "The -n and -c options are incompatible."
msgstr ""
-#: e2fsck/unix.c:829
+#: e2fsck/unix.c:928
msgid "The -n and -l/-L options are incompatible."
msgstr ""
-#: e2fsck/unix.c:869
-#, c-format
+#: e2fsck/unix.c:982
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr ""
-#: e2fsck/unix.c:917
+#: e2fsck/unix.c:1029
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:926
+#: e2fsck/unix.c:1038
#, c-format
msgid ""
"\n"
@@ -2622,177 +2834,182 @@ msgid ""
"\n"
msgstr ""
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1129
#, c-format
+msgid ""
+"MMP interval is %u seconds and total wait time is %u seconds. Please "
+"wait...\n"
+msgstr ""
+
+#: e2fsck/unix.c:1146 e2fsck/unix.c:1151
+#, fuzzy
+msgid "while checking MMP block"
+msgstr "在对åå—inode进行一致性检验是"
+
+#: e2fsck/unix.c:1153 misc/tune2fs.c:1950
+msgid ""
+"If you are sure the filesystem is not in use on any node, run:\n"
+"'tune2fs -f -E clear_mmp {device}'\n"
+msgstr ""
+
+#: e2fsck/unix.c:1204
msgid "Error: ext2fs library version out of date!\n"
msgstr "错误: ext2fs库版本过旧!\n"
-#: e2fsck/unix.c:1008
+#: e2fsck/unix.c:1211
msgid "while trying to initialize program"
msgstr ""
-#: e2fsck/unix.c:1019
+#: e2fsck/unix.c:1234
#, c-format
msgid "\tUsing %s, %s\n"
msgstr ""
-#: e2fsck/unix.c:1031
+#: e2fsck/unix.c:1246
msgid "need terminal for interactive repairs"
msgstr ""
-#: e2fsck/unix.c:1064
+#: e2fsck/unix.c:1299
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr ""
-#: e2fsck/unix.c:1066
+#: e2fsck/unix.c:1301
msgid "Superblock invalid,"
msgstr "超级å—无效,"
-#: e2fsck/unix.c:1067
+#: e2fsck/unix.c:1302
msgid "Group descriptors look bad..."
msgstr ""
-#: e2fsck/unix.c:1079
+#: e2fsck/unix.c:1312
+#, fuzzy, c-format
+msgid "%s: %s while using the backup blocks"
+msgstr "当读å–åå—inodeæ—¶"
+
+#: e2fsck/unix.c:1316
#, c-format
msgid "%s: going back to original superblock\n"
msgstr ""
-#: e2fsck/unix.c:1106
-#, c-format
+#: e2fsck/unix.c:1345
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:1112
-#, c-format
+#: e2fsck/unix.c:1352
msgid "Could this be a zero-length partition?\n"
msgstr ""
-#: e2fsck/unix.c:1114
+#: e2fsck/unix.c:1354
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr ""
-#: e2fsck/unix.c:1119
-#, c-format
+#: e2fsck/unix.c:1360
msgid "Possibly non-existent or swap device?\n"
msgstr ""
-#: e2fsck/unix.c:1121
-#, c-format
+#: e2fsck/unix.c:1362
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
-#: e2fsck/unix.c:1124
-#, c-format
+#: e2fsck/unix.c:1366
msgid "Possibly non-existent device?\n"
msgstr ""
-#: e2fsck/unix.c:1127
-#, c-format
+#: e2fsck/unix.c:1369
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-#: e2fsck/unix.c:1191
+#: e2fsck/unix.c:1433
msgid "Get a newer version of e2fsck!"
msgstr ""
-#: e2fsck/unix.c:1221
+#: e2fsck/unix.c:1477
#, c-format
msgid "while checking ext3 journal for %s"
msgstr ""
-#: e2fsck/unix.c:1232
-#, c-format
-msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+#: e2fsck/unix.c:1489
+msgid ""
+"Warning: skipping journal recovery because doing a read-only filesystem "
+"check.\n"
msgstr ""
-#: e2fsck/unix.c:1245
+#: e2fsck/unix.c:1501
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr ""
-#: e2fsck/unix.c:1251
+#: e2fsck/unix.c:1508
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr ""
-#: e2fsck/unix.c:1276
+#: e2fsck/unix.c:1532
#, c-format
msgid "%s has unsupported feature(s):"
msgstr ""
-#: e2fsck/unix.c:1292
-msgid "Warning: compression support is experimental.\n"
+#: e2fsck/unix.c:1547
+#, c-format
+msgid "%s: warning: compression support is experimental.\n"
msgstr ""
-#: e2fsck/unix.c:1297
+#: e2fsck/unix.c:1553
#, c-format
msgid ""
-"E2fsck not compiled with HTREE support,\n"
+"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-#: e2fsck/unix.c:1350
-msgid "while reading bad blocks inode"
+#: e2fsck/unix.c:1605
+#, fuzzy, c-format
+msgid "%s: %s while reading bad blocks inode\n"
msgstr "当读å–åå—inodeæ—¶"
-#: e2fsck/unix.c:1352
-#, c-format
+#: e2fsck/unix.c:1608
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr ""
-#: e2fsck/unix.c:1378
-msgid "Couldn't determine journal size"
-msgstr ""
-
-#: e2fsck/unix.c:1381
+#: e2fsck/unix.c:1649
#, c-format
msgid "Creating journal (%d blocks): "
msgstr ""
-#: e2fsck/unix.c:1388 misc/mke2fs.c:2344
-msgid ""
-"\n"
-"\twhile trying to create journal"
-msgstr ""
-
-#: e2fsck/unix.c:1391
-#, c-format
+#: e2fsck/unix.c:1659
msgid " Done.\n"
msgstr "完æˆ.\n"
-#: e2fsck/unix.c:1392
-#, c-format
+#: e2fsck/unix.c:1661
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
-#: e2fsck/unix.c:1399
-#, c-format
+#: e2fsck/unix.c:1685
msgid "Restarting e2fsck from the beginning...\n"
msgstr "正在从头开始e2fsck...\n"
-#: e2fsck/unix.c:1403
+#: e2fsck/unix.c:1689
msgid "while resetting context"
msgstr ""
-#: e2fsck/unix.c:1410
+#: e2fsck/unix.c:1696
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck被å–消.\n"
-#: e2fsck/unix.c:1415
+#: e2fsck/unix.c:1701
msgid "aborted"
msgstr "已中止"
-#: e2fsck/unix.c:1427
+#: e2fsck/unix.c:1713 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
@@ -2801,12 +3018,12 @@ msgstr ""
"\n"
"%s: ***** 文件系统已修改 *****\n"
-#: e2fsck/unix.c:1430
+#: e2fsck/unix.c:1717
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** é‡æ–°å¯åŠ¨ LINUX *****\n"
-#: e2fsck/unix.c:1438
+#: e2fsck/unix.c:1725 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
@@ -2817,43 +3034,43 @@ msgstr ""
"%s: ********** 警告: 文件系统上ä»æœ‰é”™è¯¯ **********\n"
"\n"
-#: e2fsck/unix.c:1478
+#: e2fsck/unix.c:1765
msgid "while setting block group checksum info"
msgstr ""
-#: e2fsck/util.c:138 misc/util.c:68
+#: e2fsck/util.c:190 misc/util.c:83
msgid "yY"
msgstr "yY"
-#: e2fsck/util.c:139
+#: e2fsck/util.c:191
msgid "nN"
msgstr "nN"
-#: e2fsck/util.c:153
+#: e2fsck/util.c:205
msgid "<y>"
msgstr "<y>"
-#: e2fsck/util.c:155
+#: e2fsck/util.c:207
msgid "<n>"
msgstr "<n>"
-#: e2fsck/util.c:157
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr " (y/n)"
-#: e2fsck/util.c:172
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr "å·²å–消!\n"
-#: e2fsck/util.c:187
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr "是\n"
-#: e2fsck/util.c:189
+#: e2fsck/util.c:240
msgid "no\n"
msgstr "å¦\n"
-#: e2fsck/util.c:199
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
@@ -2862,7 +3079,7 @@ msgstr ""
"%s? å¦\n"
"\n"
-#: e2fsck/util.c:203
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
@@ -2871,38 +3088,38 @@ msgstr ""
"%s? 是\n"
"\n"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "yes"
msgstr "yes"
-#: e2fsck/util.c:207
+#: e2fsck/util.c:258
msgid "no"
msgstr "no"
-#: e2fsck/util.c:221
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr ""
-#: e2fsck/util.c:226
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr ""
-#: e2fsck/util.c:231
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr ""
-#: e2fsck/util.c:243
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr ""
-#: e2fsck/util.c:248
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr ""
-#: e2fsck/util.c:260
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
@@ -2911,313 +3128,342 @@ msgid ""
"\t(i.e., without -a or -p options)\n"
msgstr ""
-#: e2fsck/util.c:341
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr "内存使用é‡: %luk/%luk (%luk/%luk), "
-#: e2fsck/util.c:345
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr "内存用é‡: %lu, "
-#: e2fsck/util.c:352
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr "时间: %5.2f/%5.2f/%5.2f\n"
-#: e2fsck/util.c:357
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr ""
-#: e2fsck/util.c:391 e2fsck/util.c:405
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr ""
-#: e2fsck/util.c:419 e2fsck/util.c:432
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr ""
-#: e2fsck/util.c:581
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr ""
-#: misc/badblocks.c:66
-msgid "done \n"
+#: e2fsck/util.c:785
+msgid ""
+"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
+"running.\n"
+msgstr ""
+
+#: misc/badblocks.c:69
+#, fuzzy
+msgid "done \n"
msgstr "å®Œæˆ \n"
-#: misc/badblocks.c:89
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
+"max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-#: misc/badblocks.c:100
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-#: misc/badblocks.c:202
+#: misc/badblocks.c:218
#, c-format
-msgid "%6.2f%% done, %s elapsed"
+msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr ""
-#: misc/badblocks.c:296
+#: misc/badblocks.c:323
msgid "Testing with random pattern: "
msgstr ""
-#: misc/badblocks.c:314
+#: misc/badblocks.c:341
msgid "Testing with pattern 0x"
msgstr ""
-#: misc/badblocks.c:342 misc/badblocks.c:411
+#: misc/badblocks.c:373 misc/badblocks.c:446
msgid "during seek"
msgstr ""
-#: misc/badblocks.c:353
+#: misc/badblocks.c:384
#, c-format
msgid "Weird value (%ld) in do_read\n"
msgstr ""
-#: misc/badblocks.c:431
+#: misc/badblocks.c:471
msgid "during ext2fs_sync_device"
msgstr ""
-#: misc/badblocks.c:450 misc/badblocks.c:714
+#: misc/badblocks.c:491 misc/badblocks.c:753
msgid "while beginning bad block list iteration"
msgstr ""
-#: misc/badblocks.c:464 misc/badblocks.c:566 misc/badblocks.c:724
+#: misc/badblocks.c:506 misc/badblocks.c:606 misc/badblocks.c:764
msgid "while allocating buffers"
msgstr ""
-#: misc/badblocks.c:468
+#: misc/badblocks.c:510
#, c-format
msgid "Checking blocks %lu to %lu\n"
msgstr "正在检查从 %lu 到 %luçš„å—\n"
-#: misc/badblocks.c:473
+#: misc/badblocks.c:515
msgid "Checking for bad blocks in read-only mode\n"
msgstr ""
-#: misc/badblocks.c:482
+#: misc/badblocks.c:524
msgid "Checking for bad blocks (read-only test): "
msgstr ""
-#: misc/badblocks.c:490 misc/badblocks.c:598 misc/badblocks.c:643
-#: misc/badblocks.c:787
+#: misc/badblocks.c:531 misc/badblocks.c:638 misc/badblocks.c:680
+#: misc/badblocks.c:827
msgid "Too many bad blocks, aborting test\n"
msgstr ""
-#: misc/badblocks.c:573
+#: misc/badblocks.c:613
msgid "Checking for bad blocks in read-write mode\n"
msgstr ""
-#: misc/badblocks.c:575 misc/badblocks.c:737
+#: misc/badblocks.c:615 misc/badblocks.c:777
#, c-format
msgid "From block %lu to %lu\n"
msgstr ""
-#: misc/badblocks.c:633
+#: misc/badblocks.c:670
msgid "Reading and comparing: "
msgstr "正在读å–并比较: "
-#: misc/badblocks.c:736
+#: misc/badblocks.c:776
msgid "Checking for bad blocks in non-destructive read-write mode\n"
msgstr ""
-#: misc/badblocks.c:742
+#: misc/badblocks.c:782
msgid "Checking for bad blocks (non-destructive read-write test)\n"
msgstr ""
-#: misc/badblocks.c:749
+#: misc/badblocks.c:789
msgid ""
"\n"
"Interrupt caught, cleaning up\n"
msgstr ""
-#: misc/badblocks.c:825
+#: misc/badblocks.c:872
#, c-format
msgid "during test data write, block %lu"
msgstr ""
-#: misc/badblocks.c:936 misc/util.c:156
+#: misc/badblocks.c:993 misc/util.c:313
#, c-format
msgid "%s is mounted; "
msgstr "%s å·²ç»æŒ‚è½½;"
-#: misc/badblocks.c:938
+#: misc/badblocks.c:995
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
-#: misc/badblocks.c:943
+#: misc/badblocks.c:1000
msgid "it's not safe to run badblocks!\n"
msgstr ""
-#: misc/badblocks.c:948 misc/util.c:167
+#: misc/badblocks.c:1005 misc/util.c:324
#, c-format
msgid "%s is apparently in use by the system; "
msgstr ""
-#: misc/badblocks.c:951
+#: misc/badblocks.c:1008
msgid "badblocks forced anyway.\n"
msgstr ""
-#: misc/badblocks.c:971
+#: misc/badblocks.c:1028
#, c-format
msgid "invalid %s - %s"
msgstr "无效的%s - %s"
-#: misc/badblocks.c:1080
+#: misc/badblocks.c:1139
#, c-format
msgid "can't allocate memory for test_pattern - %s"
msgstr ""
-#: misc/badblocks.c:1107
+#: misc/badblocks.c:1169
msgid "Maximum of one test_pattern may be specified in read-only mode"
msgstr ""
-#: misc/badblocks.c:1113
+#: misc/badblocks.c:1175
msgid "Random test_pattern is not allowed in read-only mode"
msgstr ""
-#: misc/badblocks.c:1127
+#: misc/badblocks.c:1189
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
msgstr ""
-#: misc/badblocks.c:1133
+#: misc/badblocks.c:1195
msgid "while trying to determine device size"
msgstr ""
-#: misc/badblocks.c:1138
+#: misc/badblocks.c:1200
msgid "last block"
msgstr "最åŽä¸€ä¸ªå—"
-#: misc/badblocks.c:1144
+#: misc/badblocks.c:1206
msgid "first block"
msgstr "第一个å—"
-#: misc/badblocks.c:1147
+#: misc/badblocks.c:1209
#, c-format
-msgid "invalid starting block (%lu): must be less than %lu"
+msgid "invalid starting block (%llu): must be less than %llu"
msgstr ""
-#: misc/badblocks.c:1203
+#: misc/badblocks.c:1216
+#, c-format
+msgid "invalid end block (%llu): must be 32-bit value"
+msgstr ""
+
+#: misc/badblocks.c:1272
msgid "while creating in-memory bad blocks list"
msgstr ""
-#: misc/badblocks.c:1218
-msgid "while adding to in-memory bad block list"
+#: misc/badblocks.c:1281
+msgid "input file - bad format"
msgstr ""
-#: misc/badblocks.c:1242
-#, c-format
-msgid "Pass completed, %u bad blocks found.\n"
+#: misc/badblocks.c:1289 misc/badblocks.c:1298
+msgid "while adding to in-memory bad block list"
msgstr ""
-#: misc/chattr.c:85
+#: misc/badblocks.c:1323
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
+msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
msgstr ""
-#: misc/chattr.c:153
+#: misc/chattr.c:86
+#, fuzzy, c-format
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "用法: %s [-RVadlv] [files...]\n"
+
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "错误的版本 - %s\n"
-#: misc/chattr.c:200 misc/lsattr.c:115
+#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "当å°è¯•å¯¹%s进行stat调用时"
-#: misc/chattr.c:207
+#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr ""
-#: misc/chattr.c:216 misc/chattr.c:235
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr ""
-
-#: misc/chattr.c:221 misc/chattr.c:240
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr "%s的标志被设为 "
-#: misc/chattr.c:249
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr ""
-#: misc/chattr.c:257
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr ""
-#: misc/chattr.c:261
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr ""
-#: misc/chattr.c:281
-#, c-format
+#: misc/chattr.c:267
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr ""
-#: misc/chattr.c:320
+#: misc/chattr.c:307
msgid "= is incompatible with - and +\n"
msgstr ""
-#: misc/chattr.c:328
+#: misc/chattr.c:315
msgid "Must use '-v', =, - or +\n"
msgstr ""
-#: misc/dumpe2fs.c:53
+#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
msgstr ""
-#: misc/dumpe2fs.c:182
+#: misc/dumpe2fs.c:159
+#, fuzzy
+msgid "blocks"
+msgstr "bå—"
+
+#: misc/dumpe2fs.c:169
+msgid "clusters"
+msgstr ""
+
+#: misc/dumpe2fs.c:197
#, c-format
msgid "Group %lu: (Blocks "
msgstr ""
-#: misc/dumpe2fs.c:187
-#, c-format
-msgid " Checksum 0x%04x, unused inodes %d\n"
+#: misc/dumpe2fs.c:205
+#, fuzzy, c-format
+msgid " Checksum 0x%04x"
msgstr " 校验和 0x%04x,%d个未使用的inode\n"
-#: misc/dumpe2fs.c:192
+#: misc/dumpe2fs.c:207
+#, c-format
+msgid " (EXPECTED 0x%04x)"
+msgstr ""
+
+#: misc/dumpe2fs.c:208
+#, fuzzy, c-format
+msgid ", unused inodes %u\n"
+msgstr ", %u个未使用的inodes\n"
+
+#: misc/dumpe2fs.c:213
#, c-format
msgid " %s superblock at "
msgstr ""
-#: misc/dumpe2fs.c:193
+#: misc/dumpe2fs.c:214
msgid "Primary"
msgstr "主"
-#: misc/dumpe2fs.c:193
+#: misc/dumpe2fs.c:214
msgid "Backup"
msgstr "备份"
-#: misc/dumpe2fs.c:197
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:218
+#, fuzzy
msgid ", Group descriptors at "
msgstr ", 组æ述符ä½äºŽ "
-#: misc/dumpe2fs.c:201
-#, c-format
+#: misc/dumpe2fs.c:222
msgid ""
"\n"
" Reserved GDT blocks at "
@@ -3225,20 +3471,19 @@ msgstr ""
"\n"
" ä¿ç•™çš„GDTå—ä½äºŽ "
-#: misc/dumpe2fs.c:208
-#, c-format
+#: misc/dumpe2fs.c:229
msgid " Group descriptor at "
msgstr ""
-#: misc/dumpe2fs.c:214
+#: misc/dumpe2fs.c:235
msgid " Block bitmap at "
msgstr ""
-#: misc/dumpe2fs.c:219
+#: misc/dumpe2fs.c:239
msgid ", Inode bitmap at "
msgstr ""
-#: misc/dumpe2fs.c:224
+#: misc/dumpe2fs.c:243
msgid ""
"\n"
" Inode table at "
@@ -3246,57 +3491,62 @@ msgstr ""
"\n"
" Inode表ä½äºŽ "
-#: misc/dumpe2fs.c:231
+#: misc/dumpe2fs.c:249
#, c-format
msgid ""
"\n"
-" %u free blocks, %u free inodes, %u directories%s"
+" %u free %s, %u free inodes, %u directories%s"
msgstr ""
-#: misc/dumpe2fs.c:238
+#: misc/dumpe2fs.c:256
#, c-format
msgid ", %u unused inodes\n"
msgstr ", %u个未使用的inodes\n"
-#: misc/dumpe2fs.c:241
+#: misc/dumpe2fs.c:259
msgid " Free blocks: "
msgstr " å¯ç”¨å—æ•°: "
-#: misc/dumpe2fs.c:251
+#: misc/dumpe2fs.c:274
msgid " Free inodes: "
msgstr " å¯ç”¨inodeæ•°: "
-#: misc/dumpe2fs.c:282
+#: misc/dumpe2fs.c:310
msgid "while printing bad block list"
msgstr ""
-#: misc/dumpe2fs.c:288
+#: misc/dumpe2fs.c:316
#, c-format
msgid "Bad blocks: %u"
msgstr "åå—æ•°: %u"
-#: misc/dumpe2fs.c:315 misc/tune2fs.c:281
+#: misc/dumpe2fs.c:345 misc/tune2fs.c:314
msgid "while reading journal inode"
msgstr ""
-#: misc/dumpe2fs.c:321
+#: misc/dumpe2fs.c:351
msgid "while opening journal inode"
msgstr ""
-#: misc/dumpe2fs.c:327
+#: misc/dumpe2fs.c:357
msgid "while reading journal super block"
msgstr ""
-#: misc/dumpe2fs.c:337
-#, fuzzy, c-format
+#: misc/dumpe2fs.c:364
+#, fuzzy
+msgid "Journal superblock magic number invalid!\n"
+msgstr "日志超级å—未找到!\n"
+
+#: misc/dumpe2fs.c:367
+#, fuzzy
msgid "Journal features: "
msgstr "日志使用者: %s\n"
-#: misc/dumpe2fs.c:350
+#: misc/dumpe2fs.c:380
msgid "Journal size: "
msgstr "日志大å°: "
-#: misc/dumpe2fs.c:361
+#: misc/dumpe2fs.c:391
#, c-format
msgid ""
"Journal length: %u\n"
@@ -3304,15 +3554,20 @@ msgid ""
"Journal start: %u\n"
msgstr ""
-#: misc/dumpe2fs.c:380 misc/tune2fs.c:202
+#: misc/dumpe2fs.c:398
+#, fuzzy, c-format
+msgid "Journal errno: %d\n"
+msgstr "日志使用者: %s\n"
+
+#: misc/dumpe2fs.c:415 misc/tune2fs.c:230
msgid "while reading journal superblock"
msgstr ""
-#: misc/dumpe2fs.c:388
+#: misc/dumpe2fs.c:423
msgid "Couldn't find journal superblock magic numbers"
msgstr ""
-#: misc/dumpe2fs.c:392
+#: misc/dumpe2fs.c:427
#, c-format
msgid ""
"\n"
@@ -3324,27 +3579,26 @@ msgid ""
"Journal number of users: %u\n"
msgstr ""
-#: misc/dumpe2fs.c:405
+#: misc/dumpe2fs.c:440
#, c-format
msgid "Journal users: %s\n"
msgstr "日志使用者: %s\n"
-#: misc/dumpe2fs.c:421 misc/mke2fs.c:700 misc/tune2fs.c:910
-#, c-format
+#: misc/dumpe2fs.c:456 misc/mke2fs.c:741 misc/tune2fs.c:1178
msgid "Couldn't allocate memory to parse options!\n"
msgstr ""
-#: misc/dumpe2fs.c:447
+#: misc/dumpe2fs.c:482
#, c-format
msgid "Invalid superblock parameter: %s\n"
msgstr ""
-#: misc/dumpe2fs.c:462
+#: misc/dumpe2fs.c:497
#, c-format
msgid "Invalid blocksize parameter: %s\n"
msgstr ""
-#: misc/dumpe2fs.c:473
+#: misc/dumpe2fs.c:508
#, c-format
msgid ""
"\n"
@@ -3358,95 +3612,314 @@ msgid ""
"\tblocksize=<blocksize>\n"
msgstr ""
-#: misc/dumpe2fs.c:532 misc/mke2fs.c:1462
+#: misc/dumpe2fs.c:568 misc/mke2fs.c:1709
#, c-format
msgid "\tUsing %s\n"
msgstr "\t使用 %s\n"
-#: misc/dumpe2fs.c:568 misc/e2image.c:681 misc/tune2fs.c:1626
-#: resize/main.c:312
-#, c-format
+#: misc/dumpe2fs.c:604 misc/e2image.c:1582 misc/tune2fs.c:1961
+#: resize/main.c:318
msgid "Couldn't find valid filesystem superblock.\n"
msgstr "找ä¸åˆ°æœ‰æ•ˆçš„文件系统超级å—.\n"
-#: misc/dumpe2fs.c:593
+#: misc/dumpe2fs.c:632
#, c-format
msgid ""
"\n"
"%s: %s: error reading bitmaps: %s\n"
msgstr ""
-#: misc/e2image.c:52
+#: misc/e2image.c:101
#, c-format
-msgid "Usage: %s [-rsI] device image_file\n"
+msgid "Usage: %s [ -r|Q ] [ -fr ] device image-file\n"
msgstr ""
-#: misc/e2image.c:64
-msgid "Couldn't allocate header buffer\n"
+#: misc/e2image.c:103
+#, c-format
+msgid " %s -I device image-file\n"
msgstr ""
-#: misc/e2image.c:83
+#: misc/e2image.c:104
#, c-format
-msgid "short write (only %d bytes) for writing image header"
+msgid ""
+" %s -ra [ -cfnp ] [ -o src_offset ] [ -O dest_offset ] src_fs "
+"[ dest_fs ]\n"
+msgstr ""
+
+#: misc/e2image.c:169 misc/e2image.c:576 misc/e2image.c:582
+#: misc/e2image.c:1178
+#, fuzzy
+msgid "while allocating buffer"
+msgstr "A分é…出错"
+
+#: misc/e2image.c:174
+#, fuzzy, c-format
+msgid "Writing block %llu\n"
+msgstr "正在检查从 %lu 到 %luçš„å—\n"
+
+#: misc/e2image.c:188
+#, fuzzy, c-format
+msgid "error writing block %llu"
+msgstr "å†™å— %lu (%s) 出错. "
+
+#: misc/e2image.c:191
+msgid "error in generic_write()"
+msgstr ""
+
+#: misc/e2image.c:208
+msgid "Error: header size is bigger than wrt_size\n"
msgstr ""
-#: misc/e2image.c:102
+#: misc/e2image.c:213
+msgid "Couldn't allocate header buffer\n"
+msgstr ""
+
+#: misc/e2image.c:241
msgid "while writing superblock"
msgstr ""
-#: misc/e2image.c:110
+#: misc/e2image.c:250
msgid "while writing inode table"
msgstr ""
-#: misc/e2image.c:117
+#: misc/e2image.c:258
msgid "while writing block bitmap"
msgstr ""
-#: misc/e2image.c:124
+#: misc/e2image.c:266
msgid "while writing inode bitmap"
msgstr ""
-#: misc/e2label.c:57
+#: misc/e2image.c:502
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad rec_len (%d)\n"
+msgstr "ç©ºç›®å½•å— %u (#%d),于 inode %u 中\n"
+
+#: misc/e2image.c:514
+#, fuzzy, c-format
+msgid "Corrupt directory block %llu: bad name_len (%d)\n"
+msgstr "ç©ºç›®å½•å— %u (#%d),于 inode %u 中\n"
+
+#: misc/e2image.c:555
+#, c-format
+msgid "%llu / %llu blocks (%d%%)"
+msgstr ""
+
+#: misc/e2image.c:586 misc/e2image.c:626
+msgid "Copying "
+msgstr ""
+
+#: misc/e2image.c:623
+msgid ""
+"Stopping now will destroy the filesystem, interrupt again if you are sure\n"
+msgstr ""
+
+#: misc/e2image.c:649
+#, c-format
+msgid " %s remaining at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:661 misc/e2image.c:1188
+#, fuzzy, c-format
+msgid "error reading block %llu"
+msgstr "读å–å— %lu (%s) 错误"
+
+#: misc/e2image.c:715
+#, c-format
+msgid "Copied %llu / %llu blocks (%d%%) in %s "
+msgstr ""
+
+#: misc/e2image.c:719
+#, c-format
+msgid "at %.2f MB/s"
+msgstr ""
+
+#: misc/e2image.c:755
+#, fuzzy
+msgid "while allocating l1 table"
+msgstr "正在写入inode表: "
+
+#: misc/e2image.c:800
+msgid "while allocating l2 cache"
+msgstr ""
+
+#: misc/e2image.c:823
+msgid ""
+"Warning: There are still tables in the cache while putting the cache, data "
+"will be lost so the image may not be valid.\n"
+msgstr ""
+
+#: misc/e2image.c:1145
+msgid "while allocating ext2_qcow2_image"
+msgstr ""
+
+#: misc/e2image.c:1152
+msgid "while initializing ext2_qcow2_image"
+msgstr ""
+
+#: misc/e2image.c:1211 misc/e2image.c:1229
+msgid "Programming error: multiple sequential refcount blocks created!\n"
+msgstr ""
+
+#: misc/e2image.c:1269
+#, fuzzy
+msgid "while allocating block bitmap"
+msgstr "当读å–ä½å›¾æ—¶"
+
+#: misc/e2image.c:1278
+#, fuzzy
+msgid "while allocating scramble block bitmap"
+msgstr "错误å—映射中的inode"
+
+#: misc/e2image.c:1285
+#, fuzzy
+msgid "Scanning inodes...\n"
+msgstr "正在扫æinode表"
+
+#: misc/e2image.c:1297
+#, fuzzy
+msgid "Can't allocate block buffer"
+msgstr "无法分é…å—缓存 (大å°=%d)\n"
+
+#: misc/e2image.c:1336 misc/e2image.c:1350
+#, fuzzy, c-format
+msgid "while iterating over inode %u"
+msgstr "当获å–下一个inodeæ—¶"
+
+#: misc/e2image.c:1381
+msgid "Raw and qcow2 images cannot be installed"
+msgstr ""
+
+#: misc/e2image.c:1403
+#, fuzzy
+msgid "error reading bitmaps"
+msgstr "当读å–ä½å›¾æ—¶"
+
+#: misc/e2image.c:1415
+#, fuzzy
+msgid "while opening device file"
+msgstr "在打开inode扫ææ—¶"
+
+#: misc/e2image.c:1426
+#, fuzzy
+msgid "while restoring the image table"
+msgstr "当读å–åå—inodeæ—¶"
+
+#: misc/e2image.c:1523
+msgid "-a option can only be used with raw or QCOW2 images."
+msgstr ""
+
+#: misc/e2image.c:1529
+msgid "Offsets are only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1534
+msgid "Move mode is only allowed with raw images."
+msgstr ""
+
+#: misc/e2image.c:1539
+msgid "Move mode requires all data mode."
+msgstr ""
+
+#: misc/e2image.c:1549
+msgid "checking if mounted"
+msgstr ""
+
+#: misc/e2image.c:1556
+msgid ""
+"\n"
+"Running e2image on a R/W mounted filesystem can result in an\n"
+"inconsistent image which will not be useful for debugging purposes.\n"
+"Use -f option if you really want to do that.\n"
+msgstr ""
+
+#: misc/e2image.c:1608
+msgid "QCOW2 image can not be written to the stdout!\n"
+msgstr ""
+
+#: misc/e2image.c:1614
+msgid "Can not stat output\n"
+msgstr ""
+
+#: misc/e2image.c:1624
+#, c-format
+msgid "Image (%s) is compressed\n"
+msgstr ""
+
+#: misc/e2image.c:1627
+#, c-format
+msgid "Image (%s) is encrypted\n"
+msgstr ""
+
+#: misc/e2image.c:1630
+#, c-format
+msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
+msgstr ""
+
+#: misc/e2image.c:1639
+#, fuzzy
+msgid "The -c option only supported in raw mode\n"
+msgstr "-oåªèƒ½è¢«æŒ‡å®šä¸€æ¬¡"
+
+#: misc/e2image.c:1644
+msgid "The -c option not supported when writing to stdout\n"
+msgstr ""
+
+#: misc/e2image.c:1651
+msgid "while allocating check_buf"
+msgstr ""
+
+#: misc/e2image.c:1657
+#, fuzzy
+msgid "The -p option only supported in raw mode\n"
+msgstr "-oåªèƒ½è¢«æŒ‡å®šä¸€æ¬¡"
+
+#: misc/e2image.c:1667
+#, c-format
+msgid "%d blocks already contained the data to be copied\n"
+msgstr ""
+
+#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
msgstr "e2label: 无法打开 %s\n"
-#: misc/e2label.c:62
+#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
msgstr ""
-#: misc/e2label.c:67
+#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
msgstr "e2label: 读å–superblock出错\n"
-#: misc/e2label.c:71
+#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: ä¸æ˜¯ä¸€ä¸ªex2文件系统\n"
-#: misc/e2label.c:96 misc/tune2fs.c:1761
+#: misc/e2label.c:97 misc/tune2fs.c:2126
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr ""
-#: misc/e2label.c:99
+#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
msgstr ""
-#: misc/e2label.c:104
+#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr ""
-#: misc/e2label.c:116 misc/tune2fs.c:580
+#: misc/e2label.c:117 misc/tune2fs.c:838
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "用法: e2label device [æ–°å·æ ‡]\n"
-#: misc/e2undo.c:35
+#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
msgstr ""
@@ -3455,7 +3928,7 @@ msgstr ""
msgid "Failed to read the file system data \n"
msgstr ""
-#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:205
+#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
msgid "Failed tdb_fetch %s\n"
msgstr "tdb_fetch %s 失败\n"
@@ -3469,31 +3942,31 @@ msgstr ""
msgid "The file system UUID didn't match \n"
msgstr ""
-#: misc/e2undo.c:162
+#: misc/e2undo.c:163
#, c-format
msgid "Failed tdb_open %s\n"
msgstr "tdb_open %s 失败\n"
-#: misc/e2undo.c:168
+#: misc/e2undo.c:169
#, c-format
msgid "Error while determining whether %s is mounted.\n"
msgstr ""
-#: misc/e2undo.c:174
+#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
msgstr ""
-#: misc/e2undo.c:183
+#: misc/e2undo.c:184
#, c-format
msgid "Failed to open %s\n"
msgstr "打开%s失败\n"
-#: misc/e2undo.c:209
+#: misc/e2undo.c:210
#, c-format
-msgid "Replayed transaction of size %zd at location %ld\n"
+msgid "Replayed transaction of size %zd at location %llu\n"
msgstr ""
-#: misc/e2undo.c:215
+#: misc/e2undo.c:216
#, c-format
msgid "Failed write %s\n"
msgstr "写入%s失败\n"
@@ -3508,143 +3981,149 @@ msgstr ""
msgid "WARNING: bad format on line %d of %s\n"
msgstr ""
-#: misc/fsck.c:368
+#: misc/fsck.c:370
msgid ""
-"\a\a\aWARNING: Your /etc/fstab does not contain the fsck passno\n"
+"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 ""
-#: misc/fsck.c:477
+#: misc/fsck.c:478
#, c-format
msgid "fsck: %s: not found\n"
msgstr ""
-#: misc/fsck.c:593
+#: misc/fsck.c:594
#, c-format
msgid "%s: wait: No more child process?!?\n"
msgstr ""
-#: misc/fsck.c:615
+#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
msgstr ""
-#: misc/fsck.c:621
+#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
msgstr ""
-#: misc/fsck.c:660
+#: misc/fsck.c:661
#, c-format
msgid "Finished with %s (exit status %d)\n"
msgstr ""
-#: misc/fsck.c:720
+#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
msgstr ""
-#: misc/fsck.c:741
+#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
msgstr ""
-#: misc/fsck.c:760
+#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
msgstr ""
-#: misc/fsck.c:883
+#: misc/fsck.c:884
#, c-format
-msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgid ""
+"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
+"number\n"
msgstr ""
-#: misc/fsck.c:910
+#: misc/fsck.c:911
#, c-format
msgid "fsck: cannot check %s: fsck.%s not found\n"
msgstr ""
-#: misc/fsck.c:966
+#: misc/fsck.c:967
msgid "Checking all file systems.\n"
msgstr "正在检查所有文件系统.\n"
-#: misc/fsck.c:1057
+#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
msgstr "--请ç¨å€™-- (å®Œæˆ %d)\n"
-#: misc/fsck.c:1077
-msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr "用法: Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+#: misc/fsck.c:1078
+msgid ""
+"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr ""
+"用法: Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] "
+"[filesys ...]\n"
-#: misc/fsck.c:1119
+#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
msgstr "%s: 设备过多\n"
-#: misc/fsck.c:1152 misc/fsck.c:1238
+#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: å‚数过多\n"
-#: misc/lsattr.c:73
+#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
msgstr "用法: %s [-RVadlv] [files...]\n"
-#: misc/lsattr.c:83
+#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
msgstr ""
-#: misc/lsattr.c:90
+#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
msgstr ""
-#: misc/mke2fs.c:108
+#: misc/mke2fs.c:123
#, c-format
msgid ""
-"Usage: %s [-c|-l filename] [-b block-size] [-f fragment-size]\n"
+"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-i bytes-per-inode] [-I inode-size] [-J journal-options]\n"
-"\t[-G meta group size] [-N number-of-inodes]\n"
+"\t[-G flex-group-size] [-N number-of-inodes]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
+"count]\n"
msgstr ""
-#: misc/mke2fs.c:210
+#: misc/mke2fs.c:250
#, c-format
msgid "Running command: %s\n"
msgstr "正在执行命令: %s\n"
-#: misc/mke2fs.c:214
+#: misc/mke2fs.c:254
#, c-format
msgid "while trying to run '%s'"
msgstr "当å°è¯•è¿è¡Œ '%s' æ—¶"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:261
msgid "while processing list of bad blocks from program"
msgstr ""
-#: misc/mke2fs.c:248
+#: misc/mke2fs.c:288
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr ""
-#: misc/mke2fs.c:250
+#: misc/mke2fs.c:290
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
-#: misc/mke2fs.c:253
+#: misc/mke2fs.c:293
msgid "Aborting....\n"
msgstr "正在终止...\n"
-#: misc/mke2fs.c:273
+#: misc/mke2fs.c:313
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
@@ -3652,189 +4131,252 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:292
+#: misc/mke2fs.c:332
msgid "while marking bad blocks as used"
msgstr ""
-#: misc/mke2fs.c:350
-msgid "done \n"
-msgstr "å®Œæˆ \n"
-
-#: misc/mke2fs.c:364
+#: misc/mke2fs.c:384
msgid "Writing inode tables: "
msgstr "正在写入inode表: "
-#: misc/mke2fs.c:388
+#: misc/mke2fs.c:405
#, c-format
msgid ""
"\n"
-"Could not write %d blocks in inode table starting at %u: %s\n"
+"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
-#: misc/mke2fs.c:412
+#: misc/mke2fs.c:419 misc/mke2fs.c:2444 misc/mke2fs.c:2729
+msgid "done \n"
+msgstr "å®Œæˆ \n"
+
+#: misc/mke2fs.c:430
msgid "while creating root dir"
msgstr ""
-#: misc/mke2fs.c:419
+#: misc/mke2fs.c:437
msgid "while reading root inode"
msgstr "当读å–åå—inodeæ—¶"
-#: misc/mke2fs.c:433
+#: misc/mke2fs.c:449
msgid "while setting root inode ownership"
msgstr ""
-#: misc/mke2fs.c:451
+#: misc/mke2fs.c:467
msgid "while creating /lost+found"
msgstr ""
-#: misc/mke2fs.c:458
+#: misc/mke2fs.c:474
msgid "while looking up /lost+found"
msgstr ""
-#: misc/mke2fs.c:471
+#: misc/mke2fs.c:487
msgid "while expanding /lost+found"
msgstr ""
-#: misc/mke2fs.c:486
+#: misc/mke2fs.c:502
msgid "while setting bad block inode"
msgstr ""
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:529
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr ""
-#: misc/mke2fs.c:523
+#: misc/mke2fs.c:539
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr ""
-#: misc/mke2fs.c:539
+#: misc/mke2fs.c:555
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr ""
-#: misc/mke2fs.c:555
+#: misc/mke2fs.c:571
msgid "while initializing journal superblock"
msgstr ""
-#: misc/mke2fs.c:561
+#: misc/mke2fs.c:579
msgid "Zeroing journal device: "
msgstr "正在将日志设备清零: "
-#: misc/mke2fs.c:574
+#: misc/mke2fs.c:591
#, c-format
-msgid "while zeroing journal device (block %u, count %d)"
+msgid "while zeroing journal device (block %llu, count %d)"
msgstr ""
-#: misc/mke2fs.c:590
+#: misc/mke2fs.c:609
msgid "while writing journal superblock"
msgstr ""
-#: misc/mke2fs.c:606
+#: misc/mke2fs.c:624
#, c-format
+msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
+msgstr ""
+
+#: misc/mke2fs.c:632
+#, fuzzy, c-format
msgid ""
-"warning: %u blocks unused.\n"
+"warning: %llu blocks unused.\n"
"\n"
msgstr ""
"警告: %u å—未使用.\n"
"\n"
-#: misc/mke2fs.c:611
+#: misc/mke2fs.c:637
#, c-format
msgid "Filesystem label=%s\n"
msgstr "文件系统标签=%s\n"
-#: misc/mke2fs.c:612
-msgid "OS type: "
+#: misc/mke2fs.c:640
+#, fuzzy, c-format
+msgid "OS type: %s\n"
msgstr "æ“作系统:"
-#: misc/mke2fs.c:617
+#: misc/mke2fs.c:642
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "å—大å°=%u (log=%u)\n"
-#: misc/mke2fs.c:619
+#: misc/mke2fs.c:646
+#, fuzzy, c-format
+msgid "Cluster size=%u (log=%u)\n"
+msgstr "å—大å°=%u (log=%u)\n"
+
+#: misc/mke2fs.c:650
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "分å—大å°=%u (log=%u)\n"
-#: misc/mke2fs.c:621
+#: misc/mke2fs.c:652
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr ""
-#: misc/mke2fs.c:623
+#: misc/mke2fs.c:654
#, c-format
-msgid "%u inodes, %u blocks\n"
+msgid "%u inodes, %llu blocks\n"
msgstr ""
-#: misc/mke2fs.c:625
+#: misc/mke2fs.c:656
#, c-format
-msgid "%u blocks (%2.2f%%) reserved for the super user\n"
+msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr ""
-#: misc/mke2fs.c:628
+#: misc/mke2fs.c:659
#, c-format
msgid "First data block=%u\n"
msgstr "第一个数æ®å—=%u\n"
-#: misc/mke2fs.c:630
+#: misc/mke2fs.c:661
+#, c-format
+msgid "Root directory owner=%u:%u\n"
+msgstr ""
+
+#: misc/mke2fs.c:663
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr ""
-#: misc/mke2fs.c:634
+#: misc/mke2fs.c:667
#, c-format
msgid "%u block groups\n"
msgstr ""
-#: misc/mke2fs.c:636
+#: misc/mke2fs.c:669
#, c-format
msgid "%u block group\n"
msgstr ""
-#: misc/mke2fs.c:637
+#: misc/mke2fs.c:672
+#, c-format
+msgid "%u blocks per group, %u clusters per group\n"
+msgstr ""
+
+#: misc/mke2fs.c:675
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr ""
-#: misc/mke2fs.c:639
+#: misc/mke2fs.c:677
#, c-format
msgid "%u inodes per group\n"
msgstr ""
-#: misc/mke2fs.c:646
-#, c-format
+#: misc/mke2fs.c:686
+#, fuzzy, c-format
+msgid "Filesystem UUID: %s\n"
+msgstr "文件系统标签=%s\n"
+
+#: misc/mke2fs.c:687
msgid "Superblock backups stored on blocks: "
msgstr ""
-#: misc/mke2fs.c:725
+#: misc/mke2fs.c:764
+#, c-format
+msgid "%s requires '-O 64bit'\n"
+msgstr ""
+
+#: misc/mke2fs.c:770
+#, c-format
+msgid "'%s' must be before 'resize=%u'\n"
+msgstr ""
+
+#: misc/mke2fs.c:783
+#, fuzzy, c-format
+msgid "Invalid desc_size: '%s'\n"
+msgstr "无效的新大å°:%s\n"
+
+#: misc/mke2fs.c:796
+#, fuzzy, c-format
+msgid "Invalid offset: %s\n"
+msgstr "无效的新大å°:%s\n"
+
+#: misc/mke2fs.c:810 misc/tune2fs.c:1206
+#, fuzzy, c-format
+msgid "Invalid mmp_update_interval: %s\n"
+msgstr "设置了无效的挂载选项: %s\n"
+
+#: misc/mke2fs.c:824
+#, c-format
+msgid "Invalid # of backup superbocks: %s\n"
+msgstr ""
+
+#: misc/mke2fs.c:846
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:740
+#: misc/mke2fs.c:861
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:762
+#: misc/mke2fs.c:884
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:769
-#, c-format
+#: misc/mke2fs.c:891
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
-#: misc/mke2fs.c:793
-#, c-format
+#: misc/mke2fs.c:915
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:942 misc/mke2fs.c:951
+#, fuzzy, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr "设置了无效的挂载选项: %s\n"
+
+#: misc/mke2fs.c:976
+#, fuzzy, c-format
+msgid "Invalid quotatype parameter: %s\n"
+msgstr "设置了无效的挂载选项: %s\n"
+
+#: misc/mke2fs.c:987
#, c-format
msgid ""
"\n"
@@ -3844,17 +4386,25 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tmmp_update_interval=<interval>\n"
+"\tnum_backup_sb=<0|1|2>\n"
"\tstride=<RAID per-disk data chunk in blocks>\n"
"\tstripe-width=<RAID stride * data disks in blocks>\n"
+"\toffset=<offset to create the file system>\n"
"\tresize=<resize maximum size in blocks>\n"
+"\tpacked_meta_blocks=<0 to disable, 1 to enable>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
+"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
+"\tquotatype=<usr OR grp>\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:837
+#: misc/mke2fs.c:1013
#, c-format
msgid ""
"\n"
@@ -3862,38 +4412,42 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:869
+#: misc/mke2fs.c:1053
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-#: misc/mke2fs.c:882 misc/tune2fs.c:369
+#: misc/mke2fs.c:1066 misc/tune2fs.c:416
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "设置了无效的文件系统选项: %s\n"
-#: misc/mke2fs.c:1019
+#: misc/mke2fs.c:1078 misc/tune2fs.c:357
+#, c-format
+msgid "Invalid mount option set: %s\n"
+msgstr "设置了无效的挂载选项: %s\n"
+
+#: misc/mke2fs.c:1218
#, c-format
msgid ""
"\n"
"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
-#: misc/mke2fs.c:1023
-#, c-format
+#: misc/mke2fs.c:1222
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:1027
-#, fuzzy, c-format
+#: misc/mke2fs.c:1226
+#, fuzzy
msgid "Aborting...\n"
msgstr "正在终止...\n"
-#: misc/mke2fs.c:1064
+#: misc/mke2fs.c:1267
#, c-format
msgid ""
"\n"
@@ -3901,128 +4455,131 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:1276
+#: misc/mke2fs.c:1435
+#, fuzzy
+msgid "Couldn't allocate memory for new PATH.\n"
+msgstr "无法为tdb文件å分é…内存\n"
+
+#: misc/mke2fs.c:1476
+#, c-format
+msgid "Couldn't init profile successfully (error: %ld).\n"
+msgstr ""
+
+#: misc/mke2fs.c:1509
#, c-format
msgid "invalid block size - %s"
msgstr "无效的å—å¤§å° - %s"
-#: misc/mke2fs.c:1280
+#: misc/mke2fs.c:1513
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
-#: misc/mke2fs.c:1296
-#, c-format
-msgid "invalid fragment size - %s"
-msgstr ""
+#: misc/mke2fs.c:1529
+#, fuzzy, c-format
+msgid "invalid cluster size - %s"
+msgstr "无效的å—å¤§å° - %s"
-#: misc/mke2fs.c:1302
-#, c-format
-msgid "Warning: fragments not supported. Ignoring -f option\n"
+#: misc/mke2fs.c:1539
+msgid "'-R' is deprecated, use '-E' instead"
msgstr ""
-#: misc/mke2fs.c:1309
+#: misc/mke2fs.c:1551
msgid "Illegal number for blocks per group"
msgstr ""
-#: misc/mke2fs.c:1314
+#: misc/mke2fs.c:1556
msgid "blocks per group must be multiple of 8"
msgstr ""
-#: misc/mke2fs.c:1322
+#: misc/mke2fs.c:1564
msgid "Illegal number for flex_bg size"
msgstr ""
-#: misc/mke2fs.c:1328
+#: misc/mke2fs.c:1570
msgid "flex_bg size must be a power of 2"
msgstr "flex_bg 大å°å¿…须是2的次方"
-#: misc/mke2fs.c:1338
+#: misc/mke2fs.c:1580
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr ""
-#: misc/mke2fs.c:1348
+#: misc/mke2fs.c:1590
#, c-format
-msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgid "invalid inode size - %s"
+msgstr "无效的inodeå¤§å° - %s"
+
+#: misc/mke2fs.c:1603
+msgid ""
+"Warning: -K option is deprecated and should not be used anymore. Use '-E "
+"nodiscard' extended option instead!\n"
msgstr ""
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1614
msgid "in malloc for bad_blocks_filename"
msgstr ""
-#: misc/mke2fs.c:1372
+#: misc/mke2fs.c:1627
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr ""
-#: misc/mke2fs.c:1390
+#: misc/mke2fs.c:1642
#, c-format
-msgid "bad revision level - %s"
+msgid "bad num inodes - %s"
msgstr ""
-#: misc/mke2fs.c:1402
-#, c-format
-msgid "invalid inode size - %s"
-msgstr "无效的inodeå¤§å° - %s"
-
-#: misc/mke2fs.c:1422
+#: misc/mke2fs.c:1659
#, c-format
-msgid "bad num inodes - %s"
+msgid "bad revision level - %s"
msgstr ""
-#: misc/mke2fs.c:1487 misc/mke2fs.c:2299
+#: misc/mke2fs.c:1673
+#, fuzzy
+msgid "The -t option may only be used once"
+msgstr "-oåªèƒ½è¢«æŒ‡å®šä¸€æ¬¡"
+
+#: misc/mke2fs.c:1681
+#, fuzzy
+msgid "The -T option may only be used once"
+msgstr "-oåªèƒ½è¢«æŒ‡å®šä¸€æ¬¡"
+
+#: misc/mke2fs.c:1734 misc/mke2fs.c:2810
#, c-format
msgid "while trying to open journal device %s\n"
msgstr ""
-#: misc/mke2fs.c:1493
+#: misc/mke2fs.c:1740
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
-#: misc/mke2fs.c:1499
+#: misc/mke2fs.c:1746
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr ""
-#: misc/mke2fs.c:1508
-#, c-format
-msgid "%d-byte blocks too big for system (max %d)"
-msgstr ""
-
-#: misc/mke2fs.c:1512
-#, c-format
-msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-
-#: misc/mke2fs.c:1521
+#: misc/mke2fs.c:1757
#, fuzzy, c-format
-msgid "invalid blocks count '%s' on device '%s'"
+msgid "invalid blocks '%s' on device '%s'"
msgstr "无效的å—å¤§å° - %s"
-#: misc/mke2fs.c:1531
+#: misc/mke2fs.c:1777
msgid "filesystem"
msgstr "文件系统"
-#: misc/mke2fs.c:1567
-#, c-format
-msgid ""
-"%s: Size of device %s too big to be expressed in 32 bits\n"
-"\tusing a blocksize of %d.\n"
-msgstr ""
-
-#: misc/mke2fs.c:1576 resize/main.c:381
+#: misc/mke2fs.c:1790 resize/main.c:368
msgid "while trying to determine filesystem size"
msgstr ""
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1796
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
msgstr ""
-#: misc/mke2fs.c:1590
+#: misc/mke2fs.c:1803
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
@@ -4030,119 +4587,156 @@ msgid ""
"\tto re-read your partition table.\n"
msgstr ""
-#: misc/mke2fs.c:1608
+#: misc/mke2fs.c:1820
msgid "Filesystem larger than apparent device size."
msgstr ""
-#: misc/mke2fs.c:1614
-#, c-format
+#: misc/mke2fs.c:1840
msgid "Failed to parse fs types list\n"
msgstr ""
-#: misc/mke2fs.c:1648
-msgid "fs_types for mke2fs.conf resolution: "
+#: misc/mke2fs.c:1881
+msgid "while trying to determine hardware sector size"
+msgstr ""
+
+#: misc/mke2fs.c:1887
+#, fuzzy
+msgid "while trying to determine physical sector size"
+msgstr "当å°è¯•å¯¹%s进行stat调用时"
+
+#: misc/mke2fs.c:1919
+msgid "while setting blocksize; too small for device\n"
msgstr ""
-#: misc/mke2fs.c:1655
+#: misc/mke2fs.c:1924
#, c-format
-msgid "Filesystem features not supported with revision 0 filesystems\n"
+msgid ""
+"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
msgstr ""
-#: misc/mke2fs.c:1662
+#: misc/mke2fs.c:1948
#, c-format
+msgid ""
+"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
+"\tin 32 bits using a blocksize of %d.\n"
+msgstr ""
+
+#: misc/mke2fs.c:1964
+msgid "fs_types for mke2fs.conf resolution: "
+msgstr ""
+
+#: misc/mke2fs.c:1971
+msgid "Filesystem features not supported with revision 0 filesystems\n"
+msgstr ""
+
+#: misc/mke2fs.c:1979
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1674
-#, c-format
+#: misc/mke2fs.c:1991
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1692
-#, c-format
+#: misc/mke2fs.c:2005
+#, fuzzy, c-format
+msgid "invalid reserved blocks percent - %lf"
+msgstr "无效的å—å¤§å° - %s"
+
+#: misc/mke2fs.c:2022
msgid ""
-"The resize_inode and meta_bg features are not compatible.\n"
-"They can not be both enabled simultaneously.\n"
+"Extents MUST be enabled for a 64-bit filesystem. Pass -O extents to "
+"rectify.\n"
msgstr ""
-#: misc/mke2fs.c:1709
-msgid "while trying to determine hardware sector size"
+#: misc/mke2fs.c:2042
+msgid "The cluster size may not be smaller than the block size.\n"
msgstr ""
-#: misc/mke2fs.c:1715
-#, fuzzy
-msgid "while trying to determine physical sector size"
-msgstr "当å°è¯•å¯¹%s进行stat调用时"
+#: misc/mke2fs.c:2048
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
-#: misc/mke2fs.c:1746
-msgid "while setting blocksize; too small for device\n"
+#: misc/mke2fs.c:2067
+#, c-format
+msgid "warning: Unable to get device geometry for %s\n"
msgstr ""
-#: misc/mke2fs.c:1751
+#: misc/mke2fs.c:2070
#, c-format
-msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgid "%s alignment is offset by %lu bytes.\n"
msgstr ""
-#: misc/mke2fs.c:1771
+#: misc/mke2fs.c:2072
#, c-format
-msgid "warning: Unable to get device geometry for %s\n"
+msgid ""
+"This may result in very poor performance, (re)-partitioning suggested.\n"
msgstr ""
-#: misc/mke2fs.c:1774
+#: misc/mke2fs.c:2093
#, c-format
-msgid "%s alignment is offset by %lu bytes.\n"
+msgid "%d-byte blocks too big for system (max %d)"
msgstr ""
-#: misc/mke2fs.c:1776
+#: misc/mke2fs.c:2097
#, c-format
-msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgid ""
+"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
msgstr ""
-#: misc/mke2fs.c:1810
+#: misc/mke2fs.c:2145
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:2152
+msgid ""
+"The resize_inode and meta_bg features are not compatible.\n"
+"They can not be both enabled simultaneously.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2161
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:2172
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
-#: misc/mke2fs.c:1819
+#: misc/mke2fs.c:2181
msgid "blocks per group count out of range"
msgstr ""
-#: misc/mke2fs.c:1834
+#: misc/mke2fs.c:2205
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
-#: misc/mke2fs.c:1846
+#: misc/mke2fs.c:2217
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr ""
-#: misc/mke2fs.c:1860
+#: misc/mke2fs.c:2235
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr ""
-#: misc/mke2fs.c:1865
+#: misc/mke2fs.c:2242
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr ""
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:2256
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
-"\tfilesystem with %lu blocks, specify higher inode_ratio (-i)\n"
+"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
-#: misc/mke2fs.c:1973 misc/tune2fs.c:1544
-msgid "Couldn't allocate memory for tdb filename\n"
-msgstr "无法为tdb文件å分é…内存\n"
-
-#: misc/mke2fs.c:1986 misc/tune2fs.c:1566
-#, c-format
-msgid "while trying to delete %s"
-msgstr "当å°è¯•åˆ é™¤ %s æ—¶"
-
-#: misc/mke2fs.c:1996
+#: misc/mke2fs.c:2383
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
@@ -4150,93 +4744,114 @@ msgid ""
"\n"
msgstr ""
-#: misc/mke2fs.c:2036
-#, c-format
-msgid "Calling BLKDISCARD from %llu to %llu "
-msgstr ""
+#: misc/mke2fs.c:2397
+#, fuzzy
+msgid "while trying to setup undo file\n"
+msgstr "当å°è¯•å¯¹%s进行stat调用时"
-#: misc/mke2fs.c:2040
-#, c-format
-msgid "failed.\n"
-msgstr ""
+#: misc/mke2fs.c:2423
+#, fuzzy
+msgid "Discarding device blocks: "
+msgstr "正在读å–目录å—"
-#: misc/mke2fs.c:2042
-#, c-format
-msgid "succeeded.\n"
+#: misc/mke2fs.c:2439
+msgid "failed - "
msgstr ""
-#: misc/mke2fs.c:2109
+#: misc/mke2fs.c:2561
msgid "while setting up superblock"
msgstr ""
-#: misc/mke2fs.c:2119
-#, c-format
-msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
+#: misc/mke2fs.c:2577
+msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
msgstr ""
-#: misc/mke2fs.c:2183
+#: misc/mke2fs.c:2665
#, c-format
msgid "unknown os - %s"
msgstr "未知æ“作系统 - %s"
-#: misc/mke2fs.c:2237
+#: misc/mke2fs.c:2717
+#, fuzzy
+msgid "Allocating group tables: "
+msgstr "正在写入inode表: "
+
+#: misc/mke2fs.c:2725
msgid "while trying to allocate filesystem tables"
msgstr ""
-#: misc/mke2fs.c:2268
+#: misc/mke2fs.c:2734
+msgid ""
+"\n"
+"\twhile converting subcluster bitmap"
+msgstr ""
+
+#: misc/mke2fs.c:2777
#, c-format
-msgid "while zeroing block %u at end of filesystem"
+msgid "while zeroing block %llu at end of filesystem"
msgstr ""
-#: misc/mke2fs.c:2281
+#: misc/mke2fs.c:2791
msgid "while reserving blocks for online resize"
msgstr ""
-#: misc/mke2fs.c:2292 misc/tune2fs.c:517
+#: misc/mke2fs.c:2803 misc/tune2fs.c:679
msgid "journal"
msgstr "日志"
-#: misc/mke2fs.c:2304
+#: misc/mke2fs.c:2815
#, c-format
msgid "Adding journal to device %s: "
msgstr ""
-#: misc/mke2fs.c:2311
+#: misc/mke2fs.c:2822
#, c-format
msgid ""
"\n"
"\twhile trying to add journal to device %s"
msgstr ""
-#: misc/mke2fs.c:2316 misc/mke2fs.c:2348 misc/tune2fs.c:546 misc/tune2fs.c:560
-#, c-format
+#: misc/mke2fs.c:2827 misc/mke2fs.c:2858 misc/tune2fs.c:708 misc/tune2fs.c:727
msgid "done\n"
msgstr "完æˆ\n"
-#: misc/mke2fs.c:2325
-#, c-format
+#: misc/mke2fs.c:2834
msgid "Skipping journal creation in super-only mode\n"
msgstr ""
-#: misc/mke2fs.c:2336
+#: misc/mke2fs.c:2845
#, c-format
msgid "Creating journal (%u blocks): "
msgstr ""
-#: misc/mke2fs.c:2353
+#: misc/mke2fs.c:2854
+msgid ""
+"\n"
+"\twhile trying to create journal"
+msgstr ""
+
+#: misc/mke2fs.c:2866 misc/tune2fs.c:483
+msgid ""
+"\n"
+"Error while enabling multiple mount protection feature."
+msgstr ""
+
+#: misc/mke2fs.c:2871
#, c-format
+msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
+msgstr ""
+
+#: misc/mke2fs.c:2888
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
-#: misc/mke2fs.c:2358
-#, c-format
+#: misc/mke2fs.c:2895
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
msgstr ""
-#: misc/mke2fs.c:2361
-#, c-format
+#: misc/mke2fs.c:2897
msgid ""
"done\n"
"\n"
@@ -4244,12 +4859,11 @@ msgstr ""
"完æˆ\n"
"\n"
-#: misc/mklost+found.c:49
-#, c-format
+#: misc/mklost+found.c:50
msgid "Usage: mklost+found\n"
msgstr "用法: mklost+found\n"
-#: misc/partinfo.c:39
+#: misc/partinfo.c:41
#, c-format
msgid ""
"Usage: %s device...\n"
@@ -4264,234 +4878,307 @@ msgstr ""
"例如: %s /dev/hda\n"
"\n"
-#: misc/partinfo.c:49
+#: misc/partinfo.c:51
#, c-format
msgid "Cannot open %s: %s"
msgstr "无法打开 %s: %s"
-#: misc/partinfo.c:55
+#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
msgstr ""
-#: misc/partinfo.c:63
+#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
msgstr "无法获得 %s 的大å°: %s"
-#: misc/partinfo.c:69
+#: misc/partinfo.c:71
#, c-format
msgid "%s: h=%3d s=%3d c=%4d start=%8d size=%8lu end=%8d\n"
msgstr ""
-#: misc/tune2fs.c:96
+#: misc/tune2fs.c:112
msgid "Please run e2fsck on the filesystem.\n"
msgstr "请在这个文件系统上è¿è¡Œ e2fsck.\n"
-#: misc/tune2fs.c:105
+#: misc/tune2fs.c:121
#, 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] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] \n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
+"mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
+"\t[-Q quota_options]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-#: misc/tune2fs.c:190
+#: misc/tune2fs.c:217
msgid "while trying to open external journal"
msgstr ""
-#: misc/tune2fs.c:194
+#: misc/tune2fs.c:222
#, c-format
msgid "%s is not a journal device.\n"
msgstr "%s ä¸æ˜¯ä¸€ä¸ªæ—¥å¿—设备.\n"
-#: misc/tune2fs.c:209
+#: misc/tune2fs.c:237
msgid "Journal superblock not found!\n"
msgstr "日志超级å—未找到!\n"
-#: misc/tune2fs.c:221
+#: misc/tune2fs.c:248
msgid "Filesystem's UUID not found on journal device.\n"
msgstr ""
-#: misc/tune2fs.c:242
-msgid "Journal NOT removed\n"
-msgstr "日志_没有_被删除\n"
+#: misc/tune2fs.c:269
+msgid ""
+"Cannot locate journal device. It was NOT removed\n"
+"Use -f option to remove missing journal device.\n"
+msgstr ""
-#: misc/tune2fs.c:248
+#: misc/tune2fs.c:277
msgid "Journal removed\n"
msgstr "日志已删除\n"
-#: misc/tune2fs.c:288
+#: misc/tune2fs.c:321
msgid "while reading bitmaps"
msgstr "当读å–ä½å›¾æ—¶"
-#: misc/tune2fs.c:296
+#: misc/tune2fs.c:329
msgid "while clearing journal inode"
msgstr "当读å–åå—inodeæ—¶"
-#: misc/tune2fs.c:307
+#: misc/tune2fs.c:340
msgid "while writing journal inode"
msgstr ""
-#: misc/tune2fs.c:322
-#, c-format
-msgid "Invalid mount option set: %s\n"
-msgstr "设置了无效的挂载选项: %s\n"
-
-#: misc/tune2fs.c:338
-#, c-format
+#: misc/tune2fs.c:372 misc/tune2fs.c:385
msgid "(and reboot afterwards!)\n"
msgstr "(并且过åŽé‡å¯!)\n"
-#: misc/tune2fs.c:372
+#: misc/tune2fs.c:419
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr ""
-#: misc/tune2fs.c:378
+#: misc/tune2fs.c:425
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr ""
-#: misc/tune2fs.c:387
+#: misc/tune2fs.c:434
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-#: misc/tune2fs.c:395
+#: misc/tune2fs.c:443
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
msgstr ""
-#: misc/tune2fs.c:428
+#: misc/tune2fs.c:462
+msgid ""
+"Setting filesystem feature 'sparse_super' not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:475
+msgid ""
+"The multiple mount protection feature can't\n"
+"be set if the filesystem is mounted or\n"
+"read-only.\n"
+msgstr ""
+
+#: misc/tune2fs.c:493
+#, c-format
+msgid "Multiple mount protection has been enabled with update interval %ds.\n"
+msgstr ""
+
+#: misc/tune2fs.c:502
+msgid ""
+"The multiple mount protection feature cannot\n"
+"be disabled if the filesystem is readonly.\n"
+msgstr ""
+
+#: misc/tune2fs.c:510
+#, fuzzy
+msgid "Error while reading bitmaps\n"
+msgstr "当读å–ä½å›¾æ—¶"
+
+#: misc/tune2fs.c:519
+#, c-format
+msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
+msgstr ""
+
+#: misc/tune2fs.c:524
+#, fuzzy
+msgid "while reading MMP block."
+msgstr "当读å–åå—inodeæ—¶"
+
+#: misc/tune2fs.c:556
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-#: misc/tune2fs.c:439
+#: misc/tune2fs.c:567
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-#: misc/tune2fs.c:512
+#: misc/tune2fs.c:627
+msgid ""
+"\n"
+"Warning: '^quota' option overrides '-Q'arguments.\n"
+msgstr ""
+
+#: misc/tune2fs.c:672
msgid "The filesystem already has a journal.\n"
msgstr ""
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:692
#, c-format
msgid ""
"\n"
"\twhile trying to open journal on %s\n"
msgstr ""
-#: misc/tune2fs.c:534
+#: misc/tune2fs.c:696
#, c-format
msgid "Creating journal on device %s: "
msgstr ""
-#: misc/tune2fs.c:542
+#: misc/tune2fs.c:704
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr ""
-#: misc/tune2fs.c:548
+#: misc/tune2fs.c:710
msgid "Creating journal inode: "
msgstr ""
-#: misc/tune2fs.c:557
+#: misc/tune2fs.c:724
msgid ""
"\n"
"\twhile trying to create journal file"
msgstr ""
-#: misc/tune2fs.c:623
+#: misc/tune2fs.c:799
+#, fuzzy
+msgid "Couldn't allocate memory to parse quota options!\n"
+msgstr "无法为tdb文件å分é…内存\n"
+
+#: misc/tune2fs.c:821
+msgid ""
+"\n"
+"Bad quota options specified.\n"
+"\n"
+"Following valid quota options are available (pass by separating with "
+"comma):\n"
+"\t[^]usrquota\n"
+"\t[^]grpquota\n"
+"\n"
+"\n"
+msgstr ""
+
+#: misc/tune2fs.c:881
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr ""
-#: misc/tune2fs.c:647 misc/tune2fs.c:660
+#: misc/tune2fs.c:909 misc/tune2fs.c:922
#, c-format
msgid "bad mounts count - %s"
msgstr "错误挂载计数 - %s"
-#: misc/tune2fs.c:676
+#: misc/tune2fs.c:938
#, c-format
msgid "bad error behavior - %s"
msgstr ""
-#: misc/tune2fs.c:703
+#: misc/tune2fs.c:965
#, c-format
msgid "bad gid/group name - %s"
msgstr ""
-#: misc/tune2fs.c:736
+#: misc/tune2fs.c:998
#, c-format
msgid "bad interval - %s"
msgstr ""
-#: misc/tune2fs.c:765
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved block ratio - %s"
msgstr ""
-#: misc/tune2fs.c:780
+#: misc/tune2fs.c:1042
msgid "-o may only be specified once"
msgstr "-oåªèƒ½è¢«æŒ‡å®šä¸€æ¬¡"
-#: misc/tune2fs.c:790
+#: misc/tune2fs.c:1051
msgid "-O may only be specified once"
msgstr "-Oåªèƒ½è¢«æŒ‡å®šä¸€æ¬¡"
-#: misc/tune2fs.c:800
+#: misc/tune2fs.c:1068
#, c-format
msgid "bad reserved blocks count - %s"
msgstr ""
-#: misc/tune2fs.c:829
+#: misc/tune2fs.c:1097
#, c-format
msgid "bad uid/user name - %s"
msgstr ""
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:1114
#, c-format
msgid "bad inode size - %s"
msgstr "无效的inodeå¤§å° - %s"
-#: misc/tune2fs.c:853
+#: misc/tune2fs.c:1121
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Inode 大å°å¿…须是2的次方- %s"
-#: misc/tune2fs.c:942
+#: misc/tune2fs.c:1215
+#, c-format
+msgid "mmp_update_interval too big: %lu\n"
+msgstr ""
+
+#: misc/tune2fs.c:1220
+#, c-format
+msgid "Setting multiple mount protection update interval to %lu second\n"
+msgid_plural ""
+"Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/tune2fs.c:1243
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr ""
-#: misc/tune2fs.c:957
+#: misc/tune2fs.c:1258
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr ""
-#: misc/tune2fs.c:972
+#: misc/tune2fs.c:1273
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr ""
-#: misc/tune2fs.c:978
+#: misc/tune2fs.c:1279
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr ""
-#: misc/tune2fs.c:998
-#, c-format
+#: misc/tune2fs.c:1298
msgid ""
"\n"
"Bad options specified.\n"
@@ -4500,36 +5187,57 @@ msgid ""
"\tis set off by an equals ('=') sign.\n"
"\n"
"Valid extended options are:\n"
+"\tclear_mmp\n"
+"\thash_alg=<hash algorithm>\n"
+"\tmount_opts=<extended default mount options>\n"
"\tstride=<RAID per-disk chunk size in blocks>\n"
"\tstripe_width=<RAID stride*data disks in blocks>\n"
-"\thash_alg=<hash algorithm>\n"
"\ttest_fs\n"
"\t^test_fs\n"
msgstr ""
-#: misc/tune2fs.c:1471 resize/resize2fs.c:790
+#: misc/tune2fs.c:1764
+#, fuzzy
+msgid "Failed to read inode bitmap\n"
+msgstr "当读å–ä½å›¾æ—¶"
+
+#: misc/tune2fs.c:1769
+#, fuzzy
+msgid "Failed to read block bitmap\n"
+msgstr "错误å—映射中的inode"
+
+#: misc/tune2fs.c:1786 resize/resize2fs.c:925
msgid "blocks to be moved"
msgstr ""
-#: misc/tune2fs.c:1474
+#: misc/tune2fs.c:1789
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr ""
-#: misc/tune2fs.c:1480
+#: misc/tune2fs.c:1795
msgid "Not enough space to increase inode size \n"
msgstr ""
-#: misc/tune2fs.c:1485
+#: misc/tune2fs.c:1800
msgid "Failed to relocate blocks during inode resize \n"
msgstr ""
-#: misc/tune2fs.c:1517
+#: misc/tune2fs.c:1832
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
-#: misc/tune2fs.c:1576
+#: misc/tune2fs.c:1859
+msgid "Couldn't allocate memory for tdb filename\n"
+msgstr "无法为tdb文件å分é…内存\n"
+
+#: misc/tune2fs.c:1880
+#, c-format
+msgid "while trying to delete %s"
+msgstr "当å°è¯•åˆ é™¤ %s æ—¶"
+
+#: misc/tune2fs.c:1888
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
@@ -4540,164 +5248,260 @@ msgstr ""
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1637
+#: misc/tune2fs.c:1957
+#, c-format
+msgid ""
+"MMP block magic is bad. Try to fix it by running:\n"
+"'e2fsck -f %s'\n"
+msgstr ""
+
+#: misc/tune2fs.c:1975
#, c-format
msgid "The inode size is already %lu\n"
msgstr "inode大å°å·²ç»æ˜¯ %lu\n"
-#: misc/tune2fs.c:1642
-#, c-format
-msgid "Shrinking the inode size is not supported\n"
+#: misc/tune2fs.c:1982
+msgid "Shrinking inode size is not supported\n"
msgstr ""
-#: misc/tune2fs.c:1685
+#: misc/tune2fs.c:1987
+#, fuzzy, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr "无效的inodeå¤§å° - %s"
+
+#: misc/tune2fs.c:2034
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr ""
-#: misc/tune2fs.c:1691
+#: misc/tune2fs.c:2040
#, c-format
msgid "Setting current mount count to %d\n"
msgstr ""
-#: misc/tune2fs.c:1696
+#: misc/tune2fs.c:2045
#, c-format
msgid "Setting error behavior to %d\n"
msgstr ""
-#: misc/tune2fs.c:1701
+#: misc/tune2fs.c:2050
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr ""
-#: misc/tune2fs.c:1706
+#: misc/tune2fs.c:2055
+#, fuzzy, c-format
+msgid "interval between checks is too big (%lu)"
+msgstr "ä¿ç•™å—çš„æ•°é‡å¤ªå¤§ (%lu)"
+
+#: misc/tune2fs.c:2062
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr ""
-#: misc/tune2fs.c:1713
-#, c-format
-msgid "Setting reserved blocks percentage to %g%% (%u blocks)\n"
-msgstr ""
+#: misc/tune2fs.c:2069
+#, fuzzy, c-format
+msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
+msgstr "ä¿ç•™å—çš„æ•°é‡å¤ªå¤§ (%lu)"
-#: misc/tune2fs.c:1720
-#, c-format
-msgid "reserved blocks count is too big (%lu)"
+#: misc/tune2fs.c:2075
+#, fuzzy, c-format
+msgid "reserved blocks count is too big (%llu)"
msgstr "ä¿ç•™å—çš„æ•°é‡å¤ªå¤§ (%lu)"
-#: misc/tune2fs.c:1726
-#, c-format
-msgid "Setting reserved blocks count to %lu\n"
-msgstr ""
+#: misc/tune2fs.c:2082
+#, fuzzy, c-format
+msgid "Setting reserved blocks count to %llu\n"
+msgstr "ä¿ç•™å—çš„æ•°é‡å¤ªå¤§ (%lu)"
-#: misc/tune2fs.c:1732
+#: misc/tune2fs.c:2088
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
msgstr ""
-#: misc/tune2fs.c:1739
+#: misc/tune2fs.c:2092
+msgid ""
+"\n"
+"Setting the sparse superblock flag not supported\n"
+"for filesystems with the meta_bg feature enabled.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2103
#, c-format
msgid ""
"\n"
"Sparse superblock flag set. %s"
msgstr ""
-#: misc/tune2fs.c:1744
+#: misc/tune2fs.c:2108
msgid ""
"\n"
-"Clearing the sparse superflag not supported.\n"
+"Clearing the sparse superblock flag not supported.\n"
msgstr ""
-#: misc/tune2fs.c:1751
+#: misc/tune2fs.c:2116
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr ""
-#: misc/tune2fs.c:1757
+#: misc/tune2fs.c:2122
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr ""
-#: misc/tune2fs.c:1808
+#: misc/tune2fs.c:2154
+msgid "Error in using clear_mmp. It must be used with -f\n"
+msgstr ""
+
+#: misc/tune2fs.c:2172
+msgid ""
+"The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2191
+msgid "The UUID may only be changed when the filesystem is unmounted.\n"
+msgstr ""
+
+#: misc/tune2fs.c:2219
msgid "Invalid UUID format\n"
msgstr "无效的 UUID æ ¼å¼\n"
-#: misc/tune2fs.c:1820
+#: misc/tune2fs.c:2232
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
-#: misc/tune2fs.c:1827
+#: misc/tune2fs.c:2240
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-#: misc/tune2fs.c:1839
+#: misc/tune2fs.c:2253
#, c-format
msgid "Setting inode size %lu\n"
msgstr "正在将inode大å°è®¾ç½®ä¸º %lu\n"
-#: misc/tune2fs.c:1849
+#: misc/tune2fs.c:2256
+#, fuzzy
+msgid "Failed to change inode size\n"
+msgstr "打开%s失败\n"
+
+#: misc/tune2fs.c:2267
#, c-format
msgid "Setting stride size to %d\n"
msgstr ""
-#: misc/tune2fs.c:1854
+#: misc/tune2fs.c:2272
#, c-format
msgid "Setting stripe width to %d\n"
msgstr ""
-#: misc/util.c:72
+#: misc/tune2fs.c:2279
+#, c-format
+msgid "Setting extended default mount options to '%s'\n"
+msgstr ""
+
+#: misc/util.c:90
+#, c-format
+msgid "<proceeding>\n"
+msgstr ""
+
+#: misc/util.c:94
+#, fuzzy, c-format
+msgid "Proceed anyway (or wait %d seconds) ? (y,n) "
+msgstr "无论如何也è¦ç»§ç»­? (y,n) "
+
+#: misc/util.c:98
msgid "Proceed anyway? (y,n) "
msgstr "无论如何也è¦ç»§ç»­? (y,n) "
-#: misc/util.c:93
+#: misc/util.c:129
+#, fuzzy, c-format
+msgid "\tlast mounted on %s on %s"
+msgstr "错误挂载计数 - %s"
+
+#: misc/util.c:132
+#, fuzzy, c-format
+msgid "\tlast mounted on %s"
+msgstr "错误挂载计数 - %s"
+
+#: misc/util.c:135
+#, c-format
+msgid "\tcreated on %s"
+msgstr ""
+
+#: misc/util.c:138
+#, c-format
+msgid "\tlast modified on %s"
+msgstr ""
+
+#: misc/util.c:172
#, c-format
-msgid "Could not stat %s --- %s\n"
-msgstr "无法对 %s 进行 stat 调用 --- %s\n"
+msgid "Found a %s partition table in %s\n"
+msgstr ""
+
+#: misc/util.c:202
+#, fuzzy, c-format
+msgid "Creating regular file %s\n"
+msgstr "一般文件"
+
+#: misc/util.c:205
+#, fuzzy, c-format
+msgid "Could not open %s: %s\n"
+msgstr "无法打开 %s: %s"
-#: misc/util.c:96
+#: misc/util.c:208
msgid ""
"\n"
"The device apparently does not exist; did you specify it correctly?\n"
msgstr ""
-#: misc/util.c:107
+#: misc/util.c:230
#, fuzzy, c-format
msgid "%s is not a block special device.\n"
msgstr "错误:%s ä¸æ˜¯å—设备\n"
-#: misc/util.c:136
+#: misc/util.c:252
+#, c-format
+msgid "%s contains a %s file system labelled '%s'\n"
+msgstr ""
+
+#: misc/util.c:255
+#, fuzzy, c-format
+msgid "%s contains a %s file system\n"
+msgstr "正在检查所有文件系统.\n"
+
+#: misc/util.c:292
#, c-format
msgid "%s is entire device, not just one partition!\n"
msgstr ""
-#: misc/util.c:158
+#: misc/util.c:315
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
-#: misc/util.c:163
+#: misc/util.c:320
#, c-format
msgid "will not make a %s here!\n"
msgstr ""
-#: misc/util.c:170
+#: misc/util.c:327
msgid "mke2fs forced anyway.\n"
msgstr "mke2fs 强制执行.\n"
-#: misc/util.c:186
+#: misc/util.c:343
msgid "Couldn't allocate memory to parse journal options!\n"
msgstr ""
-#: misc/util.c:211
+#: misc/util.c:368
#, c-format
msgid ""
"\n"
"Could not find journal device matching %s\n"
msgstr ""
-#: misc/util.c:232
+#: misc/util.c:395
msgid ""
"\n"
"Bad journal options specified.\n"
@@ -4708,12 +5512,13 @@ msgid ""
"Valid journal options are:\n"
"\tsize=<journal size in megabytes>\n"
"\tdevice=<journal device>\n"
+"\tlocation=<journal location>\n"
"\n"
"The journal size must be between 1024 and 10240000 filesystem blocks.\n"
"\n"
msgstr ""
-#: misc/util.c:262
+#: misc/util.c:426
msgid ""
"\n"
"Filesystem too small for a journal\n"
@@ -4721,7 +5526,7 @@ msgstr ""
"\n"
"文件系统å°å¾—无法记录日志\n"
-#: misc/util.c:269
+#: misc/util.c:433
#, c-format
msgid ""
"\n"
@@ -4729,92 +5534,218 @@ msgid ""
"between 1024 and 10240000 blocks. Aborting.\n"
msgstr ""
-#: misc/util.c:277
+#: misc/util.c:441
msgid ""
"\n"
"Journal size too big for filesystem.\n"
msgstr ""
-#: misc/util.c:287
+#: misc/util.c:455
#, 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 ""
-#: misc/uuidgen.c:31
+#: misc/uuidd.c:48
#, c-format
-msgid "Usage: %s [-r] [-t]\n"
-msgstr "用法: %s [-r] [-t]\n"
+msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
+msgstr ""
-#: resize/extent.c:201
-msgid "# Extent dump:\n"
+#: misc/uuidd.c:50
+#, c-format
+msgid " %s [-r|t] [-n num] [-s socketpath]\n"
msgstr ""
-#: resize/extent.c:202
+#: misc/uuidd.c:52
#, c-format
-msgid "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n"
+msgid " %s -k\n"
+msgstr ""
+
+#: misc/uuidd.c:154
+#, fuzzy
+msgid "bad arguments"
+msgstr "%s: å‚数过多\n"
+
+#: misc/uuidd.c:172
+msgid "connect"
msgstr ""
-#: resize/extent.c:205
+#: misc/uuidd.c:191
+msgid "write"
+msgstr ""
+
+#: misc/uuidd.c:199
+msgid "read count"
+msgstr ""
+
+#: misc/uuidd.c:205
+#, fuzzy
+msgid "bad response length"
+msgstr "无效的åŽç¼€é•¿åº¦"
+
+#: misc/uuidd.c:270
+#, c-format
+msgid "uuidd daemon already running at pid %s\n"
+msgstr ""
+
+#: misc/uuidd.c:278
+#, c-format
+msgid "Couldn't create unix stream socket: %s"
+msgstr ""
+
+#: misc/uuidd.c:307
+#, c-format
+msgid "Couldn't bind unix socket %s: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:315
#, c-format
-msgid "#\t\t %u -> %u (%d)\n"
+msgid "Couldn't listen on unix socket %s: %s\n"
msgstr ""
-#: resize/main.c:42
+#: misc/uuidd.c:353
+#, fuzzy, c-format
+msgid "Error reading from client, len = %d\n"
+msgstr "读å–@i %i出错: %m\n"
+
+#: misc/uuidd.c:361
+#, c-format
+msgid "operation %d, incoming num = %d\n"
+msgstr ""
+
+#: misc/uuidd.c:380
+#, c-format
+msgid "Generated time UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:390
+#, c-format
+msgid "Generated random UUID: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:399
+#, c-format
+msgid "Generated time UUID %s and subsequent UUID\n"
+msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:420
+#, c-format
+msgid "Generated %d UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:432
+#, fuzzy, c-format
+msgid "Invalid operation %d\n"
+msgstr "无效的EA版本å·.\n"
+
+#: misc/uuidd.c:476 misc/uuidd.c:498
+#, c-format
+msgid "Bad number: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:533 misc/uuidd.c:562
+#, fuzzy, c-format
+msgid "Error calling uuidd daemon (%s): %s\n"
+msgstr "创建根@d (%s) 时出错: %m\n"
+
+#: misc/uuidd.c:543
+#, c-format
+msgid "%s and subsequent UUID\n"
+msgid_plural "%s and subsequent %d UUIDs\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: misc/uuidd.c:547
+msgid "List of UUID's:\n"
+msgstr ""
+
+#: misc/uuidd.c:568
+#, c-format
+msgid "Unexpected reply length from server %d\n"
+msgstr ""
+
+#: misc/uuidd.c:585
+#, c-format
+msgid "Couldn't kill uuidd running at pid %d: %s\n"
+msgstr ""
+
+#: misc/uuidd.c:591
+#, c-format
+msgid "Killed uuidd running at pid %d\n"
+msgstr ""
+
+#: misc/uuidgen.c:32
+#, c-format
+msgid "Usage: %s [-r] [-t]\n"
+msgstr "用法: %s [-r] [-t]\n"
+
+#: resize/extent.c:202
+msgid "# Extent dump:\n"
+msgstr ""
+
+#: resize/extent.c:203
+#, c-format
+msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
+msgstr ""
+
+#: resize/main.c:44
#, c-format
msgid ""
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-#: resize/main.c:64
+#: resize/main.c:66
msgid "Extending the inode table"
msgstr "正在扩充inode表"
-#: resize/main.c:67
+#: resize/main.c:69
msgid "Relocating blocks"
msgstr "正在é‡å®šä½å—"
-#: resize/main.c:70
+#: resize/main.c:72
msgid "Scanning inode table"
msgstr "正在扫æinode表"
-#: resize/main.c:73
+#: resize/main.c:75
msgid "Updating inode references"
msgstr "正在更新inode引用"
-#: resize/main.c:76
+#: resize/main.c:78
msgid "Moving inode table"
msgstr "移动inode表"
-#: resize/main.c:79
+#: resize/main.c:81
msgid "Unknown pass?!?"
msgstr "未知步骤?!?"
-#: resize/main.c:82
+#: resize/main.c:84
#, c-format
msgid "Begin pass %d (max = %lu)\n"
msgstr ""
-#: resize/main.c:265
+#: resize/main.c:155
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed at\n"
+"your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
+msgstr ""
+
+#: resize/main.c:272
#, c-format
msgid "while opening %s"
msgstr "打开%s时"
-#: resize/main.c:277
+#: resize/main.c:280
#, c-format
msgid "while getting stat information for %s"
msgstr "获å–%sçš„statä¿¡æ¯æ—¶å‡ºé”™ã€‚"
-#: resize/main.c:338
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-
-#: resize/main.c:351 resize/main.c:451
+#: resize/main.c:338 resize/main.c:451
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
@@ -4823,136 +5754,966 @@ msgstr ""
"请先è¿è¡Œ 'e2fsck -f %s'.\n"
"\n"
-#: resize/main.c:355
+#: resize/main.c:342
#, c-format
-msgid "Estimated minimum size of the filesystem: %u\n"
+msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr ""
-#: resize/main.c:391
+#: resize/main.c:378
#, c-format
msgid "Invalid new size: %s\n"
msgstr "无效的新大å°:%s\n"
-#: resize/main.c:403
+#: resize/main.c:394
+msgid "New size too large to be expressed in 32 bits\n"
+msgstr ""
+
+#: resize/main.c:402
#, c-format
-msgid "New size smaller than minimum (%u)\n"
+msgid "New size smaller than minimum (%llu)\n"
msgstr ""
-#: resize/main.c:409
+#: resize/main.c:408
#, fuzzy
msgid "Invalid stride length"
msgstr "无效的åŽç¼€é•¿åº¦"
-#: resize/main.c:433
+#: resize/main.c:432
#, c-format
msgid ""
-"The containing partition (or device) is only %u (%dk) blocks.\n"
-"You requested a new size of %u blocks.\n"
+"The containing partition (or device) is only %llu (%dk) blocks.\n"
+"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
-#: resize/main.c:440
+#: resize/main.c:439
#, c-format
msgid ""
-"The filesystem is already %u blocks long. Nothing to do!\n"
+"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
-#: resize/main.c:455
+#: resize/main.c:456
#, c-format
-msgid "Resizing the filesystem on %s to %u (%dk) blocks.\n"
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/main.c:464
+#: resize/main.c:465
#, c-format
msgid "while trying to resize %s"
msgstr "当å°è¯•è°ƒæ•´%s的大å°æ—¶"
-#: resize/main.c:467
+#: resize/main.c:468
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"after the aborted resize operation.\n"
msgstr ""
-#: resize/main.c:473
+#: resize/main.c:474
#, c-format
msgid ""
-"The filesystem on %s is now %u blocks long.\n"
+"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
-#: resize/main.c:488
+#: resize/main.c:489
#, c-format
msgid "while trying to truncate %s"
msgstr "当å°è¯•å¯¹%s进行stat调用时"
-#: resize/online.c:37
+#: resize/online.c:82
+#, fuzzy
+msgid "kernel does not support online resize with sparse_super2"
+msgstr "内核ä¸æ”¯æŒåœ¨çº¿(online)调整大å°"
+
+#: resize/online.c:87
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
-#: resize/online.c:41
+#: resize/online.c:91
msgid "On-line shrinking not supported"
msgstr ""
-#: resize/online.c:60
+#: resize/online.c:116
msgid "Filesystem does not support online resizing"
msgstr "文件系统ä¸æ”¯æŒåœ¨çº¿(online)调整大å°"
-#: resize/online.c:67
+#: resize/online.c:125
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr ""
+
+#: resize/online.c:132
+#, fuzzy
+msgid "Kernel does not support resizing a file system this large"
+msgstr "内核ä¸æ”¯æŒåœ¨çº¿(online)调整大å°"
+
+#: resize/online.c:140
#, c-format
msgid "while trying to open mountpoint %s"
msgstr ""
-#: resize/online.c:75
+#: resize/online.c:145
+#, c-format
+msgid "Old resize interface requested.\n"
+msgstr ""
+
+#: resize/online.c:164 resize/online.c:181
msgid "Permission denied to resize filesystem"
msgstr "没有调整文件系统大å°çš„æƒé™"
-#: resize/online.c:78
-msgid "Kernel does not support online resizing"
-msgstr "内核ä¸æ”¯æŒåœ¨çº¿(online)调整大å°"
-
-#: resize/online.c:81
+#: resize/online.c:167 resize/online.c:187
msgid "While checking for on-line resizing support"
msgstr "当检查在线文件系统大å°è°ƒæ•´æ”¯æŒæ—¶"
-#: resize/online.c:110
+#: resize/online.c:184
+msgid "Kernel does not support online resizing"
+msgstr "内核ä¸æ”¯æŒåœ¨çº¿(online)调整大å°"
+
+#: resize/online.c:223
#, c-format
-msgid "Performing an on-line resize of %s to %u (%dk) blocks.\n"
+msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/online.c:120
+#: resize/online.c:233
msgid "While trying to extend the last group"
msgstr ""
-#: resize/online.c:179
+#: resize/online.c:287
#, c-format
msgid "While trying to add group #%d"
msgstr ""
-#: resize/online.c:190
+#: resize/online.c:298
#, c-format
-msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgid ""
+"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
+"this system.\n"
msgstr "文件系统 %s 被挂载在 %s,并且这个系统ä¸æ”¯æŒåœ¨çº¿è°ƒæ•´å¤§å°.\n"
-#: resize/resize2fs.c:350
+#: resize/resize2fs.c:402
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr ""
-#: resize/resize2fs.c:582
+#: resize/resize2fs.c:685
msgid "reserved blocks"
msgstr "ä¿ç•™çš„å—"
-#: resize/resize2fs.c:795
+#: resize/resize2fs.c:930
msgid "meta-data blocks"
msgstr "元数æ®å—"
-#: resize/resize2fs.c:1752
-#, c-format
+#: resize/resize2fs.c:1031 resize/resize2fs.c:1828
+#, fuzzy
+msgid "new meta blocks"
+msgstr "元数æ®å—"
+
+#: resize/resize2fs.c:2046
+msgid "Should never happen! No sb in last super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2051
+msgid "Should never happen! Unexpected old_desc in super_sparse bg?\n"
+msgstr ""
+
+#: resize/resize2fs.c:2129
msgid "Should never happen: resize inode corrupt!\n"
msgstr ""
+#: lib/ext2fs/ext2_err.c:11
+msgid "EXT2FS Library version 1.42.10"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:12
+msgid "Wrong magic number for ext2_filsys structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:13
+msgid "Wrong magic number for badblocks_list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:14
+msgid "Wrong magic number for badblocks_iterate structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:15
+msgid "Wrong magic number for inode_scan structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:16
+msgid "Wrong magic number for io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:17
+msgid "Wrong magic number for unix io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:18
+msgid "Wrong magic number for io_manager structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:19
+msgid "Wrong magic number for block_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:20
+msgid "Wrong magic number for inode_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:21
+msgid "Wrong magic number for generic_bitmap structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:22
+msgid "Wrong magic number for test io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:23
+msgid "Wrong magic number for directory block list structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:24
+msgid "Wrong magic number for icount structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:25
+msgid "Wrong magic number for Powerquest io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:26
+msgid "Wrong magic number for ext2 file structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:27
+msgid "Wrong magic number for Ext2 Image Header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:28
+msgid "Wrong magic number for inode io_channel structure"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:29
+msgid "Wrong magic number for ext4 extent handle"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:30
+#, fuzzy
+msgid "Bad magic number in super-block"
+msgstr "读å–日志超级å—\n"
+
+#: lib/ext2fs/ext2_err.c:31
+msgid "Filesystem revision too high"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:32
+msgid "Attempt to write to filesystem opened read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:33
+#, fuzzy
+msgid "Can't read group descriptors"
+msgstr ", 组æ述符ä½äºŽ "
+
+#: lib/ext2fs/ext2_err.c:34
+#, fuzzy
+msgid "Can't write group descriptors"
+msgstr ", 组æ述符ä½äºŽ "
+
+#: lib/ext2fs/ext2_err.c:35
+msgid "Corrupt group descriptor: bad block for block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:36
+msgid "Corrupt group descriptor: bad block for inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:37
+msgid "Corrupt group descriptor: bad block for inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:38
+#, fuzzy
+msgid "Can't write an inode bitmap"
+msgstr "inode ä½å›¾"
+
+#: lib/ext2fs/ext2_err.c:39
+#, fuzzy
+msgid "Can't read an inode bitmap"
+msgstr "inode ä½å›¾"
+
+#: lib/ext2fs/ext2_err.c:40
+#, fuzzy
+msgid "Can't write a block bitmap"
+msgstr "å—ä½å›¾"
+
+#: lib/ext2fs/ext2_err.c:41
+#, fuzzy
+msgid "Can't read a block bitmap"
+msgstr "å—ä½å›¾"
+
+#: lib/ext2fs/ext2_err.c:42
+#, fuzzy
+msgid "Can't write an inode table"
+msgstr "正在扫æinode表"
+
+#: lib/ext2fs/ext2_err.c:43
+#, fuzzy
+msgid "Can't read an inode table"
+msgstr "正在扫æinode表"
+
+#: lib/ext2fs/ext2_err.c:44
+msgid "Can't read next inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:45
+msgid "Filesystem has unexpected block size"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:46
+msgid "EXT2 directory corrupted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:47
+msgid "Attempt to read block from filesystem resulted in short read"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:48
+msgid "Attempt to write block to filesystem resulted in short write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:49
+msgid "No free space in the directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:50
+#, fuzzy
+msgid "Inode bitmap not loaded"
+msgstr "inode ä½å›¾"
+
+#: lib/ext2fs/ext2_err.c:51
+#, fuzzy
+msgid "Block bitmap not loaded"
+msgstr "å—ä½å›¾"
+
+#: lib/ext2fs/ext2_err.c:52
+#, fuzzy
+msgid "Illegal inode number"
+msgstr "éžæ³•çš„å—æ•°é‡!\n"
+
+#: lib/ext2fs/ext2_err.c:53
+#, fuzzy
+msgid "Illegal block number"
+msgstr "éžæ³•çš„å—æ•°é‡!\n"
+
+#: lib/ext2fs/ext2_err.c:54
+msgid "Internal error in ext2fs_expand_dir"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:55
+msgid "Not enough space to build proposed filesystem"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:56
+msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:57
+msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:58
+msgid "Illegal block number passed to ext2fs_test_block_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:59
+msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:60
+msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:61
+msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:62
+msgid "Attempt to fudge end of block bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:63
+msgid "Attempt to fudge end of inode bitmap past the real end"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:64
+#, fuzzy
+msgid "Illegal indirect block found"
+msgstr "正在读å–目录å—"
+
+#: lib/ext2fs/ext2_err.c:65
+msgid "Illegal doubly indirect block found"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:66
+msgid "Illegal triply indirect block found"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:67
+msgid "Block bitmaps are not the same"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:68
+msgid "Inode bitmaps are not the same"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:69
+msgid "Illegal or malformed device name"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:70
+msgid "A block group is missing an inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:71
+msgid "The ext2 superblock is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:72
+msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:73
+msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:74
+msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:75
+msgid "Too many symbolic links encountered."
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:76
+msgid "The callback function will not handle this case"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:77
+msgid "The inode is from a bad block in the inode table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:78
+#, fuzzy
+msgid "Filesystem has unsupported feature(s)"
+msgstr "文件系统ä¸æ”¯æŒåœ¨çº¿(online)调整大å°"
+
+#: lib/ext2fs/ext2_err.c:79
+#, fuzzy
+msgid "Filesystem has unsupported read-only feature(s)"
+msgstr "文件系统ä¸æ”¯æŒåœ¨çº¿(online)调整大å°"
+
+#: lib/ext2fs/ext2_err.c:80
+msgid "IO Channel failed to seek on read or write"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:81
+#, fuzzy
+msgid "Memory allocation failed"
+msgstr "A分é…出错"
+
+#: lib/ext2fs/ext2_err.c:82
+msgid "Invalid argument passed to ext2 library"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:83
+#, fuzzy
+msgid "Could not allocate block in ext2 filesystem"
+msgstr "无法分é…å—缓存 (大å°=%d)\n"
+
+#: lib/ext2fs/ext2_err.c:84
+#, fuzzy
+msgid "Could not allocate inode in ext2 filesystem"
+msgstr "e2label: ä¸æ˜¯ä¸€ä¸ªex2文件系统\n"
+
+#: lib/ext2fs/ext2_err.c:85
+msgid "Ext2 inode is not a directory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:86
+msgid "Too many references in table"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:87
+msgid "File not found by ext2_lookup"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:88
+msgid "File open read-only"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:89
+#, fuzzy
+msgid "Ext2 directory block not found"
+msgstr "ç©ºç›®å½•å— %u (#%d),于 inode %u 中\n"
+
+#: lib/ext2fs/ext2_err.c:90
+msgid "Ext2 directory already exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:91
+msgid "Unimplemented ext2 library function"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:92
+msgid "User cancel requested"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:93
+msgid "Ext2 file too big"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:94
+msgid "Supplied journal device not a block device"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:95
+#, fuzzy
+msgid "Journal superblock not found"
+msgstr "日志超级å—未找到!\n"
+
+#: lib/ext2fs/ext2_err.c:96
+msgid "Journal must be at least 1024 blocks"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:97
+msgid "Unsupported journal version"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:98
+msgid "Error loading external journal"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:99
+#, fuzzy
+msgid "Journal not found"
+msgstr "日志超级å—未找到!\n"
+
+#: lib/ext2fs/ext2_err.c:100
+msgid "Directory hash unsupported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:101
+#, fuzzy
+msgid "Illegal extended attribute block number"
+msgstr "a扩展属性"
+
+#: lib/ext2fs/ext2_err.c:102
+msgid "Cannot create filesystem with requested number of inodes"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:103
+msgid "E2image snapshot not in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:104
+#, fuzzy
+msgid "Too many reserved group descriptor blocks"
+msgstr "<组æ述符inode>"
+
+#: lib/ext2fs/ext2_err.c:105
+msgid "Resize inode is corrupt"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:106
+msgid "Tried to set block bmap with missing indirect block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:107
+msgid "TDB: Success"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:108
+msgid "TDB: Corrupt database"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:109
+msgid "TDB: IO Error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:110
+msgid "TDB: Locking error"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:111
+msgid "TDB: Out of memory"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:112
+msgid "TDB: Record exists"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:113
+msgid "TDB: Lock exists on other keys"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:114
+msgid "TDB: Invalid parameter"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:115
+msgid "TDB: Record does not exist"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:116
+msgid "TDB: Write not permitted"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:117
+msgid "Ext2fs directory block list is empty"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:118
+msgid "Attempt to modify a block mapping via a read-only block iterator"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:119
+msgid "Wrong magic number for ext4 extent saved path"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:120
+msgid "Wrong magic number for 64-bit generic bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:121
+msgid "Wrong magic number for 64-bit block bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:122
+msgid "Wrong magic number for 64-bit inode bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:123
+msgid "Wrong magic number --- RESERVED_13"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:124
+msgid "Wrong magic number --- RESERVED_14"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:125
+msgid "Wrong magic number --- RESERVED_15"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:126
+msgid "Wrong magic number --- RESERVED_16"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:127
+msgid "Wrong magic number --- RESERVED_17"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:128
+msgid "Wrong magic number --- RESERVED_18"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:129
+msgid "Wrong magic number --- RESERVED_19"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:130
+msgid "Corrupt extent header"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:131
+msgid "Corrupt extent index"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:132
+msgid "Corrupt extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:133
+msgid "No free space in extent map"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:134
+msgid "Inode does not use extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:135
+#, fuzzy
+msgid "No 'next' extent"
+msgstr "x程度"
+
+#: lib/ext2fs/ext2_err.c:136
+msgid "No 'previous' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:137
+msgid "No 'up' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:138
+msgid "No 'down' extent"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:139
+msgid "No current node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:140
+msgid "Ext2fs operation not supported"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:141
+msgid "No room to insert extent in node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:142
+msgid "Splitting would result in empty node"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:143
+#, fuzzy
+msgid "Extent not found"
+msgstr "/@l未找到."
+
+#: lib/ext2fs/ext2_err.c:144
+msgid "Operation not supported for inodes containing extents"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:145
+msgid "Extent length is invalid"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:146
+msgid "I/O Channel does not support 64-bit block numbers"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:147
+msgid "Can't check if filesystem is mounted due to missing mtab file"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:148
+msgid "Filesystem too large to use legacy bitmaps"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:149
+msgid "MMP: invalid magic number"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:150
+msgid "MMP: device currently active"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:151
+msgid "MMP: fsck being run"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:152
+msgid "MMP: block number beyond filesystem range"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:153
+msgid "MMP: undergoing an unknown operation"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:154
+msgid "MMP: filesystem still in use"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:155
+msgid "MMP: open with O_DIRECT failed"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:156
+#, fuzzy
+msgid "Block group descriptor size incorrect"
+msgstr "<组æ述符inode>"
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:11
+msgid "Profile version 0.0"
+msgstr ""
+
+#: e2fsck/prof_err.c:12
+msgid "Bad magic value in profile_node"
+msgstr ""
+
+#: e2fsck/prof_err.c:13
+msgid "Profile section not found"
+msgstr ""
+
+#: e2fsck/prof_err.c:14
+#, fuzzy
+msgid "Profile relation not found"
+msgstr "当读å–åå—inodeæ—¶"
+
+#: e2fsck/prof_err.c:15
+msgid "Attempt to add a relation to node which is not a section"
+msgstr ""
+
+#: e2fsck/prof_err.c:16
+msgid "A profile section header has a non-zero value"
+msgstr ""
+
+#: e2fsck/prof_err.c:17
+msgid "Bad linked list in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:18
+msgid "Bad group level in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:19
+msgid "Bad parent pointer in profile structures"
+msgstr ""
+
+#: e2fsck/prof_err.c:20
+msgid "Bad magic value in profile iterator"
+msgstr ""
+
+#: e2fsck/prof_err.c:21
+msgid "Can't set value on section node"
+msgstr ""
+
+#: e2fsck/prof_err.c:22
+msgid "Invalid argument passed to profile library"
+msgstr ""
+
+#: e2fsck/prof_err.c:23
+msgid "Attempt to modify read-only profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:24
+msgid "Profile section header not at top level"
+msgstr ""
+
+#: e2fsck/prof_err.c:25
+msgid "Syntax error in profile section header"
+msgstr ""
+
+#: e2fsck/prof_err.c:26
+msgid "Syntax error in profile relation"
+msgstr ""
+
+#: e2fsck/prof_err.c:27
+msgid "Extra closing brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:28
+msgid "Missing open brace in profile"
+msgstr ""
+
+#: e2fsck/prof_err.c:29
+msgid "Bad magic value in profile_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:30
+msgid "Bad magic value in profile_section_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:31
+msgid "Iteration through all top level section not supported"
+msgstr ""
+
+#: e2fsck/prof_err.c:32
+#, fuzzy
+msgid "Invalid profile_section object"
+msgstr "设置了无效的文件系统选项: %s\n"
+
+#: e2fsck/prof_err.c:33
+msgid "No more sections"
+msgstr ""
+
+#: e2fsck/prof_err.c:34
+msgid "Bad nameset passed to query routine"
+msgstr ""
+
+#: e2fsck/prof_err.c:35
+msgid "No profile file open"
+msgstr ""
+
+#: e2fsck/prof_err.c:36
+msgid "Bad magic value in profile_file_t"
+msgstr ""
+
+#: e2fsck/prof_err.c:37
+msgid "Couldn't open profile file"
+msgstr ""
+
+#: e2fsck/prof_err.c:38
+msgid "Section already exists"
+msgstr ""
+
+#: e2fsck/prof_err.c:39
+msgid "Invalid boolean value"
+msgstr ""
+
+#: e2fsck/prof_err.c:40
+#, fuzzy
+msgid "Invalid integer value"
+msgstr "无效的åŽç¼€é•¿åº¦"
+
+#: e2fsck/prof_err.c:41
+msgid "Bad magic value in profile_file_data_t"
+msgstr ""
+
+#~ msgid "Could not stat %s --- %s\n"
+#~ msgstr "无法对 %s 进行 stat 调用 --- %s\n"
+
+#~ msgid "<The ACL index inode>"
+#~ msgstr "<ACL 索引 inode>"
+
+#~ msgid "<The ACL data inode>"
+#~ msgstr "<ACL æ•°æ® inode>"
+
+#~ msgid "%s is mounted. "
+#~ msgstr "%s 已挂载."
+
+#~ msgid "Journal NOT removed\n"
+#~ msgstr "日志_没有_被删除\n"
+
#~ msgid "bad block size - %s"
#~ msgstr "错误的å—å¤§å° - %s"
diff --git a/resize/Makefile.in b/resize/Makefile.in
index b2739ac1..f7b80ef7 100644
--- a/resize/Makefile.in
+++ b/resize/Makefile.in
@@ -16,7 +16,8 @@ PROGS= resize2fs
TEST_PROGS= test_extent
MANPAGES= resize2fs.8
-RESIZE_OBJS= extent.o resize2fs.o main.o online.o sim_progress.o
+RESIZE_OBJS= extent.o resize2fs.o main.o online.o resource_track.o \
+ sim_progress.o
TEST_EXTENT_OBJS= extent.o test_extent.o
@@ -24,18 +25,20 @@ SRCS= $(srcdir)/extent.c \
$(srcdir)/resize2fs.c \
$(srcdir)/main.c \
$(srcdir)/online.c \
+ $(srcdir)/resource_track.c \
$(srcdir)/sim_progress.c
-LIBS= $(LIBE2P) $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBINTL)
+LIBS= $(LIBE2P) $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBINTL) $(SYSLIBS)
DEPLIBS= $(LIBE2P) $(LIBEXT2FS) $(DEPLIBCOM_ERR)
STATIC_LIBS= $(STATIC_LIBE2P) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \
- $(LIBINTL)
+ $(LIBINTL) $(SYSLIBS)
DEPSTATIC_LIBS= $(STATIC_LIBE2P) $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
.c.o:
$(E) " CC $<"
$(Q) $(CC) -c $(ALL_CFLAGS) $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
all:: $(PROGS) $(TEST_PROGS) $(MANPAGES)
@@ -101,7 +104,7 @@ check:: test_extent.out
exit 1 ; \
fi
-clean:
+clean::
$(RM) -f $(PROGS) $(TEST_PROGS) $(MANPAGES) \#* *.s *.o *.a *~ core \
resize2fs.static test_extent.out
@@ -144,35 +147,48 @@ source_tar_file: $(top_srcdir)/.exclude-file
# Makefile dependencies follow. This must be the last section in
# the Makefile.in file
#
-extent.o: $(srcdir)/extent.c $(srcdir)/resize2fs.h \
+extent.o: $(srcdir)/extent.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/e2p/e2p.h
-resize2fs.o: $(srcdir)/resize2fs.c $(srcdir)/resize2fs.h \
+resize2fs.o: $(srcdir)/resize2fs.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/e2p/e2p.h
-main.o: $(srcdir)/main.c $(top_srcdir)/lib/e2p/e2p.h \
+main.o: $(srcdir)/main.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/e2p/e2p.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(srcdir)/resize2fs.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
$(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/version.h
-online.o: $(srcdir)/online.c $(srcdir)/resize2fs.h \
+online.o: $(srcdir)/online.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/e2p/e2p.h
-sim_progress.o: $(srcdir)/sim_progress.c $(srcdir)/resize2fs.h \
+resource_track.o: $(srcdir)/resource_track.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/e2p/e2p.h
+sim_progress.o: $(srcdir)/sim_progress.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
diff --git a/resize/main.c b/resize/main.c
index e6604f28..2b7abff3 100644
--- a/resize/main.c
+++ b/resize/main.c
@@ -36,7 +36,8 @@ extern int optind;
#include "../version.h"
-char *program_name, *device_name, *io_options;
+char *program_name;
+static char *device_name, *io_options;
static void usage (char *prog)
{
@@ -102,7 +103,7 @@ static void determine_fs_stride(ext2_filsys fs)
{
unsigned int group;
unsigned long long sum;
- unsigned int has_sb, prev_has_sb, num;
+ unsigned int has_sb, prev_has_sb = 0, num;
int i_stride, b_stride;
if (fs->stride)
@@ -147,6 +148,18 @@ static void determine_fs_stride(ext2_filsys fs)
#endif
}
+static void bigalloc_check(ext2_filsys fs, int force)
+{
+ if (!force && EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_BIGALLOC)) {
+ fprintf(stderr, "%s", _("\nResizing bigalloc file systems has "
+ "not been fully tested. Proceed at\n"
+ "your own risk! Use the force option "
+ "if you want to go ahead anyway.\n\n"));
+ exit(1);
+ }
+}
+
int main (int argc, char ** argv)
{
errcode_t retval;
@@ -300,9 +313,9 @@ int main (int argc, char ** argv)
retval = ext2fs_open2(device_name, io_options, io_flags,
0, 0, io_ptr, &fs);
if (retval) {
- com_err (program_name, retval, _("while trying to open %s"),
- device_name);
- printf (_("Couldn't find valid filesystem superblock.\n"));
+ com_err(program_name, retval, _("while trying to open %s"),
+ device_name);
+ printf("%s", _("Couldn't find valid filesystem superblock.\n"));
exit (1);
}
@@ -316,26 +329,7 @@ int main (int argc, char ** argv)
exit(1);
}
- /*
- * XXXX The combination of flex_bg and !resize_inode causes
- * major problems for resize2fs, since when the group descriptors
- * grow in size this can potentially require multiple inode
- * tables to be moved aside to make room, and resize2fs chokes
- * rather badly in this scenario. It's a rare combination,
- * except when a filesystem is expanded more than a certain
- * size, so for now, we'll just prohibit that combination.
- * This is something we should fix eventually, though.
- */
- if ((fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) &&
- !(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_RESIZE_INODE)) {
- com_err(program_name, 0, _("%s: The combination of flex_bg "
- "and\n\t!resize_inode features "
- "is not supported by resize2fs.\n"),
- device_name);
- exit(1);
- }
-
- min_size = calculate_minimum_resize_size(fs);
+ min_size = calculate_minimum_resize_size(fs, flags);
if (print_min_size) {
if (!force && ((fs->super->s_state & EXT2_ERROR_FS) ||
@@ -370,7 +364,7 @@ int main (int argc, char ** argv)
retval = ext2fs_get_device_size2(device_name, fs->blocksize,
&max_size);
if (retval) {
- com_err(program_name, retval,
+ com_err(program_name, retval, "%s",
_("while trying to determine filesystem size"));
exit(1);
}
@@ -385,19 +379,23 @@ int main (int argc, char ** argv)
exit(1);
}
} else {
- /* Take down devices exactly 16T to 2^32-1 blocks */
- if (max_size == (1ULL << 32))
- max_size--;
- else if (max_size > (1ULL << 32)) {
- com_err(program_name, 0, _("New size too large to be "
- "expressed in 32 bits\n"));
- exit(1);
- }
new_size = max_size;
/* Round down to an even multiple of a pagesize */
if (sys_page_size > fs->blocksize)
new_size &= ~((sys_page_size / fs->blocksize)-1);
}
+ if (!EXT2_HAS_INCOMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_INCOMPAT_64BIT)) {
+ /* Take 16T down to 2^32-1 blocks */
+ if (new_size == (1ULL << 32))
+ new_size--;
+ else if (new_size > (1ULL << 32)) {
+ com_err(program_name, 0, "%s",
+ _("New size too large to be "
+ "expressed in 32 bits\n"));
+ exit(1);
+ }
+ }
if (!force && new_size < min_size) {
com_err(program_name, 0,
@@ -406,7 +404,7 @@ int main (int argc, char ** argv)
}
if (use_stride >= 0) {
if (use_stride >= (int) fs->super->s_blocks_per_group) {
- com_err(program_name, 0,
+ com_err(program_name, 0, "%s",
_("Invalid stride length"));
exit(1);
}
@@ -443,6 +441,7 @@ int main (int argc, char ** argv)
exit(0);
}
if (mount_flags & EXT2_MF_MOUNTED) {
+ bigalloc_check(fs, force);
retval = online_resize_fs(fs, mtpt, &new_size, flags);
} else {
if (!force && ((fs->super->s_lastcheck < fs->super->s_mtime) ||
@@ -453,6 +452,7 @@ int main (int argc, char ** argv)
device_name);
exit(1);
}
+ bigalloc_check(fs, force);
printf(_("Resizing the filesystem on "
"%s to %llu (%dk) blocks.\n"),
device_name, new_size, fs->blocksize / 1024);
diff --git a/resize/online.c b/resize/online.c
index 966ea1e0..46d86b0f 100644
--- a/resize/online.c
+++ b/resize/online.c
@@ -21,6 +21,33 @@ extern char *program_name;
#define MAX_32_NUM ((((unsigned long long) 1) << 32) - 1)
+#ifdef __linux__
+static int parse_version_number(const char *s)
+{
+ int major, minor, rev;
+ char *endptr;
+ const char *cp = s;
+
+ if (!s)
+ return 0;
+ major = strtol(cp, &endptr, 10);
+ if (cp == endptr || *endptr != '.')
+ return 0;
+ cp = endptr + 1;
+ minor = strtol(cp, &endptr, 10);
+ if (cp == endptr || *endptr != '.')
+ return 0;
+ cp = endptr + 1;
+ rev = strtol(cp, &endptr, 10);
+ if (cp == endptr)
+ return 0;
+ return ((((major * 256) + minor) * 256) + rev);
+}
+
+#define VERSION_CODE(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+
+#endif
+
errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
blk64_t *new_size, int flags EXT2FS_ATTR((unused)))
{
@@ -36,6 +63,26 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
blk_t size;
int fd, overhead;
int use_old_ioctl = 1;
+ int no_meta_bg_resize = 0;
+ int no_resize_ioctl = 0;
+
+ if (getenv("RESIZE2FS_KERNEL_VERSION")) {
+ char *version_to_emulate = getenv("RESIZE2FS_KERNEL_VERSION");
+ int kvers = parse_version_number(version_to_emulate);
+
+ if (kvers < VERSION_CODE(3, 7, 0))
+ no_meta_bg_resize = 1;
+ if (kvers < VERSION_CODE(3, 3, 0))
+ no_resize_ioctl = 1;
+ }
+
+ if (EXT2_HAS_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_COMPAT_SPARSE_SUPER2) &&
+ (access("/sys/fs/ext4/features/sparse_super2", R_OK) != 0)) {
+ com_err(program_name, 0, _("kernel does not support online "
+ "resize with sparse_super2"));
+ exit(1);
+ }
printf(_("Filesystem at %s is mounted on %s; "
"on-line resizing required\n"), fs->device_name, mtpt);
@@ -56,12 +103,35 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
EXT2_DESC_PER_BLOCK(fs->super));
printf("old_desc_blocks = %lu, new_desc_blocks = %lu\n",
fs->desc_blocks, new_desc_blocks);
- if (!(fs->super->s_feature_compat &
- EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
- new_desc_blocks != fs->desc_blocks) {
- com_err(program_name, 0,
- _("Filesystem does not support online resizing"));
- exit(1);
+
+ /*
+ * Do error checking to make sure the resize will be successful.
+ */
+ if ((access("/sys/fs/ext4/features/meta_bg_resize", R_OK) != 0) ||
+ no_meta_bg_resize) {
+ if (!EXT2_HAS_COMPAT_FEATURE(fs->super,
+ EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
+ (new_desc_blocks != fs->desc_blocks)) {
+ com_err(program_name, 0,
+ _("Filesystem does not support online resizing"));
+ exit(1);
+ }
+
+ if (EXT2_HAS_COMPAT_FEATURE(fs->super,
+ EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
+ new_desc_blocks > (fs->desc_blocks +
+ fs->super->s_reserved_gdt_blocks)) {
+ com_err(program_name, 0,
+ _("Not enough reserved gdt blocks for resizing"));
+ exit(1);
+ }
+
+ if ((ext2fs_blocks_count(sb) > MAX_32_NUM) ||
+ (*new_size > MAX_32_NUM)) {
+ com_err(program_name, 0,
+ _("Kernel does not support resizing a file system this large"));
+ exit(1);
+ }
}
fd = open(mtpt, O_RDONLY);
@@ -71,7 +141,9 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
exit(1);
}
- if (ioctl(fd, EXT4_IOC_RESIZE_FS, new_size)) {
+ if (no_resize_ioctl) {
+ printf(_("Old resize interface requested.\n"));
+ } else if (ioctl(fd, EXT4_IOC_RESIZE_FS, new_size)) {
/*
* If kernel does not support EXT4_IOC_RESIZE_FS, use the
* old online resize. Note that the old approach does not
@@ -101,13 +173,6 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
return 0;
}
- if ((ext2fs_blocks_count(sb) > MAX_32_NUM) ||
- (*new_size > MAX_32_NUM)) {
- com_err(program_name, 0,
- _("Kernel does not support resizing a file system "
- "this large"));
- exit(1);
- }
size = ext2fs_blocks_count(sb);
if (ioctl(fd, EXT2_IOC_GROUP_EXTEND, &size)) {
@@ -127,12 +192,16 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
ext2fs_blocks_count(sb);
retval = ext2fs_read_bitmaps(fs);
- if (retval)
+ if (retval) {
+ close(fd);
return retval;
+ }
retval = ext2fs_dup_handle(fs, &new_fs);
- if (retval)
+ if (retval) {
+ close(fd);
return retval;
+ }
/* The current method of adding one block group at a time to a
* mounted filesystem means it is impossible to accomodate the
@@ -146,8 +215,10 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
*/
new_fs->super->s_feature_incompat &= ~EXT4_FEATURE_INCOMPAT_FLEX_BG;
retval = adjust_fs_info(new_fs, fs, 0, *new_size);
- if (retval)
+ if (retval) {
+ close(fd);
return retval;
+ }
printf(_("Performing an on-line resize of %s to %llu (%dk) blocks.\n"),
fs->device_name, *new_size, fs->blocksize / 1024);
diff --git a/resize/resize2fs.8.in b/resize/resize2fs.8.in
index e02345d4..a1f3099b 100644
--- a/resize/resize2fs.8.in
+++ b/resize/resize2fs.8.in
@@ -11,7 +11,7 @@ resize2fs \- ext2/ext3/ext4 file system resizer
.B \-fFpPM
]
[
-.B \-d
+.B \-d
.I debug-flags
]
[
@@ -23,31 +23,31 @@ resize2fs \- ext2/ext3/ext4 file system resizer
.I size
]
.SH DESCRIPTION
-The
-.B resize2fs
+The
+.B resize2fs
program will resize ext2, ext3, or ext4 file systems. It can be used to
-enlarge or shrink an unmounted file system located on
+enlarge or shrink an unmounted file system located on
.IR device .
If the filesystem is mounted, it can be used to expand the size of the
mounted filesystem, assuming the kernel supports on-line resizing. (As
of this writing, the Linux 2.6 kernel supports on-line resize for
filesystems mounted using ext3 and ext4.).
.PP
-The
+The
.I size
parameter specifies the requested new size of the filesystem.
If no units are specified, the units of the
.I size
parameter shall be the filesystem blocksize of the filesystem.
-Optionally, the
+Optionally, the
.I size
-parameter may be suffixed by one of the following the units
+parameter may be suffixed by one of the following the units
designators: 's', 'K', 'M', or 'G',
for 512 byte sectors, kilobytes, megabytes, or gigabytes, respectively.
-The
+The
.I size
of the filesystem may never be larger than the size of the partition.
-If
+If
.I size
parameter is not specified, it will default to the size of the partition.
.PP
@@ -63,50 +63,54 @@ The
.B resize2fs
program does not manipulate the size of partitions. If you wish to enlarge
a filesystem, you must make sure you can expand the size of the
-underlying partition first. This can be done using
+underlying partition first. This can be done using
.BR fdisk (8)
by deleting the partition and recreating it with a larger size or using
.BR lvextend (8),
if you're using the logical volume manager
.BR lvm (8).
-When
+When
recreating the partition, make sure you create it with the same starting
-disk cylinder as before! Otherwise, the resize operation will
-certainly not work, and you may lose your entire filesystem.
+disk cylinder as before! Otherwise, the resize operation will
+certainly not work, and you may lose your entire filesystem.
After running
.BR fdisk (8),
-run resize2fs to resize the ext2 filesystem
+run resize2fs to resize the ext2 filesystem
to use all of the space in the newly enlarged partition.
.PP
-If you wish to shrink an ext2 partition, first use
+If you wish to shrink an ext2 partition, first use
.B resize2fs
-to shrink the size of filesystem. Then you may use
+to shrink the size of filesystem. Then you may use
.BR fdisk (8)
-to shrink the size of the partition. When shrinking the size of
-the partition, make sure you do not make it smaller than the new size
+to shrink the size of the partition. When shrinking the size of
+the partition, make sure you do not make it smaller than the new size
of the ext2 filesystem!
.SH OPTIONS
.TP
.B \-d \fIdebug-flags
-Turns on various resize2fs debugging features, if they have been compiled
+Turns on various resize2fs debugging features, if they have been compiled
into the binary.
.I debug-flags
-should be computed by adding the numbers of the desired features
+should be computed by adding the numbers of the desired features
from the following list:
.br
-\ 2\ \-\ Debug block relocations
+ 2 \-\ Debug block relocations
.br
-\ 4\ \-\ Debug inode relocations
+ 4 \-\ Debug inode relocations
.br
-\ 8\ \-\ Debug moving the inode table
-.TP
+ 8 \-\ Debug moving the inode table
+.br
+ 16 \-\ Print timing information
+.br
+ 32 \-\ Debug minimum filesystem size (\-M) calculation
+.TP
.B \-f
-Forces resize2fs to proceed with the filesystem resize operation, overriding
+Forces resize2fs to proceed with the filesystem resize operation, overriding
some safety checks which resize2fs normally enforces.
.TP
.B \-F
Flush the filesystem device's buffer caches before beginning. Only
-really useful for doing
+really useful for doing
.B resize2fs
time trials.
.TP
@@ -116,7 +120,7 @@ Shrink the filesystem to the minimum size.
.B \-p
Prints out a percentage completion bars for each
.B resize2fs
-operation during an offline resize, so that the user can keep track
+operation during an offline resize, so that the user can keep track
of what the program is doing.
.TP
.B \-P
@@ -136,7 +140,7 @@ incorrect, especially for filesystems with 1k and 2k blocksizes.
was written by Theodore Ts'o <tytso@mit.edu>.
.SH COPYRIGHT
Resize2fs is Copyright 1998 by Theodore Ts'o and PowerQuest, Inc. All
-rights reserved.
+rights reserved.
As of April, 2000
.B Resize2fs
may be redistributed under the terms of the GPL.
@@ -144,5 +148,5 @@ may be redistributed under the terms of the GPL.
.BR fdisk (8),
.BR e2fsck (8),
.BR mke2fs (8),
-.BR lvm (8),
+.BR lvm (8),
.BR lvextend (8)
diff --git a/resize/resize2fs.c b/resize/resize2fs.c
index dc2805d9..e528f627 100644
--- a/resize/resize2fs.c
+++ b/resize/resize2fs.c
@@ -51,6 +51,11 @@ static errcode_t move_itables(ext2_resize_t rfs);
static errcode_t fix_resize_inode(ext2_filsys fs);
static errcode_t ext2fs_calculate_summary_stats(ext2_filsys fs);
static errcode_t fix_sb_journal_backup(ext2_filsys fs);
+static errcode_t mark_table_blocks(ext2_filsys fs,
+ ext2fs_block_bitmap bmap);
+static errcode_t clear_sparse_super2_last_group(ext2_resize_t rfs);
+static errcode_t reserve_sparse_super2_last_group(ext2_resize_t rfs,
+ ext2fs_block_bitmap meta_bmap);
/*
* Some helper CPP macros
@@ -62,9 +67,16 @@ static errcode_t fix_sb_journal_backup(ext2_filsys fs);
((blk) < (ext2fs_inode_table_loc((fs), (i)) + \
(fs)->inode_blocks_per_group)))
-#define META_OVERHEAD(fs) (2 + (fs)->inode_blocks_per_group)
-#define SUPER_OVERHEAD(fs) (1 + (fs)->desc_blocks +\
- (fs)->super->s_reserved_gdt_blocks)
+/* Some bigalloc helper macros which are more succint... */
+#define B2C(x) EXT2FS_B2C(fs, (x))
+#define C2B(x) EXT2FS_C2B(fs, (x))
+#define EQ_CLSTR(x, y) (B2C(x) == B2C(y))
+#define LE_CLSTR(x, y) (B2C(x) <= B2C(y))
+#define LT_CLSTR(x, y) (B2C(x) < B2C(y))
+#define GE_CLSTR(x, y) (B2C(x) >= B2C(y))
+#define GT_CLSTR(x, y) (B2C(x) > B2C(y))
+
+static int lazy_itable_init;
/*
* This is the top-level routine which does the dirty deed....
@@ -76,14 +88,7 @@ errcode_t resize_fs(ext2_filsys fs, blk64_t *new_size, int flags,
{
ext2_resize_t rfs;
errcode_t retval;
-
- retval = ext2fs_read_bitmaps(fs);
- if (retval)
- return retval;
-
- fs->super->s_state |= EXT2_ERROR_FS;
- ext2fs_mark_super_dirty(fs);
- ext2fs_flush(fs);
+ struct resource_track rtrack, overall_track;
/*
* Create the data structure
@@ -91,32 +96,53 @@ errcode_t resize_fs(ext2_filsys fs, blk64_t *new_size, int flags,
retval = ext2fs_get_mem(sizeof(struct ext2_resize_struct), &rfs);
if (retval)
return retval;
- memset(rfs, 0, sizeof(struct ext2_resize_struct));
- fix_uninit_block_bitmaps(fs);
+ memset(rfs, 0, sizeof(struct ext2_resize_struct));
fs->priv_data = rfs;
rfs->old_fs = fs;
rfs->flags = flags;
rfs->itable_buf = 0;
rfs->progress = progress;
+
+ init_resource_track(&overall_track, "overall resize2fs", fs->io);
+ init_resource_track(&rtrack, "read_bitmaps", fs->io);
+ retval = ext2fs_read_bitmaps(fs);
+ if (retval)
+ goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+
+ fs->super->s_state |= EXT2_ERROR_FS;
+ ext2fs_mark_super_dirty(fs);
+ ext2fs_flush(fs);
+
+ init_resource_track(&rtrack, "fix_uninit_block_bitmaps 1", fs->io);
+ fix_uninit_block_bitmaps(fs);
+ print_resource_track(rfs, &rtrack, fs->io);
retval = ext2fs_dup_handle(fs, &rfs->new_fs);
if (retval)
goto errout;
+ init_resource_track(&rtrack, "adjust_superblock", fs->io);
retval = adjust_superblock(rfs, *new_size);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+
+ init_resource_track(&rtrack, "fix_uninit_block_bitmaps 2", fs->io);
fix_uninit_block_bitmaps(rfs->new_fs);
+ print_resource_track(rfs, &rtrack, fs->io);
/* Clear the block bitmap uninit flag for the last block group */
ext2fs_bg_flags_clear(rfs->new_fs, rfs->new_fs->group_desc_count - 1,
EXT2_BG_BLOCK_UNINIT);
*new_size = ext2fs_blocks_count(rfs->new_fs->super);
+ init_resource_track(&rtrack, "blocks_to_move", fs->io);
retval = blocks_to_move(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
#ifdef RESIZE2FS_DEBUG
if (rfs->flags & RESIZE_DEBUG_BMOVE)
@@ -126,36 +152,56 @@ errcode_t resize_fs(ext2_filsys fs, blk64_t *new_size, int flags,
rfs->needed_blocks);
#endif
+ init_resource_track(&rtrack, "block_mover", fs->io);
retval = block_mover(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "inode_scan_and_fix", fs->io);
retval = inode_scan_and_fix(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "inode_ref_fix", fs->io);
retval = inode_ref_fix(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "move_itables", fs->io);
retval = move_itables(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "calculate_summary_stats", fs->io);
retval = ext2fs_calculate_summary_stats(rfs->new_fs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "fix_resize_inode", fs->io);
retval = fix_resize_inode(rfs->new_fs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "fix_sb_journal_backup", fs->io);
retval = fix_sb_journal_backup(rfs->new_fs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+
+ retval = clear_sparse_super2_last_group(rfs);
+ if (retval)
+ goto errout;
rfs->new_fs->super->s_state &= ~EXT2_ERROR_FS;
rfs->new_fs->flags &= ~EXT2_FLAG_MASTER_SB_ONLY;
+
+ print_resource_track(rfs, &overall_track, fs->io);
retval = ext2fs_close(rfs->new_fs);
if (retval)
goto errout;
@@ -163,6 +209,7 @@ errcode_t resize_fs(ext2_filsys fs, blk64_t *new_size, int flags,
rfs->flags = flags;
ext2fs_free(rfs->old_fs);
+ rfs->old_fs = NULL;
if (rfs->itable_buf)
ext2fs_free_mem(&rfs->itable_buf);
if (rfs->reserve_blocks)
@@ -174,8 +221,10 @@ errcode_t resize_fs(ext2_filsys fs, blk64_t *new_size, int flags,
return 0;
errout:
- if (rfs->new_fs)
+ if (rfs->new_fs) {
ext2fs_free(rfs->new_fs);
+ rfs->new_fs = NULL;
+ }
if (rfs->itable_buf)
ext2fs_free_mem(&rfs->itable_buf);
ext2fs_free_mem(&rfs);
@@ -187,9 +236,9 @@ errout:
*/
static void fix_uninit_block_bitmaps(ext2_filsys fs)
{
- blk64_t i, blk, super_blk, old_desc_blk, new_desc_blk;
- int old_desc_blocks;
+ blk64_t blk, lblk;
dgrp_t g;
+ int i;
if (!(EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM)))
@@ -199,35 +248,20 @@ static void fix_uninit_block_bitmaps(ext2_filsys fs)
if (!(ext2fs_bg_flags_test(fs, g, EXT2_BG_BLOCK_UNINIT)))
continue;
- blk = (g * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block;
-
- ext2fs_super_and_bgd_loc2(fs, g, &super_blk,
- &old_desc_blk, &new_desc_blk, 0);
-
- 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 +
- fs->super->s_reserved_gdt_blocks;
-
- for (i=0; i < fs->super->s_blocks_per_group; i++, blk++) {
- if (blk >= ext2fs_blocks_count(fs->super))
- break;
- if ((blk == super_blk) ||
- (old_desc_blk && old_desc_blocks &&
- (blk >= old_desc_blk) &&
- (blk < old_desc_blk + old_desc_blocks)) ||
- (new_desc_blk && (blk == new_desc_blk)) ||
- (blk == ext2fs_block_bitmap_loc(fs, g)) ||
- (blk == ext2fs_inode_bitmap_loc(fs, g)) ||
- (blk >= ext2fs_inode_table_loc(fs, g) &&
- (blk < ext2fs_inode_table_loc(fs, g)
- + fs->inode_blocks_per_group)))
- ext2fs_fast_mark_block_bitmap2(fs->block_map, blk);
- else
- ext2fs_fast_unmark_block_bitmap2(fs->block_map, blk);
- }
+ blk = ext2fs_group_first_block2(fs, g);
+ lblk = ext2fs_group_last_block2(fs, g);
+ ext2fs_unmark_block_bitmap_range2(fs->block_map, blk,
+ lblk - blk + 1);
+
+ ext2fs_reserve_super_and_bgd(fs, g, fs->block_map);
+ ext2fs_mark_block_bitmap2(fs->block_map,
+ ext2fs_block_bitmap_loc(fs, g));
+ ext2fs_mark_block_bitmap2(fs->block_map,
+ ext2fs_inode_bitmap_loc(fs, g));
+ for (i = 0, blk = ext2fs_inode_table_loc(fs, g);
+ i < (unsigned int) fs->inode_blocks_per_group;
+ i++, blk++)
+ ext2fs_mark_block_bitmap2(fs->block_map, blk);
}
}
@@ -247,46 +281,66 @@ static void fix_uninit_block_bitmaps(ext2_filsys fs)
* release them in the new filesystem data structure, and mark them as
* reserved so the old inode table blocks don't get overwritten.
*/
-static void free_gdp_blocks(ext2_filsys fs,
- ext2fs_block_bitmap reserve_blocks,
- struct ext2_group_desc *gdp)
+static errcode_t free_gdp_blocks(ext2_filsys fs,
+ ext2fs_block_bitmap reserve_blocks,
+ ext2_filsys old_fs,
+ dgrp_t group)
{
- blk_t blk;
+ blk64_t blk;
int j;
+ dgrp_t i;
+ ext2fs_block_bitmap bg_map = NULL;
+ errcode_t retval = 0;
+ dgrp_t count = old_fs->group_desc_count - fs->group_desc_count;
+
+ /* If bigalloc, don't free metadata living in the same cluster */
+ if (EXT2FS_CLUSTER_RATIO(fs) > 1) {
+ retval = ext2fs_allocate_block_bitmap(fs, "bgdata", &bg_map);
+ if (retval)
+ goto out;
- if (gdp->bg_block_bitmap &&
- (gdp->bg_block_bitmap < ext2fs_blocks_count(fs->super))) {
- ext2fs_block_alloc_stats(fs, gdp->bg_block_bitmap, -1);
- ext2fs_mark_block_bitmap2(reserve_blocks,
- gdp->bg_block_bitmap);
+ retval = mark_table_blocks(fs, bg_map);
+ if (retval)
+ goto out;
}
- if (gdp->bg_inode_bitmap &&
- (gdp->bg_inode_bitmap < ext2fs_blocks_count(fs->super))) {
- ext2fs_block_alloc_stats(fs, gdp->bg_inode_bitmap, -1);
- ext2fs_mark_block_bitmap2(reserve_blocks,
- gdp->bg_inode_bitmap);
- }
+ for (i = group; i < group + count; i++) {
+ blk = ext2fs_block_bitmap_loc(old_fs, i);
+ if (blk &&
+ (blk < ext2fs_blocks_count(fs->super)) &&
+ !(bg_map && ext2fs_test_block_bitmap2(bg_map, blk))) {
+ ext2fs_block_alloc_stats2(fs, blk, -1);
+ ext2fs_mark_block_bitmap2(reserve_blocks, blk);
+ }
- if (gdp->bg_inode_table == 0 ||
- (gdp->bg_inode_table >= ext2fs_blocks_count(fs->super)))
- return;
+ blk = ext2fs_inode_bitmap_loc(old_fs, i);
+ if (blk &&
+ (blk < ext2fs_blocks_count(fs->super)) &&
+ !(bg_map && ext2fs_test_block_bitmap2(bg_map, blk))) {
+ ext2fs_block_alloc_stats2(fs, blk, -1);
+ ext2fs_mark_block_bitmap2(reserve_blocks, blk);
+ }
- for (blk = gdp->bg_inode_table, j = 0;
- j < fs->inode_blocks_per_group; j++, blk++) {
- if (blk >= ext2fs_blocks_count(fs->super))
- break;
- ext2fs_block_alloc_stats(fs, blk, -1);
- ext2fs_mark_block_bitmap2(reserve_blocks, blk);
+ blk = ext2fs_inode_table_loc(old_fs, i);
+ for (j = 0;
+ j < fs->inode_blocks_per_group; j++, blk++) {
+ if (blk >= ext2fs_blocks_count(fs->super) ||
+ (bg_map && ext2fs_test_block_bitmap2(bg_map, blk)))
+ continue;
+ ext2fs_block_alloc_stats2(fs, blk, -1);
+ ext2fs_mark_block_bitmap2(reserve_blocks, blk);
+ }
}
+
+out:
+ if (bg_map)
+ ext2fs_free_block_bitmap(bg_map);
+ return retval;
}
/*
* This routine is shared by the online and offline resize routines.
* All of the information which is adjusted in memory is done here.
- *
- * The reserve_blocks parameter is only needed when shrinking the
- * filesystem.
*/
errcode_t adjust_fs_info(ext2_filsys fs, ext2_filsys old_fs,
ext2fs_block_bitmap reserve_blocks, blk64_t new_size)
@@ -296,8 +350,8 @@ errcode_t adjust_fs_info(ext2_filsys fs, ext2_filsys old_fs,
blk64_t rem;
blk64_t blk, group_block;
blk64_t real_end;
- blk64_t adj, old_numblocks, numblocks, adjblocks;
- unsigned long i, j, old_desc_blocks, max_group;
+ blk64_t old_numblocks, numblocks, adjblocks;
+ unsigned long i, j, old_desc_blocks;
unsigned int meta_bg, meta_bg_size;
int has_super, csum_flag;
unsigned long long new_inodes; /* u64 to check for overflow */
@@ -385,12 +439,21 @@ retry:
real_end = (((blk64_t) EXT2_BLOCKS_PER_GROUP(fs->super) *
fs->group_desc_count)) - 1 +
fs->super->s_first_data_block;
- retval = ext2fs_resize_block_bitmap2(ext2fs_blocks_count(fs->super)-1,
- real_end, fs->block_map);
-
+ retval = ext2fs_resize_block_bitmap2(new_size - 1,
+ real_end, fs->block_map);
if (retval) goto errout;
/*
+ * If we are growing the file system, also grow the size of
+ * the reserve_blocks bitmap
+ */
+ if (reserve_blocks && new_size > ext2fs_blocks_count(old_fs->super)) {
+ retval = ext2fs_resize_block_bitmap2(new_size - 1,
+ real_end, reserve_blocks);
+ if (retval) goto errout;
+ }
+
+ /*
* Reallocate the group descriptors as necessary.
*/
if (old_fs->desc_blocks != fs->desc_blocks) {
@@ -428,6 +491,33 @@ retry:
}
/*
+ * Update the location of the backup superblocks if the
+ * sparse_super2 feature is enabled.
+ */
+ if (fs->super->s_feature_compat & EXT4_FEATURE_COMPAT_SPARSE_SUPER2) {
+ dgrp_t last_bg = fs->group_desc_count - 1;
+ dgrp_t old_last_bg = old_fs->group_desc_count - 1;
+
+ if (last_bg > old_last_bg) {
+ if (old_fs->group_desc_count == 1)
+ fs->super->s_backup_bgs[0] = 1;
+ if (old_fs->group_desc_count == 1 &&
+ fs->super->s_backup_bgs[0])
+ fs->super->s_backup_bgs[0] = last_bg;
+ else if (fs->super->s_backup_bgs[1])
+ fs->super->s_backup_bgs[1] = last_bg;
+ } else if (last_bg < old_last_bg) {
+ if (fs->super->s_backup_bgs[0] > last_bg)
+ fs->super->s_backup_bgs[0] = 0;
+ if (fs->super->s_backup_bgs[1] > last_bg)
+ fs->super->s_backup_bgs[1] = 0;
+ if (last_bg > 1 &&
+ old_fs->super->s_backup_bgs[1] == old_last_bg)
+ fs->super->s_backup_bgs[1] = last_bg;
+ }
+ }
+
+ /*
* If we are shrinking the number of block groups, we're done
* and can exit now.
*/
@@ -436,13 +526,8 @@ retry:
* Check the block groups that we are chopping off
* and free any blocks associated with their metadata
*/
- for (i = fs->group_desc_count;
- i < old_fs->group_desc_count; i++) {
- free_gdp_blocks(fs, reserve_blocks,
- ext2fs_group_desc(old_fs,
- old_fs->group_desc, i));
- }
- retval = 0;
+ retval = free_gdp_blocks(fs, reserve_blocks, old_fs,
+ fs->group_desc_count);
goto errout;
}
@@ -479,18 +564,26 @@ retry:
/*
* Initialize the new block group descriptors
*/
- group_block = fs->super->s_first_data_block +
- old_fs->group_desc_count * fs->super->s_blocks_per_group;
-
+ group_block = ext2fs_group_first_block2(fs,
+ old_fs->group_desc_count);
csum_flag = EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM);
- adj = old_fs->group_desc_count;
- max_group = fs->group_desc_count - adj;
+ if (access("/sys/fs/ext4/features/lazy_itable_init", F_OK) == 0)
+ lazy_itable_init = 1;
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 +
fs->super->s_reserved_gdt_blocks;
+
+ /*
+ * If we changed the number of block_group descriptor blocks,
+ * we need to make sure they are all marked as reserved in the
+ * file systems's block allocation map.
+ */
+ for (i = 0; i < old_fs->group_desc_count; i++)
+ ext2fs_reserve_super_and_bgd(fs, i, fs->block_map);
+
for (i = old_fs->group_desc_count;
i < fs->group_desc_count; i++) {
memset(ext2fs_group_desc(fs, fs->group_desc, i), 0,
@@ -498,8 +591,14 @@ retry:
adjblocks = 0;
ext2fs_bg_flags_zap(fs, i);
- if (csum_flag)
- ext2fs_bg_flags_set(fs, i, EXT2_BG_INODE_UNINIT | EXT2_BG_INODE_ZEROED);
+ if (csum_flag) {
+ ext2fs_bg_flags_set(fs, i, EXT2_BG_INODE_UNINIT);
+ if (!lazy_itable_init)
+ ext2fs_bg_flags_set(fs, i,
+ EXT2_BG_INODE_ZEROED);
+ ext2fs_bg_itable_unused_set(fs, i,
+ fs->super->s_inodes_per_group);
+ }
numblocks = ext2fs_group_blocks_count(fs, i);
if ((i < fs->group_desc_count - 1) && csum_flag)
@@ -551,6 +650,17 @@ retry:
}
retval = 0;
+ /*
+ * Mark all of the metadata blocks as reserved so they won't
+ * get allocated by the call to ext2fs_allocate_group_table()
+ * in blocks_to_move(), where we allocate new blocks to
+ * replace those allocation bitmap and inode table blocks
+ * which have to get relocated to make space for an increased
+ * number of the block group descriptors.
+ */
+ if (reserve_blocks)
+ mark_table_blocks(fs, reserve_blocks);
+
errout:
return (retval);
}
@@ -561,14 +671,13 @@ errout:
*/
static errcode_t adjust_superblock(ext2_resize_t rfs, blk64_t new_size)
{
- ext2_filsys fs;
+ ext2_filsys fs = rfs->new_fs;
int adj = 0;
errcode_t retval;
blk64_t group_block;
unsigned long i;
unsigned long max_group;
- fs = rfs->new_fs;
ext2fs_mark_super_dirty(fs);
ext2fs_mark_bb_dirty(fs);
ext2fs_mark_ib_dirty(fs);
@@ -612,7 +721,19 @@ static errcode_t adjust_superblock(ext2_resize_t rfs, blk64_t new_size)
}
/*
- * Initialize the new block group descriptors
+ * If we are using uninit_bg (aka GDT_CSUM) and the kernel
+ * supports lazy inode initialization, we can skip
+ * initializing the inode table.
+ */
+ if (lazy_itable_init &&
+ EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
+ retval = 0;
+ goto errout;
+ }
+
+ /*
+ * Initialize the inode table
*/
retval = ext2fs_get_array(fs->blocksize, fs->inode_blocks_per_group,
&rfs->itable_buf);
@@ -620,9 +741,8 @@ static errcode_t adjust_superblock(ext2_resize_t rfs, blk64_t new_size)
goto errout;
memset(rfs->itable_buf, 0, fs->blocksize * fs->inode_blocks_per_group);
- group_block = fs->super->s_first_data_block +
- rfs->old_fs->group_desc_count * fs->super->s_blocks_per_group;
-
+ group_block = ext2fs_group_first_block2(fs,
+ rfs->old_fs->group_desc_count);
adj = rfs->old_fs->group_desc_count;
max_group = fs->group_desc_count - adj;
if (rfs->progress) {
@@ -677,40 +797,33 @@ errout:
static errcode_t mark_table_blocks(ext2_filsys fs,
ext2fs_block_bitmap bmap)
{
- blk64_t b;
- unsigned int j;
dgrp_t i;
- unsigned long meta_bg_size;
- unsigned int old_desc_blocks;
+ blk64_t blk;
- meta_bg_size = EXT2_DESC_PER_BLOCK(fs->super);
- 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 +
- fs->super->s_reserved_gdt_blocks;
for (i = 0; i < fs->group_desc_count; i++) {
ext2fs_reserve_super_and_bgd(fs, i, bmap);
/*
* Mark the blocks used for the inode table
*/
- for (j = 0, b = ext2fs_inode_table_loc(fs, i);
- j < (unsigned int) fs->inode_blocks_per_group;
- j++, b++)
- ext2fs_mark_block_bitmap2(bmap, b);
+ blk = ext2fs_inode_table_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap_range2(bmap, blk,
+ fs->inode_blocks_per_group);
/*
* Mark block used for the block bitmap
*/
- ext2fs_mark_block_bitmap2(bmap,
- ext2fs_block_bitmap_loc(fs, i));
+ blk = ext2fs_block_bitmap_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap2(bmap, blk);
/*
* Mark block used for the inode bitmap
*/
- ext2fs_mark_block_bitmap2(bmap,
- ext2fs_inode_bitmap_loc(fs, i));
+ blk = ext2fs_inode_bitmap_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap2(bmap, blk);
}
return 0;
}
@@ -737,14 +850,41 @@ static void mark_fs_metablock(ext2_resize_t rfs,
if (IS_BLOCK_BM(fs, group, blk)) {
ext2fs_block_bitmap_loc_set(fs, group, 0);
rfs->needed_blocks++;
- } else if (IS_INODE_BM(fs, group, blk)) {
+ return;
+ }
+ if (IS_INODE_BM(fs, group, blk)) {
ext2fs_inode_bitmap_loc_set(fs, group, 0);
rfs->needed_blocks++;
- } else if (IS_INODE_TB(fs, group, blk)) {
+ return;
+ }
+ if (IS_INODE_TB(fs, group, blk)) {
ext2fs_inode_table_loc_set(fs, group, 0);
rfs->needed_blocks++;
- } else if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
- EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
+ return;
+ }
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) {
+ dgrp_t i;
+
+ for (i=0; i < rfs->old_fs->group_desc_count; i++) {
+ if (IS_BLOCK_BM(fs, i, blk)) {
+ ext2fs_block_bitmap_loc_set(fs, i, 0);
+ rfs->needed_blocks++;
+ return;
+ }
+ if (IS_INODE_BM(fs, i, blk)) {
+ ext2fs_inode_bitmap_loc_set(fs, i, 0);
+ rfs->needed_blocks++;
+ return;
+ }
+ if (IS_INODE_TB(fs, i, blk)) {
+ ext2fs_inode_table_loc_set(fs, i, 0);
+ rfs->needed_blocks++;
+ return;
+ }
+ }
+ }
+ if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
(ext2fs_bg_flags_test(fs, group, EXT2_BG_BLOCK_UNINIT))) {
/*
* If the block bitmap is uninitialized, which means
@@ -769,12 +909,13 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
int j, has_super;
dgrp_t i, max_groups, g;
blk64_t blk, group_blk;
- blk64_t old_blocks, new_blocks;
+ blk64_t old_blocks, new_blocks, group_end, cluster_freed;
+ blk64_t new_size;
unsigned int meta_bg, meta_bg_size;
errcode_t retval;
ext2_filsys fs, old_fs;
- ext2fs_block_bitmap meta_bmap;
- __u32 save_incompat_flag;
+ ext2fs_block_bitmap meta_bmap, new_meta_bmap = NULL;
+ int flex_bg;
fs = rfs->new_fs;
old_fs = rfs->old_fs;
@@ -798,6 +939,42 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
fs = rfs->new_fs;
/*
+ * If we're shrinking the filesystem, we need to move any
+ * group's metadata blocks (either allocation bitmaps or the
+ * inode table) which are beyond the end of the new
+ * filesystem.
+ */
+ new_size = ext2fs_blocks_count(fs->super);
+ if (new_size < ext2fs_blocks_count(old_fs->super)) {
+ for (g = 0; g < fs->group_desc_count; g++) {
+ int realloc = 0;
+ /*
+ * ext2fs_allocate_group_table will re-allocate any
+ * metadata blocks whose location is set to zero.
+ */
+ if (ext2fs_block_bitmap_loc(fs, g) >= new_size) {
+ ext2fs_block_bitmap_loc_set(fs, g, 0);
+ realloc = 1;
+ }
+ if (ext2fs_inode_bitmap_loc(fs, g) >= new_size) {
+ ext2fs_inode_bitmap_loc_set(fs, g, 0);
+ realloc = 1;
+ }
+ if ((ext2fs_inode_table_loc(fs, g) +
+ fs->inode_blocks_per_group) > new_size) {
+ ext2fs_inode_table_loc_set(fs, g, 0);
+ realloc = 1;
+ }
+
+ if (realloc) {
+ retval = ext2fs_allocate_group_table(fs, g, 0);
+ if (retval)
+ return retval;
+ }
+ }
+ }
+
+ /*
* If we're shrinking the filesystem, we need to move all of
* the blocks that don't fit any more
*/
@@ -811,8 +988,7 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
* The block bitmap is uninitialized, so skip
* to the next block group.
*/
- blk = ((g+1) * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block - 1;
+ blk = ext2fs_group_first_block2(fs, g+1) - 1;
continue;
}
if (ext2fs_test_block_bitmap2(old_fs->block_map, blk) &&
@@ -831,6 +1007,10 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
new_blocks = fs->desc_blocks + fs->super->s_reserved_gdt_blocks;
}
+ retval = reserve_sparse_super2_last_group(rfs, meta_bmap);
+ if (retval)
+ goto errout;
+
if (old_blocks == new_blocks) {
retval = 0;
goto errout;
@@ -846,15 +1026,42 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
* blocks as free.
*/
if (old_blocks > new_blocks) {
+ if (EXT2FS_CLUSTER_RATIO(fs) > 1) {
+ retval = ext2fs_allocate_block_bitmap(fs,
+ _("new meta blocks"),
+ &new_meta_bmap);
+ if (retval)
+ goto errout;
+
+ retval = mark_table_blocks(fs, new_meta_bmap);
+ if (retval)
+ goto errout;
+ }
+
for (i = 0; i < max_groups; i++) {
if (!ext2fs_bg_has_super(fs, i)) {
group_blk += fs->super->s_blocks_per_group;
continue;
}
- for (blk = group_blk+1+new_blocks;
- blk < group_blk+1+old_blocks; blk++) {
- ext2fs_block_alloc_stats2(fs, blk, -1);
+ group_end = group_blk + 1 + old_blocks;
+ for (blk = group_blk + 1 + new_blocks;
+ blk < group_end;) {
+ if (new_meta_bmap == NULL ||
+ !ext2fs_test_block_bitmap2(new_meta_bmap,
+ blk)) {
+ cluster_freed =
+ EXT2FS_CLUSTER_RATIO(fs) -
+ (blk &
+ EXT2FS_CLUSTER_MASK(fs));
+ if (cluster_freed > group_end - blk)
+ cluster_freed = group_end - blk;
+ ext2fs_block_alloc_stats2(fs, blk, -1);
+ blk += EXT2FS_CLUSTER_RATIO(fs);
+ rfs->needed_blocks -= cluster_freed;
+ continue;
+ }
rfs->needed_blocks--;
+ blk++;
}
group_blk += fs->super->s_blocks_per_group;
}
@@ -866,6 +1073,9 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
* gets interesting....
*/
meta_bg_size = EXT2_DESC_PER_BLOCK(fs->super);
+ flex_bg = fs->super->s_feature_incompat &
+ EXT4_FEATURE_INCOMPAT_FLEX_BG;
+ /* first reserve all of the existing fs meta blocks */
for (i = 0; i < max_groups; i++) {
has_super = ext2fs_bg_has_super(fs, i);
if (has_super)
@@ -891,52 +1101,51 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
group_blk + has_super);
}
- if (ext2fs_inode_table_loc(fs, i) &&
- ext2fs_inode_bitmap_loc(fs, i) &&
- ext2fs_block_bitmap_loc(fs, i))
- goto next_group;
-
/*
* Reserve the existing meta blocks that we know
* aren't to be moved.
+ *
+ * For flex_bg file systems, in order to avoid
+ * overwriting fs metadata (especially inode table
+ * blocks) belonging to a different block group when
+ * we are relocating the inode tables, we need to
+ * reserve all existing fs metadata blocks.
*/
if (ext2fs_block_bitmap_loc(fs, i))
ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
ext2fs_block_bitmap_loc(fs, i));
+ else if (flex_bg && i < old_fs->group_desc_count)
+ ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
+ ext2fs_block_bitmap_loc(old_fs, i));
+
if (ext2fs_inode_bitmap_loc(fs, i))
ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
ext2fs_inode_bitmap_loc(fs, i));
+ else if (flex_bg && i < old_fs->group_desc_count)
+ ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
+ ext2fs_inode_bitmap_loc(old_fs, i));
+
if (ext2fs_inode_table_loc(fs, i))
- for (blk = ext2fs_inode_table_loc(fs, i), j=0;
- j < fs->inode_blocks_per_group ; j++, blk++)
- ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
- blk);
+ ext2fs_mark_block_bitmap_range2(rfs->reserve_blocks,
+ ext2fs_inode_table_loc(fs, i),
+ fs->inode_blocks_per_group);
+ else if (flex_bg && i < old_fs->group_desc_count)
+ ext2fs_mark_block_bitmap_range2(rfs->reserve_blocks,
+ ext2fs_inode_table_loc(old_fs, i),
+ old_fs->inode_blocks_per_group);
+
+ group_blk += rfs->new_fs->super->s_blocks_per_group;
+ }
+
+ /* Allocate the missing data structures */
+ for (i = 0; i < max_groups; i++) {
+ if (ext2fs_inode_table_loc(fs, i) &&
+ ext2fs_inode_bitmap_loc(fs, i) &&
+ ext2fs_block_bitmap_loc(fs, i))
+ continue;
- /*
- * Allocate the missing data structures
- *
- * XXX We have a problem with FLEX_BG and off-line
- * resizing where we are growing the size of the
- * filesystem. ext2fs_allocate_group_table() will try
- * to reserve the inode table in the desired flex_bg
- * location. However, passing rfs->reserve_blocks
- * doesn't work since it only has reserved the blocks
- * that will be used in the new block group -- and
- * with flex_bg, we can and will allocate the tables
- * outside of the block group. And we can't pass in
- * the fs->block_map because it doesn't handle
- * overlapping inode table movements right. So for
- * now, we temporarily disable flex_bg to force
- * ext2fs_allocate_group_tables() to allocate the bg
- * metadata in side the block group, and the restore
- * it afterwards. Ugly, until we can fix this up
- * right later.
- */
- save_incompat_flag = fs->super->s_feature_incompat;
- fs->super->s_feature_incompat &= ~EXT4_FEATURE_INCOMPAT_FLEX_BG;
retval = ext2fs_allocate_group_table(fs, i,
rfs->reserve_blocks);
- fs->super->s_feature_incompat = save_incompat_flag;
if (retval)
goto errout;
@@ -969,7 +1178,7 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
* block relocation phase.
*/
if (ext2fs_inode_table_loc(fs, i) == ext2fs_inode_table_loc(old_fs, i))
- goto next_group; /* inode table not moved */
+ continue; /* inode table not moved */
rfs->needed_blocks += fs->inode_blocks_per_group;
@@ -994,13 +1203,12 @@ static errcode_t blocks_to_move(ext2_resize_t rfs)
for (blk = ext2fs_inode_table_loc(rfs->old_fs, i), j=0;
j < fs->inode_blocks_per_group ; j++, blk++)
ext2fs_mark_block_bitmap2(rfs->reserve_blocks, blk);
-
- next_group:
- group_blk += rfs->new_fs->super->s_blocks_per_group;
}
retval = 0;
errout:
+ if (new_meta_bmap)
+ ext2fs_free_block_bitmap(new_meta_bmap);
if (meta_bmap)
ext2fs_free_block_bitmap(meta_bmap);
@@ -1126,8 +1334,9 @@ static errcode_t block_mover(ext2_resize_t rfs)
*/
to_move = moved = 0;
init_block_alloc(rfs);
- for (blk = old_fs->super->s_first_data_block;
- blk < ext2fs_blocks_count(old_fs->super); blk++) {
+ for (blk = B2C(old_fs->super->s_first_data_block);
+ blk < ext2fs_blocks_count(old_fs->super);
+ blk += EXT2FS_CLUSTER_RATIO(fs)) {
if (!ext2fs_test_block_bitmap2(old_fs->block_map, blk))
continue;
if (!ext2fs_test_block_bitmap2(rfs->move_blocks, blk))
@@ -1144,7 +1353,7 @@ static errcode_t block_mover(ext2_resize_t rfs)
goto errout;
}
ext2fs_block_alloc_stats2(fs, new_blk, +1);
- ext2fs_add_extent_entry(rfs->bmap, blk, new_blk);
+ ext2fs_add_extent_entry(rfs->bmap, B2C(blk), B2C(new_blk));
to_move++;
}
@@ -1174,6 +1383,9 @@ static errcode_t block_mover(ext2_resize_t rfs)
if (retval) goto errout;
if (!size)
break;
+ old_blk = C2B(old_blk);
+ new_blk = C2B(new_blk);
+ size = C2B(size);
#ifdef RESIZE2FS_DEBUG
if (rfs->flags & RESIZE_DEBUG_BMOVE)
printf("Moving %llu blocks %llu->%llu\n",
@@ -1224,6 +1436,20 @@ errout:
*/
+/*
+ * The extent translation table is stored in clusters so we need to
+ * take special care when mapping a source block number to its
+ * destination block number.
+ */
+static __u64 extent_translate(ext2_filsys fs, ext2_extent extent, __u64 old_loc)
+{
+ __u64 new_block = C2B(ext2fs_extent_translate(extent, B2C(old_loc)));
+
+ if (new_block != 0)
+ new_block += old_loc & (EXT2FS_CLUSTER_RATIO(fs) - 1);
+ return new_block;
+}
+
struct process_block_struct {
ext2_resize_t rfs;
ext2_ino_t ino;
@@ -1246,7 +1472,7 @@ static int process_block(ext2_filsys fs, blk64_t *block_nr,
pb = (struct process_block_struct *) priv_data;
block = *block_nr;
if (pb->rfs->bmap) {
- new_block = ext2fs_extent_translate(pb->rfs->bmap, block);
+ new_block = extent_translate(fs, pb->rfs->bmap, block);
if (new_block) {
*block_nr = new_block;
ret |= BLOCK_CHANGED;
@@ -1372,7 +1598,7 @@ static errcode_t inode_scan_and_fix(ext2_resize_t rfs)
pb.changed = 0;
if (ext2fs_file_acl_block(rfs->old_fs, inode) && rfs->bmap) {
- new_block = ext2fs_extent_translate(rfs->bmap,
+ new_block = extent_translate(rfs->old_fs, rfs->bmap,
ext2fs_file_acl_block(rfs->old_fs, inode));
if (new_block) {
ext2fs_file_acl_block_set(rfs->old_fs, inode,
@@ -1582,9 +1808,10 @@ static errcode_t move_itables(ext2_resize_t rfs)
dgrp_t i, max_groups;
ext2_filsys fs = rfs->new_fs;
char *cp;
- blk64_t old_blk, new_blk, blk;
+ blk64_t old_blk, new_blk, blk, cluster_freed;
errcode_t retval;
int j, to_move, moved;
+ ext2fs_block_bitmap new_bmap = NULL;
max_groups = fs->group_desc_count;
if (max_groups > rfs->old_fs->group_desc_count)
@@ -1597,6 +1824,17 @@ static errcode_t move_itables(ext2_resize_t rfs)
return retval;
}
+ if (EXT2FS_CLUSTER_RATIO(fs) > 1) {
+ retval = ext2fs_allocate_block_bitmap(fs, _("new meta blocks"),
+ &new_bmap);
+ if (retval)
+ return retval;
+
+ retval = mark_table_blocks(fs, new_bmap);
+ if (retval)
+ goto errout;
+ }
+
/*
* Figure out how many inode tables we need to move
*/
@@ -1631,6 +1869,8 @@ static errcode_t move_itables(ext2_resize_t rfs)
if (!diff)
continue;
+ if (diff < 0)
+ diff = 0;
retval = io_channel_read_blk64(fs->io, old_blk,
fs->inode_blocks_per_group,
@@ -1674,8 +1914,19 @@ static errcode_t move_itables(ext2_resize_t rfs)
}
for (blk = ext2fs_inode_table_loc(rfs->old_fs, i), j=0;
- j < fs->inode_blocks_per_group ; j++, blk++)
- ext2fs_block_alloc_stats2(fs, blk, -1);
+ j < fs->inode_blocks_per_group;) {
+ if (new_bmap == NULL ||
+ !ext2fs_test_block_bitmap2(new_bmap, blk)) {
+ ext2fs_block_alloc_stats2(fs, blk, -1);
+ cluster_freed = EXT2FS_CLUSTER_RATIO(fs) -
+ (blk & EXT2FS_CLUSTER_MASK(fs));
+ blk += cluster_freed;
+ j += cluster_freed;
+ continue;
+ }
+ blk++;
+ j++;
+ }
ext2fs_inode_table_loc_set(rfs->old_fs, i, new_blk);
ext2fs_group_desc_csum_set(rfs->old_fs, i);
@@ -1695,20 +1946,163 @@ static errcode_t move_itables(ext2_resize_t rfs)
if (rfs->flags & RESIZE_DEBUG_ITABLEMOVE)
printf("Inode table move finished.\n");
#endif
- return 0;
+ retval = 0;
errout:
+ if (new_bmap)
+ ext2fs_free_block_bitmap(new_bmap);
return retval;
}
/*
+ * This function is used when expanding a file system. It frees the
+ * superblock and block group descriptor blocks from the block group
+ * which is no longer the last block group.
+ */
+static errcode_t clear_sparse_super2_last_group(ext2_resize_t rfs)
+{
+ ext2_filsys fs = rfs->new_fs;
+ ext2_filsys old_fs = rfs->old_fs;
+ errcode_t retval;
+ dgrp_t old_last_bg = rfs->old_fs->group_desc_count - 1;
+ dgrp_t last_bg = fs->group_desc_count - 1;
+ blk64_t sb, old_desc;
+ blk_t num;
+
+ if (!(fs->super->s_feature_compat & EXT4_FEATURE_COMPAT_SPARSE_SUPER2))
+ return 0;
+
+ if (last_bg <= old_last_bg)
+ return 0;
+
+ if (fs->super->s_backup_bgs[0] == old_fs->super->s_backup_bgs[0] &&
+ fs->super->s_backup_bgs[1] == old_fs->super->s_backup_bgs[1])
+ return 0;
+
+ if (old_fs->super->s_backup_bgs[0] != old_last_bg &&
+ old_fs->super->s_backup_bgs[1] != old_last_bg)
+ return 0;
+
+ if (fs->super->s_backup_bgs[0] == old_last_bg ||
+ fs->super->s_backup_bgs[1] == old_last_bg)
+ return 0;
+
+ retval = ext2fs_super_and_bgd_loc2(rfs->old_fs, old_last_bg,
+ &sb, &old_desc, NULL, &num);
+ if (retval)
+ return retval;
+
+ if (sb)
+ ext2fs_unmark_block_bitmap2(fs->block_map, sb);
+ if (old_desc)
+ ext2fs_unmark_block_bitmap_range2(fs->block_map, old_desc, num);
+ return 0;
+}
+
+/*
+ * This function is used when shrinking a file system. We need to
+ * utilize blocks from what will be the new last block group for the
+ * backup superblock and block group descriptor blocks.
+ * Unfortunately, those blocks may be used by other files or fs
+ * metadata blocks. We need to mark them as being in use.
+ */
+static errcode_t reserve_sparse_super2_last_group(ext2_resize_t rfs,
+ ext2fs_block_bitmap meta_bmap)
+{
+ ext2_filsys fs = rfs->new_fs;
+ ext2_filsys old_fs = rfs->old_fs;
+ errcode_t retval;
+ dgrp_t old_last_bg = rfs->old_fs->group_desc_count - 1;
+ dgrp_t last_bg = fs->group_desc_count - 1;
+ dgrp_t g;
+ blk64_t blk, sb, old_desc;
+ blk_t i, num;
+ int realloc = 0;
+
+ if (!(fs->super->s_feature_compat & EXT4_FEATURE_COMPAT_SPARSE_SUPER2))
+ return 0;
+
+ if (last_bg >= old_last_bg)
+ return 0;
+
+ if (fs->super->s_backup_bgs[0] == old_fs->super->s_backup_bgs[0] &&
+ fs->super->s_backup_bgs[1] == old_fs->super->s_backup_bgs[1])
+ return 0;
+
+ if (fs->super->s_backup_bgs[0] != last_bg &&
+ fs->super->s_backup_bgs[1] != last_bg)
+ return 0;
+
+ if (old_fs->super->s_backup_bgs[0] == last_bg ||
+ old_fs->super->s_backup_bgs[1] == last_bg)
+ return 0;
+
+ retval = ext2fs_super_and_bgd_loc2(rfs->new_fs, last_bg,
+ &sb, &old_desc, NULL, &num);
+ if (retval)
+ return retval;
+
+ if (!sb) {
+ fputs(_("Should never happen! No sb in last super_sparse bg?\n"),
+ stderr);
+ exit(1);
+ }
+ if (old_desc && old_desc != sb+1) {
+ fputs(_("Should never happen! Unexpected old_desc in "
+ "super_sparse bg?\n"),
+ stderr);
+ exit(1);
+ }
+ num = (old_desc) ? num : 1;
+
+ /* Reserve the backup blocks */
+ ext2fs_mark_block_bitmap_range2(fs->block_map, sb, num);
+
+ for (g = 0; g < fs->group_desc_count; g++) {
+ blk64_t mb;
+
+ mb = ext2fs_block_bitmap_loc(fs, g);
+ if ((mb >= sb) && (mb < sb + num)) {
+ ext2fs_block_bitmap_loc_set(fs, g, 0);
+ realloc = 1;
+ }
+ mb = ext2fs_inode_bitmap_loc(fs, g);
+ if ((mb >= sb) && (mb < sb + num)) {
+ ext2fs_inode_bitmap_loc_set(fs, g, 0);
+ realloc = 1;
+ }
+ mb = ext2fs_inode_table_loc(fs, g);
+ if ((mb < sb + num) &&
+ (sb < mb + fs->inode_blocks_per_group)) {
+ ext2fs_inode_table_loc_set(fs, g, 0);
+ realloc = 1;
+ }
+ if (realloc) {
+ retval = ext2fs_allocate_group_table(fs, g, 0);
+ if (retval)
+ return retval;
+ }
+ }
+
+ for (blk = sb, i = 0; i < num; blk++, i++) {
+ if (ext2fs_test_block_bitmap2(old_fs->block_map, blk) &&
+ !ext2fs_test_block_bitmap2(meta_bmap, blk)) {
+ ext2fs_mark_block_bitmap2(rfs->move_blocks, blk);
+ rfs->needed_blocks++;
+ }
+ ext2fs_mark_block_bitmap2(rfs->reserve_blocks, blk);
+ }
+ return 0;
+}
+
+/*
* Fix the resize inode
*/
static errcode_t fix_resize_inode(ext2_filsys fs)
{
struct ext2_inode inode;
errcode_t retval;
- char * block_buf;
+ char *block_buf = NULL;
if (!(fs->super->s_feature_compat &
EXT2_FEATURE_COMPAT_RESIZE_INODE))
@@ -1731,7 +2125,7 @@ static errcode_t fix_resize_inode(ext2_filsys fs)
* should never happen anyway since the filesystem
* should be fsck'ed and we assume it is consistent.
*/
- fprintf(stderr,
+ fprintf(stderr, "%s",
_("Should never happen: resize inode corrupt!\n"));
exit(1);
}
@@ -1761,7 +2155,8 @@ static errcode_t ext2fs_calculate_summary_stats(ext2_filsys fs)
ext2_ino_t ino;
unsigned int group = 0;
unsigned int count = 0;
- int total_free = 0;
+ blk64_t total_blocks_free = 0;
+ int total_inodes_free = 0;
int group_free = 0;
int uninit = 0;
blk64_t super_blk, old_desc_blk, new_desc_blk;
@@ -1778,26 +2173,27 @@ static errcode_t ext2fs_calculate_summary_stats(ext2_filsys fs)
else
old_desc_blocks = fs->desc_blocks +
fs->super->s_reserved_gdt_blocks;
- for (blk = fs->super->s_first_data_block;
- blk < ext2fs_blocks_count(fs->super); blk++) {
+ for (blk = B2C(fs->super->s_first_data_block);
+ blk < ext2fs_blocks_count(fs->super);
+ blk += EXT2FS_CLUSTER_RATIO(fs)) {
if ((uninit &&
- !((blk == super_blk) ||
+ !(EQ_CLSTR(blk, super_blk) ||
((old_desc_blk && old_desc_blocks &&
- (blk >= old_desc_blk) &&
- (blk < old_desc_blk + old_desc_blocks))) ||
- ((new_desc_blk && (blk == new_desc_blk))) ||
- (blk == ext2fs_block_bitmap_loc(fs, group)) ||
- (blk == ext2fs_inode_bitmap_loc(fs, group)) ||
- ((blk >= ext2fs_inode_table_loc(fs, group) &&
- (blk < ext2fs_inode_table_loc(fs, group)
- + fs->inode_blocks_per_group))))) ||
+ GE_CLSTR(blk, old_desc_blk) &&
+ LT_CLSTR(blk, old_desc_blk + old_desc_blocks))) ||
+ ((new_desc_blk && EQ_CLSTR(blk, new_desc_blk))) ||
+ EQ_CLSTR(blk, ext2fs_block_bitmap_loc(fs, group)) ||
+ EQ_CLSTR(blk, ext2fs_inode_bitmap_loc(fs, group)) ||
+ ((GE_CLSTR(blk, ext2fs_inode_table_loc(fs, group)) &&
+ LT_CLSTR(blk, ext2fs_inode_table_loc(fs, group)
+ + fs->inode_blocks_per_group))))) ||
(!ext2fs_fast_test_block_bitmap2(fs->block_map, blk))) {
group_free++;
- total_free++;
+ total_blocks_free++;
}
count++;
- if ((count == fs->super->s_blocks_per_group) ||
- (blk == ext2fs_blocks_count(fs->super)-1)) {
+ if ((count == fs->super->s_clusters_per_group) ||
+ EQ_CLSTR(blk, ext2fs_blocks_count(fs->super)-1)) {
ext2fs_bg_free_blocks_count_set(fs, group, group_free);
ext2fs_group_desc_csum_set(fs, group);
group++;
@@ -1817,13 +2213,13 @@ static errcode_t ext2fs_calculate_summary_stats(ext2_filsys fs)
fs->super->s_reserved_gdt_blocks;
}
}
- ext2fs_free_blocks_count_set(fs->super, total_free);
+ total_blocks_free = C2B(total_blocks_free);
+ ext2fs_free_blocks_count_set(fs->super, total_blocks_free);
/*
* Next, calculate the inode statistics
*/
group_free = 0;
- total_free = 0;
count = 0;
group = 0;
@@ -1833,7 +2229,7 @@ static errcode_t ext2fs_calculate_summary_stats(ext2_filsys fs)
if (uninit ||
!ext2fs_fast_test_inode_bitmap2(fs->inode_map, ino)) {
group_free++;
- total_free++;
+ total_inodes_free++;
}
count++;
if ((count == fs->super->s_inodes_per_group) ||
@@ -1848,7 +2244,7 @@ static errcode_t ext2fs_calculate_summary_stats(ext2_filsys fs)
uninit = ext2fs_bg_flags_test(fs, group, EXT2_BG_INODE_UNINIT);
}
}
- fs->super->s_free_inodes_count = total_free;
+ fs->super->s_free_inodes_count = total_inodes_free;
ext2fs_mark_super_dirty(fs);
return 0;
}
@@ -1880,17 +2276,38 @@ static errcode_t fix_sb_journal_backup(ext2_filsys fs)
return 0;
}
+static int calc_group_overhead(ext2_filsys fs, blk64_t grp,
+ int old_desc_blocks)
+{
+ blk64_t super_blk, old_desc_blk, new_desc_blk;
+ int overhead;
+
+ /* inode table blocks plus allocation bitmaps */
+ overhead = fs->inode_blocks_per_group + 2;
+
+ ext2fs_super_and_bgd_loc2(fs, grp, &super_blk,
+ &old_desc_blk, &new_desc_blk, 0);
+ if ((grp == 0) || super_blk)
+ overhead++;
+ if (old_desc_blk)
+ overhead += old_desc_blocks;
+ else if (new_desc_blk)
+ overhead++;
+ return overhead;
+}
+
+
/*
* calcluate the minimum number of blocks the given fs can be resized to
*/
-blk64_t calculate_minimum_resize_size(ext2_filsys fs)
+blk64_t calculate_minimum_resize_size(ext2_filsys fs, int flags)
{
ext2_ino_t inode_count;
- blk64_t blks_needed, groups, data_blocks;
+ dgrp_t groups, flex_groups;
+ blk64_t blks_needed, data_blocks;
blk64_t grp, data_needed, last_start;
blk64_t overhead = 0;
- int num_of_superblocks = 0;
- int extra_groups = 0;
+ int old_desc_blocks;
int flexbg_size = 1 << fs->super->s_log_groups_per_flex;
/*
@@ -1904,31 +2321,44 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs)
EXT2_BLOCKS_PER_GROUP(fs->super);
groups = ext2fs_div64_ceil(blks_needed,
EXT2_BLOCKS_PER_GROUP(fs->super));
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("fs has %d inodes, %d groups required.\n",
+ inode_count, groups);
+#endif
/*
- * we need to figure out how many backup superblocks we have so we can
- * account for that in the metadata
+ * number of old-style block group descriptor blocks
*/
- for (grp = 0; grp < fs->group_desc_count; grp++) {
- if (ext2fs_bg_has_super(fs, grp))
- num_of_superblocks++;
- }
+ 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 +
+ fs->super->s_reserved_gdt_blocks;
/* calculate how many blocks are needed for data */
data_needed = ext2fs_blocks_count(fs->super) -
ext2fs_free_blocks_count(fs->super);
- data_needed -= SUPER_OVERHEAD(fs) * num_of_superblocks;
- data_needed -= META_OVERHEAD(fs) * fs->group_desc_count;
+ for (grp = 0; grp < fs->group_desc_count; grp++)
+ data_needed -= calc_group_overhead(fs, grp, old_desc_blocks);
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("fs requires %llu data blocks.\n", data_needed);
+#endif
+
+ /*
+ * For ext4 we need to allow for up to a flex_bg worth of
+ * inode tables of slack space so the resize operation can be
+ * guaranteed to finish.
+ */
+ flex_groups = groups;
if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) {
- /*
- * For ext4 we need to allow for up to a flex_bg worth
- * of inode tables of slack space so the resize
- * operation can be guaranteed to finish.
- */
- extra_groups = flexbg_size - (groups & (flexbg_size - 1));
- data_needed += META_OVERHEAD(fs) * extra_groups;
- extra_groups = groups % flexbg_size;
+ dgrp_t remainder = groups & (flexbg_size - 1);
+
+ flex_groups += flexbg_size - remainder;
+ if (flex_groups > fs->group_desc_count)
+ flex_groups = fs->group_desc_count;
}
/*
@@ -1937,31 +2367,37 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs)
*/
data_blocks = groups * EXT2_BLOCKS_PER_GROUP(fs->super);
last_start = 0;
- for (grp = 0; grp < groups; grp++) {
- overhead = META_OVERHEAD(fs);
-
- if (ext2fs_bg_has_super(fs, grp))
- overhead += SUPER_OVERHEAD(fs);
+ for (grp = 0; grp < flex_groups; grp++) {
+ overhead = calc_group_overhead(fs, grp, old_desc_blocks);
/*
* we want to keep track of how much data we can store in
* the groups leading up to the last group so we can determine
* how big the last group needs to be
*/
- if (grp != (groups - 1))
+ if (grp < (groups - 1))
last_start += EXT2_BLOCKS_PER_GROUP(fs->super) -
overhead;
- data_blocks -= overhead;
+ if (data_blocks > overhead)
+ data_blocks -= overhead;
+ else
+ data_blocks = 0;
}
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("With %d group(s), we have %llu blocks available.\n",
+ groups, data_blocks);
+#endif
/*
* if we need more group descriptors in order to accomodate our data
* then we need to add them here
*/
- while (data_needed > data_blocks) {
- blk64_t remainder = data_needed - data_blocks;
- blk64_t extra_grps;
+ blks_needed = data_needed;
+ while (blks_needed > data_blocks) {
+ blk64_t remainder = blks_needed - data_blocks;
+ dgrp_t extra_grps;
/* figure out how many more groups we need for the data */
extra_grps = ext2fs_div64_ceil(remainder,
@@ -1970,54 +2406,72 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs)
data_blocks += extra_grps * EXT2_BLOCKS_PER_GROUP(fs->super);
/* ok we have to account for the last group */
- overhead = META_OVERHEAD(fs);
- if (ext2fs_bg_has_super(fs, groups-1))
- overhead += SUPER_OVERHEAD(fs);
+ overhead = calc_group_overhead(fs, groups-1, old_desc_blocks);
last_start += EXT2_BLOCKS_PER_GROUP(fs->super) - overhead;
- for (grp = groups; grp < groups+extra_grps; grp++) {
- overhead = META_OVERHEAD(fs);
- if (ext2fs_bg_has_super(fs, grp))
- overhead += SUPER_OVERHEAD(fs);
+ grp = flex_groups;
+ groups += extra_grps;
+ if (!(fs->super->s_feature_incompat &
+ EXT4_FEATURE_INCOMPAT_FLEX_BG))
+ flex_groups = groups;
+ else if (groups > flex_groups) {
+ dgrp_t r = groups & (flexbg_size - 1);
+
+ flex_groups = groups + flexbg_size - r;
+ if (flex_groups > fs->group_desc_count)
+ flex_groups = fs->group_desc_count;
+ }
+
+ for (; grp < flex_groups; grp++) {
+ overhead = calc_group_overhead(fs, grp,
+ old_desc_blocks);
/*
* again, we need to see how much data we cram into
* all of the groups leading up to the last group
*/
- if (grp != (groups + extra_grps - 1))
+ if (grp < groups - 1)
last_start += EXT2_BLOCKS_PER_GROUP(fs->super)
- overhead;
data_blocks -= overhead;
}
- groups += extra_grps;
- extra_groups += extra_grps;
- if (fs->super->s_feature_incompat
- & EXT4_FEATURE_INCOMPAT_FLEX_BG
- && extra_groups > flexbg_size) {
- /*
- * For ext4 we need to allow for up to a flex_bg worth
- * of inode tables of slack space so the resize
- * operation can be guaranteed to finish.
- */
- extra_groups = flexbg_size -
- (groups & (flexbg_size - 1));
- data_needed += META_OVERHEAD(fs) * extra_groups;
- extra_groups = groups % flexbg_size;
- }
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("Added %d extra group(s), "
+ "blks_needed %llu, data_blocks %llu, "
+ "last_start %llu\n", extra_grps, blks_needed,
+ data_blocks, last_start);
+#endif
}
/* now for the fun voodoo */
- overhead = META_OVERHEAD(fs);
+ grp = groups - 1;
+ if ((fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) &&
+ (grp & ~(flexbg_size - 1)) == 0)
+ grp = grp & ~(flexbg_size - 1);
+ overhead = 0;
+ for (; grp < flex_groups; grp++)
+ overhead += calc_group_overhead(fs, grp, old_desc_blocks);
+
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("Last group's overhead is %llu\n", overhead);
+#endif
/*
* if this is the case then the last group is going to have data in it
* so we need to adjust the size of the last group accordingly
*/
- if (last_start < data_needed) {
- blk64_t remainder = data_needed - last_start;
+ if (last_start < blks_needed) {
+ blk64_t remainder = blks_needed - last_start;
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("Need %llu data blocks in last group\n",
+ remainder);
+#endif
/*
* 50 is a magic number that mkfs/resize uses to see if its
* even worth making/resizing the fs. basically you need to
@@ -2031,19 +2485,40 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs)
} else
overhead += 50;
- if (ext2fs_bg_has_super(fs, groups-1))
- overhead += SUPER_OVERHEAD(fs);
overhead += fs->super->s_first_data_block;
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("Final size of last group is %lld\n", overhead);
+#endif
+
+ /* Add extra slack for bigalloc file systems */
+ if (EXT2FS_CLUSTER_RATIO(fs) > 1)
+ overhead += EXT2FS_CLUSTER_RATIO(fs) * 2;
/*
- * since our last group doesn't have to be BLOCKS_PER_GROUP large, we
- * only do groups-1, and then add the number of blocks needed to
- * handle the group descriptor metadata+data that we need
+ * since our last group doesn't have to be BLOCKS_PER_GROUP
+ * large, we only do groups-1, and then add the number of
+ * blocks needed to handle the group descriptor metadata+data
+ * that we need
*/
blks_needed = (groups-1) * EXT2_BLOCKS_PER_GROUP(fs->super);
blks_needed += overhead;
/*
+ * Make sure blks_needed covers the end of the inode table in
+ * the last block group.
+ */
+ overhead = ext2fs_inode_table_loc(fs, groups-1) +
+ fs->inode_blocks_per_group;
+ if (blks_needed < overhead)
+ blks_needed = overhead;
+
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("Estimated blocks needed: %llu\n", blks_needed);
+#endif
+
+ /*
* If at this point we've already added up more "needed" than
* the current size, just return current size as minimum.
*/
@@ -2053,10 +2528,32 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs)
* We need to reserve a few extra blocks if extents are
* enabled, in case we need to grow the extent tree. The more
* we shrink the file system, the more space we need.
+ *
+ * The absolute worst case is every single data block is in
+ * the part of the file system that needs to be evacuated,
+ * with each data block needs to be in its own extent, and
+ * with each inode needing at least one extent block.
*/
- if (fs->super->s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS)
- blks_needed += (ext2fs_blocks_count(fs->super) -
- blks_needed)/500;
+ if (fs->super->s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS) {
+ blk64_t safe_margin = (ext2fs_blocks_count(fs->super) -
+ blks_needed)/500;
+ unsigned int exts_per_blk = (fs->blocksize /
+ sizeof(struct ext3_extent)) - 1;
+ blk64_t worst_case = ((data_needed + exts_per_blk - 1) /
+ exts_per_blk);
+
+ if (worst_case < inode_count)
+ worst_case = inode_count;
+
+ if (safe_margin > worst_case)
+ safe_margin = worst_case;
+
+#ifdef RESIZE2FS_DEBUG
+ if (flags & RESIZE_DEBUG_MIN_CALC)
+ printf("Extents safety margin: %llu\n", safe_margin);
+#endif
+ blks_needed += safe_margin;
+ }
return blks_needed;
}
diff --git a/resize/resize2fs.h b/resize/resize2fs.h
index 21847593..7aeab919 100644
--- a/resize/resize2fs.h
+++ b/resize/resize2fs.h
@@ -76,11 +76,27 @@ typedef struct ext2_sim_progress *ext2_sim_progmeter;
#define RESIZE_DEBUG_BMOVE 0x0002
#define RESIZE_DEBUG_INODEMAP 0x0004
#define RESIZE_DEBUG_ITABLEMOVE 0x0008
+#define RESIZE_DEBUG_RTRACK 0x0010
+#define RESIZE_DEBUG_MIN_CALC 0x0020
#define RESIZE_PERCENT_COMPLETE 0x0100
#define RESIZE_VERBOSE 0x0200
/*
+ * This structure is used for keeping track of how much resources have
+ * been used for a particular resize2fs pass.
+ */
+struct resource_track {
+ const char *desc;
+ struct timeval time_start;
+ struct timeval user_start;
+ struct timeval system_start;
+ void *brk_start;
+ unsigned long long bytes_read;
+ unsigned long long bytes_written;
+};
+
+/*
* The core state structure for the ext2 resizer
*/
typedef struct ext2_resize_struct *ext2_resize_t;
@@ -130,7 +146,7 @@ extern errcode_t resize_fs(ext2_filsys fs, blk64_t *new_size, int flags,
extern errcode_t adjust_fs_info(ext2_filsys fs, ext2_filsys old_fs,
ext2fs_block_bitmap reserve_blocks,
blk64_t new_size);
-extern blk64_t calculate_minimum_resize_size(ext2_filsys fs);
+extern blk64_t calculate_minimum_resize_size(ext2_filsys fs, int flags);
/* extent.c */
@@ -144,10 +160,20 @@ extern void ext2fs_extent_dump(ext2_extent extent, FILE *out);
extern errcode_t ext2fs_iterate_extent(ext2_extent extent, __u64 *old_loc,
__u64 *new_loc, __u64 *size);
+/* main.c */
+extern char *program_name;
+
/* online.c */
extern errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
blk64_t *new_size, int flags);
+/* resource_track.c */
+extern void init_resource_track(struct resource_track *track, const char *desc,
+ io_channel channel);
+extern void print_resource_track(ext2_resize_t rfs,
+ struct resource_track *track,
+ io_channel channel);
+
/* sim_progress.c */
extern errcode_t ext2fs_progress_init(ext2_sim_progmeter *ret_prog,
const char *label,
diff --git a/resize/resource_track.c b/resize/resource_track.c
new file mode 100644
index 00000000..f0efe114
--- /dev/null
+++ b/resize/resource_track.c
@@ -0,0 +1,128 @@
+/*
+ * resource_track.c --- resource tracking
+ *
+ * Copyright (C) 2013 by Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+
+#include "config.h"
+#include "resize2fs.h"
+#include <time.h>
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+#include <sys/resource.h>
+
+void init_resource_track(struct resource_track *track, const char *desc,
+ io_channel channel)
+{
+#ifdef HAVE_GETRUSAGE
+ struct rusage r;
+#endif
+ io_stats io_start = 0;
+
+ track->desc = desc;
+ track->brk_start = sbrk(0);
+ gettimeofday(&track->time_start, 0);
+#ifdef HAVE_GETRUSAGE
+#ifdef sun
+ memset(&r, 0, sizeof(struct rusage));
+#endif
+ getrusage(RUSAGE_SELF, &r);
+ track->user_start = r.ru_utime;
+ track->system_start = r.ru_stime;
+#else
+ track->user_start.tv_sec = track->user_start.tv_usec = 0;
+ track->system_start.tv_sec = track->system_start.tv_usec = 0;
+#endif
+ track->bytes_read = 0;
+ track->bytes_written = 0;
+ if (channel && channel->manager && channel->manager->get_stats)
+ channel->manager->get_stats(channel, &io_start);
+ if (io_start) {
+ track->bytes_read = io_start->bytes_read;
+ track->bytes_written = io_start->bytes_written;
+ }
+}
+
+static float timeval_subtract(struct timeval *tv1,
+ struct timeval *tv2)
+{
+ return ((tv1->tv_sec - tv2->tv_sec) +
+ ((float) (tv1->tv_usec - tv2->tv_usec)) / 1000000);
+}
+
+void print_resource_track(ext2_resize_t rfs, struct resource_track *track,
+ io_channel channel)
+{
+#ifdef HAVE_GETRUSAGE
+ struct rusage r;
+#endif
+#ifdef HAVE_MALLINFO
+ struct mallinfo malloc_info;
+#endif
+ struct timeval time_end;
+
+ if ((rfs->flags & RESIZE_DEBUG_RTRACK) == 0)
+ return;
+
+ gettimeofday(&time_end, 0);
+
+ if (track->desc)
+ printf("%s: ", track->desc);
+
+#ifdef HAVE_MALLINFO
+#define kbytes(x) (((unsigned long)(x) + 1023) / 1024)
+
+ malloc_info = mallinfo();
+ printf("Memory used: %luk/%luk (%luk/%luk), ",
+ kbytes(malloc_info.arena), kbytes(malloc_info.hblkhd),
+ kbytes(malloc_info.uordblks), kbytes(malloc_info.fordblks));
+#else
+ printf("Memory used: %lu, ",
+ (unsigned long) (((char *) sbrk(0)) -
+ ((char *) track->brk_start)));
+#endif
+#ifdef HAVE_GETRUSAGE
+ getrusage(RUSAGE_SELF, &r);
+
+ printf("time: %5.2f/%5.2f/%5.2f\n",
+ timeval_subtract(&time_end, &track->time_start),
+ timeval_subtract(&r.ru_utime, &track->user_start),
+ timeval_subtract(&r.ru_stime, &track->system_start));
+#else
+ printf("elapsed time: %6.3f\n",
+ timeval_subtract(&time_end, &track->time_start));
+#endif
+#define mbytes(x) (((x) + 1048575) / 1048576)
+ if (channel && channel->manager && channel->manager->get_stats) {
+ io_stats delta = 0;
+ unsigned long long bytes_read = 0;
+ unsigned long long bytes_written = 0;
+
+ channel->manager->get_stats(channel, &delta);
+ if (delta) {
+ bytes_read = delta->bytes_read - track->bytes_read;
+ bytes_written = delta->bytes_written -
+ track->bytes_written;
+ if (bytes_read == 0 && bytes_written == 0)
+ goto skip_io;
+ if (track->desc)
+ printf("%s: ", track->desc);
+ printf("I/O read: %lluMB, write: %lluMB, "
+ "rate: %.2fMB/s\n",
+ mbytes(bytes_read),
+ mbytes(bytes_written),
+ (double)mbytes(bytes_read + bytes_written) /
+ timeval_subtract(&time_end, &track->time_start));
+ }
+ }
+skip_io:
+ fflush(stdout);
+}
+
diff --git a/resize/test-resize b/resize/test-resize
new file mode 100755
index 00000000..3766f4fa
--- /dev/null
+++ b/resize/test-resize
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+FS=/bigscratch/testfs
+FEATURE="-O 64bit"
+
+RESIZE2FS=/tmp/resize2fs.static
+MKE2FS=mke2fs
+DUMPE2FS=dumpe2fs
+E2FSCK=e2fsck
+
+/bin/rm -f $FS ; touch $FS
+truncate -s 8T $FS
+$MKE2FS -F -t ext4 $FEATURE $FS
+$E2FSCK -FY $FS
+$DUMPE2FS $FS > /tmp/d1
+
+truncate -s 20T $FS
+time $RESIZE2FS -d 31 -p $FS > /tmp/r1
+$DUMPE2FS $FS > /tmp/d2
+$E2FSCK -fy $FS
+$DUMPE2FS $FS > /tmp/d3
+
+truncate -s 21T $FS
+time $RESIZE2FS -d 31 -p $FS > /tmp/r2
+$DUMPE2FS $FS > /tmp/d4
+$E2FSCK -fy $FS
+$DUMPE2FS $FS > /tmp/d5
diff --git a/resize/test_extent.c b/resize/test_extent.c
index fa3f5052..60aa08f3 100644
--- a/resize/test_extent.c
+++ b/resize/test_extent.c
@@ -109,6 +109,8 @@ void do_test(FILE *in, FILE *out)
} else
fputs("# Syntax error\n", out);
}
+ if (extent)
+ ext2fs_free_extent_table(extent);
}
#ifdef __GNUC__
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 9dd10340..37a043ea 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -11,33 +11,46 @@ INSTALL = @INSTALL@
@MCONFIG@
-all:: @DO_TEST_SUITE@
+all:: @DO_TEST_SUITE@ test_one test_script
-test_script: test_script.in Makefile mke2fs.conf
+test_one: $(srcdir)/test_one.in Makefile mke2fs.conf
+ @echo "Creating test_one script..."
+ @echo "#!/bin/sh" > test_one
+@HTREE_CMT@ @echo "HTREE=y" >> test_one
+@QUOTA_CMT@ @echo "QUOTA=y" >> test_one
+ @echo "SRCDIR=@srcdir@" >> test_one
+ @echo "DIFF_OPTS=@UNI_DIFF_OPTS@" >> test_one
+ @cat $(srcdir)/test_one.in >> test_one
+ @chmod +x test_one
+
+test_script: test_one test_script.in Makefile mke2fs.conf
@echo "Creating test_script..."
@echo "#!/bin/sh" > test_script
-@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
mke2fs.conf: $(srcdir)/mke2fs.conf.in
$(CP) $(srcdir)/mke2fs.conf.in mke2fs.conf
-check:: test_script
+.PHONY : test_pre test_post check always_run
+
+TESTS=$(wildcard $(srcdir)/[a-z]_*)
+$(TESTS):: test_one always_run
+ @./test_one $@
+
+test_pre:
+ @$(RM) -f *.failed
@echo "Running e2fsprogs test suite..."
@echo " "
- @./test_script
-check-failed:
- @a=`/bin/ls *.failed 2> /dev/null | sed -e 's/.failed//'`; \
- if test "$$a"x == x ; then \
- echo "No failed tests" ; \
- else \
- ./test_script $$a ; \
- fi
+test_post: test_pre $(TESTS)
+ @$(srcdir)/test_post
+
+check:: test_pre test_post test_script
+
+check-failed: $(basename $(wildcard *.failed))
+ @$(srcdir)/test_post
TDIR=f_testnew
@@ -54,9 +67,9 @@ testnew:
EXPECT1=${TDIR}/expect.1
EXPECT2=${TDIR}/expect.2
# Target which generates the expect files for the new testcase.
-testend: test_script ${TDIR}/image
+testend: test_one ${TDIR}/image
gzip -9 ${TDIR}/image
- @OUT1=${EXPECT1} OUT2=${EXPECT2} ./test_script ${TDIR}
+ @OUT1=${EXPECT1} OUT2=${EXPECT2} ./test_one ${TDIR}
@echo; echo; echo "*** output from first e2fsck run (${EXPECT1}) ***"
@cat ${EXPECT1}
@echo "*** output from second e2fsck run (${EXPECT2}) ***"
@@ -66,7 +79,7 @@ testend: test_script ${TDIR}/image
@echo "If all is well, edit ${TDIR}/name and rename ${TDIR}."
clean::
- $(RM) -f *~ *.log *.new *.failed *.ok test.img test_script mke2fs.conf
+ $(RM) -f *~ *.log *.new *.failed *.ok *.tmp test_one test_script mke2fs.conf
distclean:: clean
$(RM) -f Makefile
diff --git a/tests/d_loaddump/expect b/tests/d_loaddump/expect
index e142eac3..f70df88d 100644
--- a/tests/d_loaddump/expect
+++ b/tests/d_loaddump/expect
@@ -1,7 +1,7 @@
debugfs load/dump test
mke2fs -Fq -b 1024 test.img 512
Exit status is 0
-debugfs -R ''write test.data test_data'' -w test.img
+debugfs -R ''write d_loaddump.tmp test_data'' -w test.img
Allocated inode: 12
Exit status is 0
e2fsck -yf -N test_filesys
@@ -12,7 +12,7 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 12/64 files (0.0% non-contiguous), 158/512 blocks
Exit status is 0
-debugfs -R ''dump test_data test.verify'' test.img
+debugfs -R ''dump test_data d_loaddump.ver.tmp'' test.img
Exit status is 0
-cmp test.data test.verify
+cmp d_loaddump.tmp d_loaddump.ver.tmp
Exit status is 0
diff --git a/tests/d_loaddump/script b/tests/d_loaddump/script
index 48253752..39727ba6 100644
--- a/tests/d_loaddump/script
+++ b/tests/d_loaddump/script
@@ -4,8 +4,8 @@ OUT=$test_name.log
EXP=$test_dir/expect
VERIFY_FSCK_OPT=-yf
-TEST_DATA=test.data
-VERIFY_DATA=test.verify
+TEST_DATA=$test_name.tmp
+VERIFY_DATA=$test_name.ver.tmp
echo "debugfs load/dump test" > $OUT
@@ -24,19 +24,19 @@ echo "debugfs -R ''write $TEST_DATA test_data'' -w test.img" > $OUT.new
$DEBUGFS -R "write $TEST_DATA test_data" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
echo e2fsck $VERIFY_FSCK_OPT -N test_filesys > $OUT.new
$FSCK $VERIFY_FSCK_OPT -N test_filesys $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
echo "debugfs -R ''dump test_data $VERIFY_DATA'' test.img" > $OUT.new
$DEBUGFS -R "dump test_data $VERIFY_DATA" $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
echo "cmp $TEST_DATA $VERIFY_DATA" >> $OUT
cmp $TEST_DATA $VERIFY_DATA >>$OUT
@@ -47,21 +47,20 @@ echo Exit status is $status >> $OUT
# Do the verification
#
-rm -f $test_name.ok $test_name.failed $VERIFY_DATA $TEST_DATA $TMPFILE $OUT.new
+rm -f $VERIFY_DATA $TEST_DATA $TMPFILE $OUT.new
cmp -s $OUT $EXP
status=$?
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
- echo "failed"
+ echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
fi
unset VERIFY_FSCK_OPT NATIVE_FSCK_OPT OUT EXP TEST_DATA VERIFY_DATA
else #if test -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/d_special_files/expect b/tests/d_special_files/expect
new file mode 100644
index 00000000..2b2dbfaa
--- /dev/null
+++ b/tests/d_special_files/expect
@@ -0,0 +1,85 @@
+debugfs create special files
+mke2fs -Fq -b 1024 test.img 512
+Exit status is 0
+debugfs -R ''stat foo'' -w test.img
+Inode: 12 Type: symlink Mode: 0777 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 3
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+Fast_link_dest: bar
+Exit status is 0
+debugfs -R ''stat foo2'' -w test.img
+Inode: 13 Type: symlink Mode: 0777 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 80
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 2
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+BLOCKS:
+(0):28
+TOTAL: 1
+
+Exit status is 0
+debugfs -R ''block_dump 28'' -w test.img
+0000 3132 3334 3536 3738 3930 3132 3334 3536 1234567890123456
+0020 3738 3930 3132 3334 3536 3738 3930 3132 7890123456789012
+0040 3334 3536 3738 3930 3132 3334 3536 3738 3456789012345678
+0060 3930 3132 3334 3536 3738 3930 3132 3334 9012345678901234
+0100 3536 3738 3930 3132 3334 3536 3738 3930 5678901234567890
+0120 0000 0000 0000 0000 0000 0000 0000 0000 ................
+*
+
+Exit status is 0
+debugfs -R ''stat pipe'' -w test.img
+Inode: 14 Type: FIFO Mode: 0000 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 0
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+BLOCKS:
+
+Exit status is 0
+debugfs -R ''stat sda'' -w test.img
+Inode: 15 Type: block special Mode: 0000 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 0
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+Device major/minor number: 08:00 (hex 08:00)
+Exit status is 0
+debugfs -R ''stat null'' -w test.img
+Inode: 16 Type: character special Mode: 0000 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 0
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+Device major/minor number: 01:03 (hex 01:03)
+Exit status is 0
+e2fsck -yf -N test_filesys
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 16/64 files (0.0% non-contiguous), 29/512 blocks
+Exit status is 0
diff --git a/tests/d_special_files/name b/tests/d_special_files/name
new file mode 100644
index 00000000..98d10d23
--- /dev/null
+++ b/tests/d_special_files/name
@@ -0,0 +1 @@
+create special files in debugfs
diff --git a/tests/d_special_files/script b/tests/d_special_files/script
new file mode 100644
index 00000000..9bdff5d0
--- /dev/null
+++ b/tests/d_special_files/script
@@ -0,0 +1,94 @@
+if test -x $DEBUGFS_EXE; then
+
+OUT=$test_name.log
+EXP=$test_dir/expect
+VERIFY_FSCK_OPT=-yf
+
+TEST_DATA=$test_name.tmp
+VERIFY_DATA=$test_name.ver.tmp
+
+echo "debugfs create special files" > $OUT
+
+dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
+
+echo "mke2fs -Fq -b 1024 test.img 512" >> $OUT
+
+$MKE2FS -Fq $TMPFILE 512 > /dev/null 2>&1
+status=$?
+echo Exit status is $status >> $OUT
+
+$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
+set_current_time 20130115140000
+set_super_value lastcheck 0
+set_super_value hash_seed null
+set_super_value mkfs_time 0
+symlink foo bar
+symlink foo2 12345678901234567890123456789012345678901234567890123456789012345678901234567890
+mknod pipe p
+mknod sda b 8 0
+mknod null c 1 3
+EOF
+
+echo "debugfs -R ''stat foo'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat foo" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat foo2'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat foo2" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''block_dump 28'' -w test.img" > $OUT.new
+$DEBUGFS -R "block_dump 28" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat pipe'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat pipe" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat sda'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat sda" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat null'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat null" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo e2fsck $VERIFY_FSCK_OPT -N test_filesys > $OUT.new
+$FSCK $VERIFY_FSCK_OPT -N test_filesys $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+#
+# Do the verification
+#
+
+rm -f $TMPFILE $OUT.new
+cmp -s $OUT $EXP
+status=$?
+
+if [ "$status" = 0 ] ; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ diff $DIFF_OPTS $EXP $OUT > $test_name.failed
+fi
+
+unset VERIFY_FSCK_OPT NATIVE_FSCK_OPT OUT EXP TEST_DATA VERIFY_DATA
+
+else #if test -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
diff --git a/tests/defaults/e_script b/tests/defaults/e_script
index b9150ba7..8c9cfb6a 100644
--- a/tests/defaults/e_script
+++ b/tests/defaults/e_script
@@ -37,10 +37,10 @@ status=$?
rm -f $test_name.failed $test_name.ok
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
- echo "failed"
+ echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXPECT $OUT > $test_name.failed
fi
diff --git a/tests/e_brel_bma/script b/tests/e_brel_bma/script
index c046675e..037e2fb0 100644
--- a/tests/e_brel_bma/script
+++ b/tests/e_brel_bma/script
@@ -1,2 +1 @@
-rm -f $test_name.ok $test_name.failed
-echo "skipped"
+echo "$test_name: $test_description: skipped"
diff --git a/tests/e_icount_normal/name b/tests/e_icount_normal/name
index eafa8020..13178768 100644
--- a/tests/e_icount_normal/name
+++ b/tests/e_icount_normal/name
@@ -1 +1 @@
-inode counting abstraction optimized for storing inode counts
+inode counting structure optimized for low counts
diff --git a/tests/e_irel_ima/script b/tests/e_irel_ima/script
index c046675e..037e2fb0 100644
--- a/tests/e_irel_ima/script
+++ b/tests/e_irel_ima/script
@@ -1,2 +1 @@
-rm -f $test_name.ok $test_name.failed
-echo "skipped"
+echo "$test_name: $test_description: skipped"
diff --git a/tests/f_crashdisk/expect.1 b/tests/f_crashdisk/expect.1
index 70ddf2ec..977a469f 100644
--- a/tests/f_crashdisk/expect.1
+++ b/tests/f_crashdisk/expect.1
@@ -2,10 +2,12 @@ ext2fs_open2: The ext2 superblock is corrupt
../e2fsck/e2fsck: Superblock invalid, trying backup blocks...
../e2fsck/e2fsck: The ext2 superblock is corrupt while trying to open test.img
-The superblock could not be read or does not describe a correct ext2
-filesystem. If the device is valid and it really contains an ext2
+The superblock could not be read or does not describe a valid ext2/ext3/ext4
+filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
+ or
+ e2fsck -b 32768 <device>
Exit status is 8
diff --git a/tests/f_desc_size_128/expect.1 b/tests/f_desc_size_128/expect.1
new file mode 100644
index 00000000..a62f112e
--- /dev/null
+++ b/tests/f_desc_size_128/expect.1
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/256 files (0.0% non-contiguous), 150/8192 blocks
+Exit status is 0
diff --git a/tests/f_desc_size_128/expect.2 b/tests/f_desc_size_128/expect.2
new file mode 100644
index 00000000..a62f112e
--- /dev/null
+++ b/tests/f_desc_size_128/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/256 files (0.0% non-contiguous), 150/8192 blocks
+Exit status is 0
diff --git a/tests/f_desc_size_128/image.gz b/tests/f_desc_size_128/image.gz
new file mode 100644
index 00000000..eda0cabc
--- /dev/null
+++ b/tests/f_desc_size_128/image.gz
Binary files differ
diff --git a/tests/f_desc_size_128/name b/tests/f_desc_size_128/name
new file mode 100644
index 00000000..f09e003e
--- /dev/null
+++ b/tests/f_desc_size_128/name
@@ -0,0 +1 @@
+128-byte group descriptors
diff --git a/tests/f_desc_size_bad/expect.1 b/tests/f_desc_size_bad/expect.1
new file mode 100644
index 00000000..009ee041
--- /dev/null
+++ b/tests/f_desc_size_bad/expect.1
@@ -0,0 +1,11 @@
+ext2fs_check_desc: Block group descriptor size incorrect
+../e2fsck/e2fsck: Group descriptors look bad... trying backup blocks...
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 11/32 files (0.0% non-contiguous), 801/2048 blocks
+Exit status is 1
diff --git a/tests/f_desc_size_bad/expect.2 b/tests/f_desc_size_bad/expect.2
new file mode 100644
index 00000000..d1429fdc
--- /dev/null
+++ b/tests/f_desc_size_bad/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/32 files (0.0% non-contiguous), 801/2048 blocks
+Exit status is 0
diff --git a/tests/f_desc_size_bad/script b/tests/f_desc_size_bad/script
new file mode 100644
index 00000000..54403286
--- /dev/null
+++ b/tests/f_desc_size_bad/script
@@ -0,0 +1,17 @@
+if ! test -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+ return 0
+fi
+
+DESCRIPTION="bad superblock s_desc_size"
+SKIP_GUNZIP=true
+touch $TMPFILE
+$MKE2FS -F -o Linux -O 64bit,extents -N 32 -b 1024 -g 512 -E desc_size=128 $TMPFILE 2048 > $test_name.log 2>&1
+$DEBUGFS -R "ssv desc_size 129" -w $TMPFILE >> $test_name.log 2>&1
+
+E2FSCK_TIME=200704102100
+export E2FSCK_TIME
+
+. $cmd_dir/run_e2fsck
+
+unset E2FSCK_TIME
diff --git a/tests/f_dup4/script b/tests/f_dup4/script
index 290dcc92..498f5259 100644
--- a/tests/f_dup4/script
+++ b/tests/f_dup4/script
@@ -1,14 +1,14 @@
if test -x $DEBUGFS_EXE; then
SKIP_GUNZIP="true"
-TEST_DATA="test.data"
+TEST_DATA="$test_name.tmp"
echo "/ Murphy Magic. The SeCrEt of the UnIvErSe is 43, NOT 42" > $TEST_DATA
touch $TMPFILE
$MKE2FS -N 32 -F -o Linux -b 1024 $TMPFILE 100 > /dev/null 2>&1
$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
-set_current_time 200704102100
+set_current_time 20070410210000
set_super_value lastcheck 0
set_super_value hash_seed null
set_super_value mkfs_time 0
@@ -52,6 +52,5 @@ rm -f $TEST_DATA
unset E2FSCK_TIME TEST_DATA
else #if test -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_dup_de/script b/tests/f_dup_de/script
index d331003f..60378cdc 100644
--- a/tests/f_dup_de/script
+++ b/tests/f_dup_de/script
@@ -12,6 +12,5 @@ fi
rm -f "$TMPFILE".gz
else #if test -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_dup_resize/script b/tests/f_dup_resize/script
index 3f87cbba..659c92ee 100644
--- a/tests/f_dup_resize/script
+++ b/tests/f_dup_resize/script
@@ -1,7 +1,7 @@
if test -x $DEBUGFS_EXE; then
SKIP_GUNZIP="true"
-TEST_DATA="test.data"
+TEST_DATA="$test_name.tmp"
dd if=$TEST_BITS of=$TEST_DATA bs=63k count=1 conv=sync > /dev/null 2>&1
@@ -11,8 +11,8 @@ $DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
freeb 4 4
freeb 8195 4
write $TEST_DATA debugfs
-set_current_time 200504110000
-set_inode_field debugfs mtime 200504110000
+set_current_time 20050411000000
+set_inode_field debugfs mtime 2005041100000000
q
EOF
@@ -26,6 +26,5 @@ rm -f $TEST_DATA
unset E2FSCK_TIME TEST_DATA
else #if test -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_eofblocks/expect.1 b/tests/f_eofblocks/expect.1
new file mode 100644
index 00000000..2e9133e1
--- /dev/null
+++ b/tests/f_eofblocks/expect.1
@@ -0,0 +1,13 @@
+Pass 1: Checking inodes, blocks, and sizes
+Inode 30, i_size is 2048, should be 4096. Fix? yes
+
+Inode 31, i_size is 2048, should be 4096. Fix? yes
+
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 31/56 files (29.0% non-contiguous), 83/400 blocks
+Exit status is 1
diff --git a/tests/f_eofblocks/expect.2 b/tests/f_eofblocks/expect.2
new file mode 100644
index 00000000..2a2bca5c
--- /dev/null
+++ b/tests/f_eofblocks/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 31/56 files (29.0% non-contiguous), 83/400 blocks
+Exit status is 0
diff --git a/tests/f_eofblocks/image.gz b/tests/f_eofblocks/image.gz
new file mode 100644
index 00000000..2586a6a7
--- /dev/null
+++ b/tests/f_eofblocks/image.gz
Binary files differ
diff --git a/tests/f_eofblocks/name b/tests/f_eofblocks/name
new file mode 100644
index 00000000..d93adc19
--- /dev/null
+++ b/tests/f_eofblocks/name
@@ -0,0 +1 @@
+blocks after i_size
diff --git a/tests/f_ext_journal/name b/tests/f_ext_journal/name
new file mode 100644
index 00000000..10e950cf
--- /dev/null
+++ b/tests/f_ext_journal/name
@@ -0,0 +1 @@
+test external journal device
diff --git a/tests/f_extent_interior_start_lblk/expect.1 b/tests/f_extent_interior_start_lblk/expect.1
new file mode 100644
index 00000000..f5b7d46a
--- /dev/null
+++ b/tests/f_extent_interior_start_lblk/expect.1
@@ -0,0 +1,12 @@
+Pass 1: Checking inodes, blocks, and sizes
+Interior extent node level 0 of inode 12:
+Logical start 0 does not match logical start 2 at next level. Fix? yes
+
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks
+Exit status is 1
diff --git a/tests/f_extent_interior_start_lblk/expect.2 b/tests/f_extent_interior_start_lblk/expect.2
new file mode 100644
index 00000000..06c6082c
--- /dev/null
+++ b/tests/f_extent_interior_start_lblk/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks
+Exit status is 0
diff --git a/tests/f_extent_interior_start_lblk/image.gz b/tests/f_extent_interior_start_lblk/image.gz
new file mode 100644
index 00000000..0ed71286
--- /dev/null
+++ b/tests/f_extent_interior_start_lblk/image.gz
Binary files differ
diff --git a/tests/f_extent_interior_start_lblk/name b/tests/f_extent_interior_start_lblk/name
new file mode 100644
index 00000000..fbd5f58f
--- /dev/null
+++ b/tests/f_extent_interior_start_lblk/name
@@ -0,0 +1 @@
+incorrect starting lblk in an interior node
diff --git a/tests/f_extent_oobounds/expect.1 b/tests/f_extent_oobounds/expect.1
new file mode 100644
index 00000000..3164ea0e
--- /dev/null
+++ b/tests/f_extent_oobounds/expect.1
@@ -0,0 +1,24 @@
+Pass 1: Checking inodes, blocks, and sizes
+Inode 12, end of extent exceeds allowed value
+ (logical block 15, physical block 200, len 30)
+Clear? yes
+
+Inode 12, i_blocks is 154, should be 94. Fix? yes
+
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+Block bitmap differences: -(200--229)
+Fix? yes
+
+Free blocks count wrong for group #0 (156, counted=186).
+Fix? yes
+
+Free blocks count wrong (156, counted=186).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/32 files (8.3% non-contiguous), 70/256 blocks
+Exit status is 1
diff --git a/tests/f_extent_oobounds/expect.2 b/tests/f_extent_oobounds/expect.2
new file mode 100644
index 00000000..22c4f2cc
--- /dev/null
+++ b/tests/f_extent_oobounds/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/32 files (8.3% non-contiguous), 70/256 blocks
+Exit status is 0
diff --git a/tests/f_extent_oobounds/script b/tests/f_extent_oobounds/script
new file mode 100644
index 00000000..b00b031a
--- /dev/null
+++ b/tests/f_extent_oobounds/script
@@ -0,0 +1,42 @@
+if test -x $DEBUGFS_EXE; then
+
+SKIP_GUNZIP="true"
+TEST_DATA="$test_name.tmp"
+
+dd if=/dev/zero of=$TMPFILE bs=1k count=256 > /dev/null 2>&1
+$MKE2FS -Ft ext4 $TMPFILE > /dev/null 2>&1
+$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
+write /dev/null testfile
+extent_open testfile
+ insert_node 0 15 100
+ insert_node --after 15 15 115
+ insert_node --after 30 15 130
+ insert_node --after 45 15 145
+ split
+ down
+ split
+ root
+ down
+ next
+ replace_node 15 30 200
+ extent_close
+set_inode_field testfile i_size 61400
+set_inode_field testfile i_blocks 154
+setb 100 15
+setb 130 30
+setb 200 30
+set_bg 0 free_blocks_count 156
+set_bg 0 bg_checksum calc
+set_super_value free_blocks_count 156
+q
+EOF
+
+. $cmd_dir/run_e2fsck
+
+rm -f $TEST_DATA
+
+unset E2FSCK_TIME TEST_DATA
+
+else #if test -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
diff --git a/tests/f_h_badnode/script b/tests/f_h_badnode/script
index 9eec0840..e5fc6b2b 100644
--- a/tests/f_h_badnode/script
+++ b/tests/f_h_badnode/script
@@ -1,6 +1,5 @@
if test "$HTREE"x = yx ; then
. $cmd_dir/run_e2fsck
else
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_h_badroot/script b/tests/f_h_badroot/script
index 9eec0840..e5fc6b2b 100644
--- a/tests/f_h_badroot/script
+++ b/tests/f_h_badroot/script
@@ -1,6 +1,5 @@
if test "$HTREE"x = yx ; then
. $cmd_dir/run_e2fsck
else
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_h_normal/script b/tests/f_h_normal/script
index 9eec0840..e5fc6b2b 100644
--- a/tests/f_h_normal/script
+++ b/tests/f_h_normal/script
@@ -1,6 +1,5 @@
if test "$HTREE"x = yx ; then
. $cmd_dir/run_e2fsck
else
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_h_reindex/script b/tests/f_h_reindex/script
index 9eec0840..e5fc6b2b 100644
--- a/tests/f_h_reindex/script
+++ b/tests/f_h_reindex/script
@@ -1,6 +1,5 @@
if test "$HTREE"x = yx ; then
. $cmd_dir/run_e2fsck
else
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_h_unsigned/script b/tests/f_h_unsigned/script
index 9eec0840..e5fc6b2b 100644
--- a/tests/f_h_unsigned/script
+++ b/tests/f_h_unsigned/script
@@ -1,6 +1,5 @@
if test "$HTREE"x = yx ; then
. $cmd_dir/run_e2fsck
else
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_imagic_fs/script b/tests/f_imagic_fs/script
index 3941be00..1060f04d 100644
--- a/tests/f_imagic_fs/script
+++ b/tests/f_imagic_fs/script
@@ -5,6 +5,5 @@ PREP_CMD='$DEBUGFS -w -R "feature imagic_inodes" $TMPFILE > /dev/null 2>&1'
. $cmd_dir/run_e2fsck
else #if test -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_invalid_extent_symlink/expect.1 b/tests/f_invalid_extent_symlink/expect.1
new file mode 100644
index 00000000..7bda0b73
--- /dev/null
+++ b/tests/f_invalid_extent_symlink/expect.1
@@ -0,0 +1,12 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Symlink /a (inode #12) is invalid.
+Clear? yes
+
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 11/16 files (9.1% non-contiguous), 21/100 blocks
+Exit status is 1
diff --git a/tests/f_invalid_extent_symlink/expect.2 b/tests/f_invalid_extent_symlink/expect.2
new file mode 100644
index 00000000..41ceefb4
--- /dev/null
+++ b/tests/f_invalid_extent_symlink/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks
+Exit status is 0
diff --git a/tests/f_invalid_extent_symlink/image.gz b/tests/f_invalid_extent_symlink/image.gz
new file mode 100644
index 00000000..d4a6eef7
--- /dev/null
+++ b/tests/f_invalid_extent_symlink/image.gz
Binary files differ
diff --git a/tests/f_invalid_extent_symlink/name b/tests/f_invalid_extent_symlink/name
new file mode 100644
index 00000000..3792aac7
--- /dev/null
+++ b/tests/f_invalid_extent_symlink/name
@@ -0,0 +1 @@
+extent-mapped symlink with two blocks
diff --git a/tests/f_jnl_32bit/expect.0 b/tests/f_jnl_32bit/expect.0
new file mode 100644
index 00000000..b7de48ea
--- /dev/null
+++ b/tests/f_jnl_32bit/expect.0
@@ -0,0 +1,567 @@
+Journal starts at block 1, transaction 2
+Found expected sequence 2, type 1 (descriptor block) at block 1
+Dumping descriptor block, sequence 2, at block 1:
+ FS block 2 logged at journal block 2 (flags 0x8)
+Found expected sequence 2, type 2 (commit block) at block 3
+Found expected sequence 3, type 1 (descriptor block) at block 4
+Dumping descriptor block, sequence 3, at block 4:
+ FS block 82 logged at journal block 5 (flags 0x0)
+ FS block 2 logged at journal block 6 (flags 0x2)
+ FS block 99 logged at journal block 7 (flags 0x2)
+ FS block 66 logged at journal block 8 (flags 0x2)
+ FS block 81 logged at journal block 9 (flags 0x2)
+ FS block 98 logged at journal block 10 (flags 0x2)
+ FS block 68 logged at journal block 11 (flags 0x2)
+ FS block 83 logged at journal block 12 (flags 0x2)
+ FS block 354 logged at journal block 13 (flags 0x2)
+ FS block 84 logged at journal block 14 (flags 0x2)
+ FS block 100 logged at journal block 15 (flags 0x2)
+ FS block 97 logged at journal block 16 (flags 0x2)
+ FS block 101 logged at journal block 17 (flags 0x2)
+ FS block 611 logged at journal block 18 (flags 0x2)
+ FS block 102 logged at journal block 19 (flags 0x2)
+ FS block 103 logged at journal block 20 (flags 0x2)
+ FS block 612 logged at journal block 21 (flags 0x2)
+ FS block 104 logged at journal block 22 (flags 0x2)
+ FS block 85 logged at journal block 23 (flags 0x2)
+ FS block 105 logged at journal block 24 (flags 0x2)
+ FS block 86 logged at journal block 25 (flags 0x2)
+ FS block 106 logged at journal block 26 (flags 0x2)
+ FS block 87 logged at journal block 27 (flags 0x2)
+ FS block 107 logged at journal block 28 (flags 0x2)
+ FS block 108 logged at journal block 29 (flags 0x2)
+ FS block 88 logged at journal block 30 (flags 0x2)
+ FS block 109 logged at journal block 31 (flags 0x2)
+ FS block 355 logged at journal block 32 (flags 0x2)
+ FS block 613 logged at journal block 33 (flags 0x2)
+ FS block 110 logged at journal block 34 (flags 0x2)
+ FS block 614 logged at journal block 35 (flags 0x2)
+ FS block 111 logged at journal block 36 (flags 0x2)
+ FS block 615 logged at journal block 37 (flags 0x2)
+ FS block 112 logged at journal block 38 (flags 0x2)
+ FS block 113 logged at journal block 39 (flags 0x2)
+ FS block 616 logged at journal block 40 (flags 0x2)
+ FS block 89 logged at journal block 41 (flags 0x2)
+ FS block 114 logged at journal block 42 (flags 0x2)
+ FS block 90 logged at journal block 43 (flags 0x2)
+ FS block 115 logged at journal block 44 (flags 0x2)
+ FS block 91 logged at journal block 45 (flags 0x2)
+ FS block 116 logged at journal block 46 (flags 0x2)
+ FS block 92 logged at journal block 47 (flags 0x2)
+ FS block 117 logged at journal block 48 (flags 0x2)
+ FS block 118 logged at journal block 49 (flags 0x2)
+ FS block 356 logged at journal block 50 (flags 0x2)
+ FS block 93 logged at journal block 51 (flags 0x2)
+ FS block 119 logged at journal block 52 (flags 0x2)
+ FS block 94 logged at journal block 53 (flags 0x2)
+ FS block 120 logged at journal block 54 (flags 0x2)
+ FS block 95 logged at journal block 55 (flags 0x2)
+ FS block 121 logged at journal block 56 (flags 0x2)
+ FS block 96 logged at journal block 57 (flags 0x2)
+ FS block 122 logged at journal block 58 (flags 0x2)
+ FS block 123 logged at journal block 59 (flags 0x2)
+ FS block 617 logged at journal block 60 (flags 0x2)
+ FS block 124 logged at journal block 61 (flags 0x2)
+ FS block 618 logged at journal block 62 (flags 0x2)
+ FS block 125 logged at journal block 63 (flags 0x2)
+ FS block 619 logged at journal block 64 (flags 0x2)
+ FS block 126 logged at journal block 65 (flags 0x2)
+ FS block 620 logged at journal block 66 (flags 0x2)
+ FS block 357 logged at journal block 67 (flags 0x2)
+ FS block 621 logged at journal block 68 (flags 0x2)
+ FS block 127 logged at journal block 69 (flags 0x2)
+ FS block 128 logged at journal block 70 (flags 0x2)
+ FS block 622 logged at journal block 71 (flags 0x2)
+ FS block 129 logged at journal block 72 (flags 0x2)
+ FS block 623 logged at journal block 73 (flags 0x2)
+ FS block 130 logged at journal block 74 (flags 0x2)
+ FS block 624 logged at journal block 75 (flags 0x2)
+ FS block 131 logged at journal block 76 (flags 0x2)
+ FS block 625 logged at journal block 77 (flags 0x2)
+ FS block 132 logged at journal block 78 (flags 0x2)
+ FS block 133 logged at journal block 79 (flags 0x2)
+ FS block 626 logged at journal block 80 (flags 0x2)
+ FS block 134 logged at journal block 81 (flags 0x2)
+ FS block 627 logged at journal block 82 (flags 0x2)
+ FS block 135 logged at journal block 83 (flags 0x2)
+ FS block 628 logged at journal block 84 (flags 0x2)
+ FS block 136 logged at journal block 85 (flags 0x2)
+ FS block 358 logged at journal block 86 (flags 0x2)
+ FS block 629 logged at journal block 87 (flags 0x2)
+ FS block 137 logged at journal block 88 (flags 0xa)
+Found expected sequence 3, type 1 (descriptor block) at block 89
+Dumping descriptor block, sequence 3, at block 89:
+ FS block 138 logged at journal block 90 (flags 0x0)
+ FS block 630 logged at journal block 91 (flags 0x2)
+ FS block 139 logged at journal block 92 (flags 0x2)
+ FS block 631 logged at journal block 93 (flags 0x2)
+ FS block 140 logged at journal block 94 (flags 0x2)
+ FS block 632 logged at journal block 95 (flags 0x2)
+ FS block 633 logged at journal block 96 (flags 0x2)
+ FS block 141 logged at journal block 97 (flags 0x2)
+ FS block 634 logged at journal block 98 (flags 0x2)
+ FS block 142 logged at journal block 99 (flags 0x2)
+ FS block 143 logged at journal block 100 (flags 0x2)
+ FS block 635 logged at journal block 101 (flags 0x2)
+ FS block 144 logged at journal block 102 (flags 0x2)
+ FS block 636 logged at journal block 103 (flags 0x2)
+ FS block 145 logged at journal block 104 (flags 0x2)
+ FS block 359 logged at journal block 105 (flags 0x2)
+ FS block 637 logged at journal block 106 (flags 0x2)
+ FS block 146 logged at journal block 107 (flags 0x2)
+ FS block 638 logged at journal block 108 (flags 0x2)
+ FS block 147 logged at journal block 109 (flags 0x2)
+ FS block 148 logged at journal block 110 (flags 0x2)
+ FS block 639 logged at journal block 111 (flags 0x2)
+ FS block 149 logged at journal block 112 (flags 0x2)
+ FS block 640 logged at journal block 113 (flags 0x2)
+ FS block 150 logged at journal block 114 (flags 0x2)
+ FS block 641 logged at journal block 115 (flags 0x2)
+ FS block 151 logged at journal block 116 (flags 0x2)
+ FS block 642 logged at journal block 117 (flags 0x2)
+ FS block 152 logged at journal block 118 (flags 0x2)
+ FS block 153 logged at journal block 119 (flags 0x2)
+ FS block 643 logged at journal block 120 (flags 0x2)
+ FS block 154 logged at journal block 121 (flags 0x2)
+ FS block 644 logged at journal block 122 (flags 0x2)
+ FS block 360 logged at journal block 123 (flags 0x2)
+ FS block 645 logged at journal block 124 (flags 0x2)
+ FS block 155 logged at journal block 125 (flags 0x2)
+ FS block 646 logged at journal block 126 (flags 0x2)
+ FS block 156 logged at journal block 127 (flags 0x2)
+ FS block 647 logged at journal block 128 (flags 0x2)
+ FS block 157 logged at journal block 129 (flags 0x2)
+ FS block 158 logged at journal block 130 (flags 0x2)
+ FS block 648 logged at journal block 131 (flags 0x2)
+ FS block 159 logged at journal block 132 (flags 0x2)
+ FS block 649 logged at journal block 133 (flags 0x2)
+ FS block 160 logged at journal block 134 (flags 0x2)
+ FS block 650 logged at journal block 135 (flags 0x2)
+ FS block 161 logged at journal block 136 (flags 0x2)
+ FS block 651 logged at journal block 137 (flags 0x2)
+ FS block 162 logged at journal block 138 (flags 0x2)
+ FS block 163 logged at journal block 139 (flags 0x2)
+ FS block 652 logged at journal block 140 (flags 0x2)
+ FS block 164 logged at journal block 141 (flags 0x2)
+ FS block 361 logged at journal block 142 (flags 0x2)
+ FS block 653 logged at journal block 143 (flags 0x2)
+ FS block 165 logged at journal block 144 (flags 0x2)
+ FS block 654 logged at journal block 145 (flags 0x2)
+ FS block 166 logged at journal block 146 (flags 0x2)
+ FS block 655 logged at journal block 147 (flags 0x2)
+ FS block 167 logged at journal block 148 (flags 0x2)
+ FS block 168 logged at journal block 149 (flags 0x2)
+ FS block 656 logged at journal block 150 (flags 0x2)
+ FS block 657 logged at journal block 151 (flags 0x2)
+ FS block 169 logged at journal block 152 (flags 0x2)
+ FS block 658 logged at journal block 153 (flags 0x2)
+ FS block 170 logged at journal block 154 (flags 0x2)
+ FS block 659 logged at journal block 155 (flags 0x2)
+ FS block 171 logged at journal block 156 (flags 0x2)
+ FS block 660 logged at journal block 157 (flags 0x2)
+ FS block 172 logged at journal block 158 (flags 0x2)
+ FS block 173 logged at journal block 159 (flags 0x2)
+ FS block 362 logged at journal block 160 (flags 0x2)
+ FS block 661 logged at journal block 161 (flags 0x2)
+ FS block 174 logged at journal block 162 (flags 0x2)
+ FS block 662 logged at journal block 163 (flags 0x2)
+ FS block 175 logged at journal block 164 (flags 0x2)
+ FS block 663 logged at journal block 165 (flags 0x2)
+ FS block 176 logged at journal block 166 (flags 0x2)
+ FS block 664 logged at journal block 167 (flags 0x2)
+ FS block 177 logged at journal block 168 (flags 0x2)
+ FS block 178 logged at journal block 169 (flags 0x2)
+ FS block 665 logged at journal block 170 (flags 0x2)
+ FS block 179 logged at journal block 171 (flags 0x2)
+ FS block 666 logged at journal block 172 (flags 0x2)
+ FS block 180 logged at journal block 173 (flags 0xa)
+Found expected sequence 3, type 1 (descriptor block) at block 174
+Dumping descriptor block, sequence 3, at block 174:
+ FS block 667 logged at journal block 175 (flags 0x0)
+ FS block 181 logged at journal block 176 (flags 0x2)
+ FS block 668 logged at journal block 177 (flags 0x2)
+ FS block 363 logged at journal block 178 (flags 0x2)
+ FS block 669 logged at journal block 179 (flags 0x2)
+ FS block 182 logged at journal block 180 (flags 0x2)
+ FS block 183 logged at journal block 181 (flags 0x2)
+ FS block 670 logged at journal block 182 (flags 0x2)
+ FS block 184 logged at journal block 183 (flags 0x2)
+ FS block 671 logged at journal block 184 (flags 0x2)
+ FS block 185 logged at journal block 185 (flags 0x2)
+ FS block 672 logged at journal block 186 (flags 0x2)
+ FS block 186 logged at journal block 187 (flags 0x2)
+ FS block 673 logged at journal block 188 (flags 0x2)
+ FS block 187 logged at journal block 189 (flags 0x2)
+ FS block 188 logged at journal block 190 (flags 0x2)
+ FS block 674 logged at journal block 191 (flags 0x2)
+ FS block 189 logged at journal block 192 (flags 0x2)
+ FS block 675 logged at journal block 193 (flags 0x2)
+ FS block 190 logged at journal block 194 (flags 0x2)
+ FS block 676 logged at journal block 195 (flags 0x2)
+ FS block 191 logged at journal block 196 (flags 0x2)
+ FS block 364 logged at journal block 197 (flags 0x2)
+ FS block 677 logged at journal block 198 (flags 0x2)
+ FS block 192 logged at journal block 199 (flags 0x2)
+ FS block 193 logged at journal block 200 (flags 0x2)
+ FS block 678 logged at journal block 201 (flags 0x2)
+ FS block 194 logged at journal block 202 (flags 0x2)
+ FS block 679 logged at journal block 203 (flags 0x2)
+ FS block 195 logged at journal block 204 (flags 0x2)
+ FS block 680 logged at journal block 205 (flags 0x2)
+ FS block 681 logged at journal block 206 (flags 0x2)
+ FS block 196 logged at journal block 207 (flags 0x2)
+ FS block 682 logged at journal block 208 (flags 0x2)
+ FS block 197 logged at journal block 209 (flags 0x2)
+ FS block 198 logged at journal block 210 (flags 0x2)
+ FS block 683 logged at journal block 211 (flags 0x2)
+ FS block 199 logged at journal block 212 (flags 0x2)
+ FS block 684 logged at journal block 213 (flags 0x2)
+ FS block 200 logged at journal block 214 (flags 0x2)
+ FS block 365 logged at journal block 215 (flags 0x2)
+ FS block 685 logged at journal block 216 (flags 0x2)
+ FS block 201 logged at journal block 217 (flags 0x2)
+ FS block 686 logged at journal block 218 (flags 0x2)
+ FS block 202 logged at journal block 219 (flags 0x2)
+ FS block 203 logged at journal block 220 (flags 0x2)
+ FS block 687 logged at journal block 221 (flags 0xa)
+Found expected sequence 3, type 2 (commit block) at block 222
+Found expected sequence 4, type 1 (descriptor block) at block 223
+Dumping descriptor block, sequence 4, at block 223:
+ FS block 204 logged at journal block 224 (flags 0x0)
+ FS block 687 logged at journal block 225 (flags 0x2)
+ FS block 203 logged at journal block 226 (flags 0x2)
+ FS block 365 logged at journal block 227 (flags 0x2)
+ FS block 2 logged at journal block 228 (flags 0x2)
+ FS block 82 logged at journal block 229 (flags 0x2)
+ FS block 83 logged at journal block 230 (flags 0x2)
+ FS block 66 logged at journal block 231 (flags 0x2)
+ FS block 688 logged at journal block 232 (flags 0x2)
+ FS block 364 logged at journal block 233 (flags 0x2)
+ FS block 680 logged at journal block 234 (flags 0x2)
+ FS block 205 logged at journal block 235 (flags 0x2)
+ FS block 689 logged at journal block 236 (flags 0x2)
+ FS block 206 logged at journal block 237 (flags 0x2)
+ FS block 690 logged at journal block 238 (flags 0x2)
+ FS block 207 logged at journal block 239 (flags 0x2)
+ FS block 208 logged at journal block 240 (flags 0x2)
+ FS block 691 logged at journal block 241 (flags 0x2)
+ FS block 209 logged at journal block 242 (flags 0x2)
+ FS block 692 logged at journal block 243 (flags 0x2)
+ FS block 98 logged at journal block 244 (flags 0x2)
+ FS block 68 logged at journal block 245 (flags 0x2)
+ FS block 366 logged at journal block 246 (flags 0x2)
+ FS block 693 logged at journal block 247 (flags 0x2)
+ FS block 210 logged at journal block 248 (flags 0x2)
+ FS block 694 logged at journal block 249 (flags 0x2)
+ FS block 211 logged at journal block 250 (flags 0x2)
+ FS block 695 logged at journal block 251 (flags 0x2)
+ FS block 212 logged at journal block 252 (flags 0x2)
+ FS block 213 logged at journal block 253 (flags 0x2)
+ FS block 696 logged at journal block 254 (flags 0x2)
+ FS block 214 logged at journal block 255 (flags 0x2)
+ FS block 697 logged at journal block 256 (flags 0x2)
+ FS block 215 logged at journal block 257 (flags 0x2)
+ FS block 698 logged at journal block 258 (flags 0x2)
+ FS block 216 logged at journal block 259 (flags 0x2)
+ FS block 699 logged at journal block 260 (flags 0x2)
+ FS block 217 logged at journal block 261 (flags 0x2)
+ FS block 218 logged at journal block 262 (flags 0x2)
+ FS block 700 logged at journal block 263 (flags 0x2)
+ FS block 219 logged at journal block 264 (flags 0x2)
+ FS block 367 logged at journal block 265 (flags 0x2)
+ FS block 701 logged at journal block 266 (flags 0x2)
+ FS block 220 logged at journal block 267 (flags 0x2)
+ FS block 702 logged at journal block 268 (flags 0x2)
+ FS block 221 logged at journal block 269 (flags 0x2)
+ FS block 703 logged at journal block 270 (flags 0x2)
+ FS block 222 logged at journal block 271 (flags 0x2)
+ FS block 223 logged at journal block 272 (flags 0x2)
+ FS block 704 logged at journal block 273 (flags 0x2)
+ FS block 705 logged at journal block 274 (flags 0x2)
+ FS block 224 logged at journal block 275 (flags 0x2)
+ FS block 706 logged at journal block 276 (flags 0x2)
+ FS block 225 logged at journal block 277 (flags 0x2)
+ FS block 707 logged at journal block 278 (flags 0x2)
+ FS block 226 logged at journal block 279 (flags 0x2)
+ FS block 708 logged at journal block 280 (flags 0x2)
+ FS block 227 logged at journal block 281 (flags 0x2)
+ FS block 228 logged at journal block 282 (flags 0x2)
+ FS block 368 logged at journal block 283 (flags 0x2)
+ FS block 709 logged at journal block 284 (flags 0x2)
+ FS block 229 logged at journal block 285 (flags 0x2)
+ FS block 710 logged at journal block 286 (flags 0x2)
+ FS block 230 logged at journal block 287 (flags 0x2)
+ FS block 711 logged at journal block 288 (flags 0x2)
+ FS block 231 logged at journal block 289 (flags 0x2)
+ FS block 712 logged at journal block 290 (flags 0x2)
+ FS block 232 logged at journal block 291 (flags 0x2)
+ FS block 233 logged at journal block 292 (flags 0x2)
+ FS block 713 logged at journal block 293 (flags 0x2)
+ FS block 234 logged at journal block 294 (flags 0x2)
+ FS block 714 logged at journal block 295 (flags 0x2)
+ FS block 235 logged at journal block 296 (flags 0x2)
+ FS block 715 logged at journal block 297 (flags 0x2)
+ FS block 236 logged at journal block 298 (flags 0x2)
+ FS block 716 logged at journal block 299 (flags 0x2)
+ FS block 369 logged at journal block 300 (flags 0x2)
+ FS block 717 logged at journal block 301 (flags 0x2)
+ FS block 237 logged at journal block 302 (flags 0x2)
+ FS block 238 logged at journal block 303 (flags 0x2)
+ FS block 718 logged at journal block 304 (flags 0x2)
+ FS block 239 logged at journal block 305 (flags 0x2)
+ FS block 719 logged at journal block 306 (flags 0x2)
+ FS block 240 logged at journal block 307 (flags 0xa)
+Found expected sequence 4, type 1 (descriptor block) at block 308
+Dumping descriptor block, sequence 4, at block 308:
+ FS block 720 logged at journal block 309 (flags 0x0)
+ FS block 241 logged at journal block 310 (flags 0x2)
+ FS block 721 logged at journal block 311 (flags 0x2)
+ FS block 242 logged at journal block 312 (flags 0x2)
+ FS block 243 logged at journal block 313 (flags 0x2)
+ FS block 722 logged at journal block 314 (flags 0x2)
+ FS block 244 logged at journal block 315 (flags 0x2)
+ FS block 723 logged at journal block 316 (flags 0x2)
+ FS block 245 logged at journal block 317 (flags 0x2)
+ FS block 724 logged at journal block 318 (flags 0x2)
+ FS block 246 logged at journal block 319 (flags 0x2)
+ FS block 370 logged at journal block 320 (flags 0x2)
+ FS block 725 logged at journal block 321 (flags 0x2)
+ FS block 247 logged at journal block 322 (flags 0x2)
+ FS block 248 logged at journal block 323 (flags 0x2)
+ FS block 726 logged at journal block 324 (flags 0x2)
+ FS block 249 logged at journal block 325 (flags 0x2)
+ FS block 727 logged at journal block 326 (flags 0x2)
+ FS block 250 logged at journal block 327 (flags 0xa)
+Found expected sequence 4, type 2 (commit block) at block 328
+Found expected sequence 5, type 5 (revoke table) at block 329
+Dumping revoke block, sequence 5, at block 329:
+ Revoke FS block 640
+ Revoke FS block 641
+ Revoke FS block 642
+ Revoke FS block 643
+ Revoke FS block 644
+ Revoke FS block 645
+ Revoke FS block 646
+ Revoke FS block 647
+ Revoke FS block 648
+ Revoke FS block 649
+ Revoke FS block 650
+ Revoke FS block 651
+ Revoke FS block 652
+ Revoke FS block 653
+ Revoke FS block 654
+ Revoke FS block 655
+ Revoke FS block 656
+ Revoke FS block 657
+ Revoke FS block 81
+ Revoke FS block 658
+ Revoke FS block 659
+ Revoke FS block 660
+ Revoke FS block 84
+ Revoke FS block 661
+ Revoke FS block 85
+ Revoke FS block 662
+ Revoke FS block 86
+ Revoke FS block 663
+ Revoke FS block 87
+ Revoke FS block 664
+ Revoke FS block 88
+ Revoke FS block 665
+ Revoke FS block 89
+ Revoke FS block 666
+ Revoke FS block 90
+ Revoke FS block 667
+ Revoke FS block 91
+ Revoke FS block 668
+ Revoke FS block 92
+ Revoke FS block 669
+ Revoke FS block 93
+ Revoke FS block 670
+ Revoke FS block 94
+ Revoke FS block 671
+ Revoke FS block 95
+ Revoke FS block 672
+ Revoke FS block 96
+ Revoke FS block 673
+ Revoke FS block 97
+ Revoke FS block 674
+ Revoke FS block 675
+ Revoke FS block 611
+ Revoke FS block 676
+ Revoke FS block 612
+ Revoke FS block 677
+ Revoke FS block 613
+ Revoke FS block 678
+ Revoke FS block 614
+ Revoke FS block 679
+ Revoke FS block 615
+ Revoke FS block 616
+ Revoke FS block 617
+ Revoke FS block 682
+ Revoke FS block 618
+ Revoke FS block 683
+ Revoke FS block 619
+ Revoke FS block 684
+ Revoke FS block 620
+ Revoke FS block 685
+ Revoke FS block 621
+ Revoke FS block 622
+ Revoke FS block 687
+ Revoke FS block 623
+ Revoke FS block 688
+ Revoke FS block 624
+ Revoke FS block 689
+ Revoke FS block 625
+ Revoke FS block 690
+ Revoke FS block 626
+ Revoke FS block 691
+ Revoke FS block 627
+ Revoke FS block 628
+ Revoke FS block 629
+ Revoke FS block 630
+ Revoke FS block 631
+ Revoke FS block 632
+ Revoke FS block 633
+ Revoke FS block 634
+ Revoke FS block 635
+ Revoke FS block 636
+ Revoke FS block 637
+ Revoke FS block 638
+ Revoke FS block 639
+Found expected sequence 5, type 1 (descriptor block) at block 330
+Dumping descriptor block, sequence 5, at block 330:
+ FS block 98 logged at journal block 331 (flags 0x0)
+ FS block 99 logged at journal block 332 (flags 0x2)
+ FS block 354 logged at journal block 333 (flags 0x2)
+ FS block 1 logged at journal block 334 (flags 0x2)
+ FS block 105 logged at journal block 335 (flags 0x2)
+ FS block 2 logged at journal block 336 (flags 0x2)
+ FS block 82 logged at journal block 337 (flags 0x2)
+ FS block 104 logged at journal block 338 (flags 0x2)
+ FS block 66 logged at journal block 339 (flags 0x2)
+ FS block 83 logged at journal block 340 (flags 0x2)
+ FS block 355 logged at journal block 341 (flags 0x2)
+ FS block 112 logged at journal block 342 (flags 0x2)
+ FS block 113 logged at journal block 343 (flags 0x2)
+ FS block 102 logged at journal block 344 (flags 0x2)
+ FS block 103 logged at journal block 345 (flags 0x2)
+ FS block 107 logged at journal block 346 (flags 0x2)
+ FS block 108 logged at journal block 347 (flags 0x2)
+ FS block 101 logged at journal block 348 (flags 0x2)
+ FS block 100 logged at journal block 349 (flags 0x2)
+ FS block 110 logged at journal block 350 (flags 0x2)
+ FS block 109 logged at journal block 351 (flags 0x2)
+ FS block 111 logged at journal block 352 (flags 0x2)
+ FS block 106 logged at journal block 353 (flags 0x2)
+ FS block 68 logged at journal block 354 (flags 0x2)
+ FS block 356 logged at journal block 355 (flags 0x2)
+ FS block 119 logged at journal block 356 (flags 0x2)
+ FS block 118 logged at journal block 357 (flags 0x2)
+ FS block 126 logged at journal block 358 (flags 0x2)
+ FS block 125 logged at journal block 359 (flags 0x2)
+ FS block 116 logged at journal block 360 (flags 0x2)
+ FS block 115 logged at journal block 361 (flags 0x2)
+ FS block 117 logged at journal block 362 (flags 0x2)
+ FS block 121 logged at journal block 363 (flags 0x2)
+ FS block 120 logged at journal block 364 (flags 0x2)
+ FS block 114 logged at journal block 365 (flags 0x2)
+ FS block 124 logged at journal block 366 (flags 0x2)
+ FS block 123 logged at journal block 367 (flags 0x2)
+ FS block 122 logged at journal block 368 (flags 0x2)
+ FS block 357 logged at journal block 369 (flags 0x2)
+ FS block 132 logged at journal block 370 (flags 0x2)
+ FS block 133 logged at journal block 371 (flags 0x2)
+ FS block 358 logged at journal block 372 (flags 0x2)
+ FS block 140 logged at journal block 373 (flags 0x2)
+ FS block 139 logged at journal block 374 (flags 0x2)
+ FS block 130 logged at journal block 375 (flags 0x2)
+ FS block 129 logged at journal block 376 (flags 0x2)
+ FS block 131 logged at journal block 377 (flags 0x2)
+ FS block 135 logged at journal block 378 (flags 0x2)
+ FS block 134 logged at journal block 379 (flags 0x2)
+ FS block 128 logged at journal block 380 (flags 0x2)
+ FS block 137 logged at journal block 381 (flags 0x2)
+ FS block 138 logged at journal block 382 (flags 0x2)
+ FS block 136 logged at journal block 383 (flags 0x2)
+ FS block 127 logged at journal block 384 (flags 0x2)
+ FS block 359 logged at journal block 385 (flags 0x2)
+ FS block 146 logged at journal block 386 (flags 0x2)
+ FS block 145 logged at journal block 387 (flags 0x2)
+ FS block 154 logged at journal block 388 (flags 0x2)
+ FS block 153 logged at journal block 389 (flags 0x2)
+ FS block 144 logged at journal block 390 (flags 0x2)
+ FS block 143 logged at journal block 391 (flags 0x2)
+ FS block 149 logged at journal block 392 (flags 0x2)
+ FS block 148 logged at journal block 393 (flags 0x2)
+ FS block 142 logged at journal block 394 (flags 0x2)
+ FS block 151 logged at journal block 395 (flags 0x2)
+ FS block 150 logged at journal block 396 (flags 0x2)
+ FS block 152 logged at journal block 397 (flags 0x2)
+ FS block 141 logged at journal block 398 (flags 0x2)
+ FS block 147 logged at journal block 399 (flags 0x2)
+ FS block 360 logged at journal block 400 (flags 0x2)
+ FS block 160 logged at journal block 401 (flags 0x2)
+ FS block 159 logged at journal block 402 (flags 0x2)
+ FS block 361 logged at journal block 403 (flags 0x2)
+ FS block 167 logged at journal block 404 (flags 0x2)
+ FS block 168 logged at journal block 405 (flags 0x2)
+ FS block 157 logged at journal block 406 (flags 0x2)
+ FS block 158 logged at journal block 407 (flags 0x2)
+ FS block 162 logged at journal block 408 (flags 0x2)
+ FS block 163 logged at journal block 409 (flags 0x2)
+ FS block 156 logged at journal block 410 (flags 0x2)
+ FS block 155 logged at journal block 411 (flags 0x2)
+ FS block 165 logged at journal block 412 (flags 0x2)
+ FS block 164 logged at journal block 413 (flags 0x2)
+ FS block 166 logged at journal block 414 (flags 0xa)
+Found expected sequence 5, type 1 (descriptor block) at block 415
+Dumping descriptor block, sequence 5, at block 415:
+ FS block 161 logged at journal block 416 (flags 0x0)
+ FS block 362 logged at journal block 417 (flags 0x2)
+ FS block 174 logged at journal block 418 (flags 0x2)
+ FS block 173 logged at journal block 419 (flags 0x2)
+ FS block 181 logged at journal block 420 (flags 0x2)
+ FS block 180 logged at journal block 421 (flags 0x2)
+ FS block 171 logged at journal block 422 (flags 0x2)
+ FS block 170 logged at journal block 423 (flags 0x2)
+ FS block 172 logged at journal block 424 (flags 0x2)
+ FS block 176 logged at journal block 425 (flags 0x2)
+ FS block 175 logged at journal block 426 (flags 0x2)
+ FS block 169 logged at journal block 427 (flags 0x2)
+ FS block 179 logged at journal block 428 (flags 0x2)
+ FS block 178 logged at journal block 429 (flags 0x2)
+ FS block 177 logged at journal block 430 (flags 0x2)
+ FS block 363 logged at journal block 431 (flags 0x2)
+ FS block 187 logged at journal block 432 (flags 0x2)
+ FS block 188 logged at journal block 433 (flags 0x2)
+ FS block 364 logged at journal block 434 (flags 0x2)
+ FS block 195 logged at journal block 435 (flags 0x2)
+ FS block 194 logged at journal block 436 (flags 0x2)
+ FS block 185 logged at journal block 437 (flags 0x2)
+ FS block 184 logged at journal block 438 (flags 0x2)
+ FS block 186 logged at journal block 439 (flags 0x2)
+ FS block 190 logged at journal block 440 (flags 0x2)
+ FS block 189 logged at journal block 441 (flags 0x2)
+ FS block 183 logged at journal block 442 (flags 0x2)
+ FS block 192 logged at journal block 443 (flags 0x2)
+ FS block 193 logged at journal block 444 (flags 0x2)
+ FS block 191 logged at journal block 445 (flags 0x2)
+ FS block 182 logged at journal block 446 (flags 0x2)
+ FS block 365 logged at journal block 447 (flags 0x2)
+ FS block 201 logged at journal block 448 (flags 0x2)
+ FS block 200 logged at journal block 449 (flags 0x2)
+ FS block 680 logged at journal block 450 (flags 0x2)
+ FS block 209 logged at journal block 451 (flags 0x2)
+ FS block 208 logged at journal block 452 (flags 0x2)
+ FS block 199 logged at journal block 453 (flags 0x2)
+ FS block 198 logged at journal block 454 (flags 0x2)
+ FS block 204 logged at journal block 455 (flags 0x2)
+ FS block 203 logged at journal block 456 (flags 0x2)
+ FS block 197 logged at journal block 457 (flags 0x2)
+ FS block 206 logged at journal block 458 (flags 0x2)
+ FS block 205 logged at journal block 459 (flags 0x2)
+ FS block 207 logged at journal block 460 (flags 0x2)
+ FS block 681 logged at journal block 461 (flags 0x2)
+ FS block 196 logged at journal block 462 (flags 0xa)
+Found expected sequence 5, type 2 (commit block) at block 463
+No magic number at block 464: end of journal.
diff --git a/tests/f_jnl_32bit/expect.1 b/tests/f_jnl_32bit/expect.1
new file mode 100644
index 00000000..56aab48b
--- /dev/null
+++ b/tests/f_jnl_32bit/expect.1
@@ -0,0 +1,16 @@
+test_filesys: recovering journal
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+Free blocks count wrong (14699, counted=14660).
+Fix? yes
+
+Free inodes count wrong (4085, counted=3697).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 399/4096 files (0.0% non-contiguous), 1724/16384 blocks
+Exit status is 1
diff --git a/tests/f_jnl_32bit/expect.2 b/tests/f_jnl_32bit/expect.2
new file mode 100644
index 00000000..be948d21
--- /dev/null
+++ b/tests/f_jnl_32bit/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 399/4096 files (0.0% non-contiguous), 1724/16384 blocks
+Exit status is 0
diff --git a/tests/f_jnl_32bit/image.gz b/tests/f_jnl_32bit/image.gz
new file mode 100644
index 00000000..b3081023
--- /dev/null
+++ b/tests/f_jnl_32bit/image.gz
Binary files differ
diff --git a/tests/f_jnl_32bit/name b/tests/f_jnl_32bit/name
new file mode 100644
index 00000000..60e99139
--- /dev/null
+++ b/tests/f_jnl_32bit/name
@@ -0,0 +1 @@
+on-disk 32-bit journal format
diff --git a/tests/f_jnl_32bit/script b/tests/f_jnl_32bit/script
new file mode 100644
index 00000000..9fb4366d
--- /dev/null
+++ b/tests/f_jnl_32bit/script
@@ -0,0 +1,4 @@
+PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed > $test_name.0.log'
+PASS_ZERO=true
+
+. $cmd_dir/run_e2fsck
diff --git a/tests/f_jnl_64bit/expect.0 b/tests/f_jnl_64bit/expect.0
new file mode 100644
index 00000000..2007f039
--- /dev/null
+++ b/tests/f_jnl_64bit/expect.0
@@ -0,0 +1,928 @@
+Journal starts at block 67, transaction 32
+Found expected sequence 32, type 5 (revoke table) at block 67
+Dumping revoke block, sequence 32, at block 67:
+ Revoke FS block 0
+ Revoke FS block 1536
+ Revoke FS block 0
+ Revoke FS block 1472
+ Revoke FS block 0
+ Revoke FS block 1473
+ Revoke FS block 0
+ Revoke FS block 1474
+ Revoke FS block 0
+ Revoke FS block 1475
+ Revoke FS block 0
+ Revoke FS block 1476
+ Revoke FS block 0
+ Revoke FS block 1541
+ Revoke FS block 0
+ Revoke FS block 1477
+ Revoke FS block 0
+ Revoke FS block 1478
+ Revoke FS block 0
+ Revoke FS block 1479
+ Revoke FS block 0
+ Revoke FS block 1480
+ Revoke FS block 0
+ Revoke FS block 1481
+ Revoke FS block 0
+ Revoke FS block 1482
+ Revoke FS block 0
+ Revoke FS block 1483
+ Revoke FS block 0
+ Revoke FS block 1484
+ Revoke FS block 0
+ Revoke FS block 1485
+ Revoke FS block 0
+ Revoke FS block 1486
+ Revoke FS block 0
+ Revoke FS block 1487
+ Revoke FS block 0
+ Revoke FS block 1488
+ Revoke FS block 0
+ Revoke FS block 1489
+ Revoke FS block 0
+ Revoke FS block 1490
+ Revoke FS block 0
+ Revoke FS block 1491
+ Revoke FS block 0
+ Revoke FS block 1556
+ Revoke FS block 0
+ Revoke FS block 1492
+ Revoke FS block 0
+ Revoke FS block 1493
+ Revoke FS block 0
+ Revoke FS block 1429
+ Revoke FS block 0
+ Revoke FS block 1494
+ Revoke FS block 0
+ Revoke FS block 1495
+ Revoke FS block 0
+ Revoke FS block 1496
+ Revoke FS block 0
+ Revoke FS block 1432
+ Revoke FS block 0
+ Revoke FS block 1497
+ Revoke FS block 0
+ Revoke FS block 1498
+ Revoke FS block 0
+ Revoke FS block 1434
+ Revoke FS block 0
+ Revoke FS block 1499
+ Revoke FS block 0
+ Revoke FS block 1435
+ Revoke FS block 0
+ Revoke FS block 1500
+ Revoke FS block 0
+ Revoke FS block 1501
+ Revoke FS block 0
+ Revoke FS block 1502
+ Revoke FS block 0
+ Revoke FS block 1503
+ Revoke FS block 0
+ Revoke FS block 1504
+ Revoke FS block 0
+ Revoke FS block 1505
+ Revoke FS block 0
+ Revoke FS block 1506
+ Revoke FS block 0
+ Revoke FS block 1442
+ Revoke FS block 0
+ Revoke FS block 1507
+ Revoke FS block 0
+ Revoke FS block 1508
+ Revoke FS block 0
+ Revoke FS block 1444
+ Revoke FS block 0
+ Revoke FS block 1509
+ Revoke FS block 0
+ Revoke FS block 1445
+ Revoke FS block 0
+ Revoke FS block 1510
+ Revoke FS block 0
+ Revoke FS block 1511
+ Revoke FS block 0
+ Revoke FS block 1512
+ Revoke FS block 0
+ Revoke FS block 1513
+ Revoke FS block 0
+ Revoke FS block 1449
+ Revoke FS block 0
+ Revoke FS block 1514
+ Revoke FS block 0
+ Revoke FS block 1515
+ Revoke FS block 0
+ Revoke FS block 1516
+ Revoke FS block 0
+ Revoke FS block 1517
+ Revoke FS block 0
+ Revoke FS block 1453
+ Revoke FS block 0
+ Revoke FS block 1518
+ Revoke FS block 0
+ Revoke FS block 1519
+ Revoke FS block 0
+ Revoke FS block 1520
+ Revoke FS block 0
+ Revoke FS block 1456
+ Revoke FS block 0
+ Revoke FS block 1521
+ Revoke FS block 0
+ Revoke FS block 1457
+ Revoke FS block 0
+ Revoke FS block 1522
+ Revoke FS block 0
+ Revoke FS block 1458
+ Revoke FS block 0
+ Revoke FS block 1523
+ Revoke FS block 0
+ Revoke FS block 1459
+ Revoke FS block 0
+ Revoke FS block 1524
+ Revoke FS block 0
+ Revoke FS block 1460
+ Revoke FS block 0
+ Revoke FS block 1525
+ Revoke FS block 0
+ Revoke FS block 1461
+ Revoke FS block 0
+ Revoke FS block 1526
+ Revoke FS block 0
+ Revoke FS block 1462
+ Revoke FS block 0
+ Revoke FS block 1527
+ Revoke FS block 0
+ Revoke FS block 1463
+ Revoke FS block 0
+ Revoke FS block 1528
+ Revoke FS block 0
+ Revoke FS block 1464
+ Revoke FS block 0
+ Revoke FS block 1529
+ Revoke FS block 0
+ Revoke FS block 1465
+ Revoke FS block 0
+ Revoke FS block 1530
+ Revoke FS block 0
+ Revoke FS block 1466
+ Revoke FS block 0
+ Revoke FS block 1531
+ Revoke FS block 0
+ Revoke FS block 1467
+ Revoke FS block 0
+ Revoke FS block 1532
+ Revoke FS block 0
+ Revoke FS block 1468
+ Revoke FS block 0
+ Revoke FS block 1533
+ Revoke FS block 0
+ Revoke FS block 1469
+ Revoke FS block 0
+ Revoke FS block 1534
+ Revoke FS block 0
+ Revoke FS block 1470
+ Revoke FS block 0
+ Revoke FS block 1535
+ Revoke FS block 0
+ Revoke FS block 1471
+Found expected sequence 32, type 1 (descriptor block) at block 68
+Dumping descriptor block, sequence 32, at block 68:
+ FS block 802 logged at journal block 69 (flags 0x0)
+ FS block 803 logged at journal block 70 (flags 0x2)
+ FS block 131 logged at journal block 71 (flags 0x2)
+ FS block 2 logged at journal block 72 (flags 0x2)
+ FS block 1 logged at journal block 73 (flags 0x2)
+ FS block 147 logged at journal block 74 (flags 0x2)
+ FS block 783 logged at journal block 75 (flags 0x2)
+ FS block 130 logged at journal block 76 (flags 0x2)
+ FS block 807 logged at journal block 77 (flags 0x2)
+ FS block 808 logged at journal block 78 (flags 0x2)
+ FS block 788 logged at journal block 79 (flags 0x2)
+ FS block 789 logged at journal block 80 (flags 0x2)
+ FS block 785 logged at journal block 81 (flags 0x2)
+ FS block 786 logged at journal block 82 (flags 0x2)
+ FS block 787 logged at journal block 83 (flags 0x2)
+ FS block 798 logged at journal block 84 (flags 0x2)
+ FS block 799 logged at journal block 85 (flags 0x2)
+ FS block 800 logged at journal block 86 (flags 0x2)
+ FS block 801 logged at journal block 87 (flags 0x2)
+ FS block 812 logged at journal block 88 (flags 0x2)
+ FS block 813 logged at journal block 89 (flags 0x2)
+ FS block 790 logged at journal block 90 (flags 0x2)
+ FS block 132 logged at journal block 91 (flags 0x2)
+ FS block 162 logged at journal block 92 (flags 0x2)
+ FS block 815 logged at journal block 93 (flags 0x2)
+ FS block 819 logged at journal block 94 (flags 0x2)
+ FS block 820 logged at journal block 95 (flags 0x2)
+ FS block 838 logged at journal block 96 (flags 0x2)
+ FS block 839 logged at journal block 97 (flags 0x2)
+ FS block 836 logged at journal block 98 (flags 0x2)
+ FS block 837 logged at journal block 99 (flags 0x2)
+ FS block 829 logged at journal block 100 (flags 0x2)
+ FS block 830 logged at journal block 101 (flags 0x2)
+ FS block 823 logged at journal block 102 (flags 0x2)
+ FS block 824 logged at journal block 103 (flags 0x2)
+ FS block 826 logged at journal block 104 (flags 0x2)
+ FS block 827 logged at journal block 105 (flags 0x2)
+ FS block 817 logged at journal block 106 (flags 0x2)
+ FS block 818 logged at journal block 107 (flags 0x2)
+ FS block 828 logged at journal block 108 (flags 0x2)
+ FS block 816 logged at journal block 109 (flags 0x2)
+ FS block 841 logged at journal block 110 (flags 0x2)
+ FS block 842 logged at journal block 111 (flags 0x2)
+ FS block 832 logged at journal block 112 (flags 0x2)
+ FS block 833 logged at journal block 113 (flags 0x2)
+ FS block 843 logged at journal block 114 (flags 0x2)
+ FS block 846 logged at journal block 115 (flags 0x2)
+ FS block 847 logged at journal block 116 (flags 0x2)
+ FS block 825 logged at journal block 117 (flags 0x2)
+ FS block 848 logged at journal block 118 (flags 0x2)
+ FS block 844 logged at journal block 119 (flags 0x2)
+ FS block 834 logged at journal block 120 (flags 0x2)
+ FS block 835 logged at journal block 121 (flags 0x2)
+ FS block 840 logged at journal block 122 (flags 0x2)
+ FS block 821 logged at journal block 123 (flags 0x2)
+ FS block 822 logged at journal block 124 (flags 0x2)
+ FS block 831 logged at journal block 125 (flags 0x2)
+ FS block 845 logged at journal block 126 (flags 0x2)
+ FS block 852 logged at journal block 127 (flags 0x2)
+ FS block 853 logged at journal block 128 (flags 0x2)
+ FS block 871 logged at journal block 129 (flags 0x2)
+ FS block 872 logged at journal block 130 (flags 0x2)
+ FS block 868 logged at journal block 131 (flags 0x2)
+ FS block 869 logged at journal block 132 (flags 0x2)
+ FS block 870 logged at journal block 133 (flags 0x2)
+ FS block 862 logged at journal block 134 (flags 0x2)
+ FS block 863 logged at journal block 135 (flags 0x2)
+ FS block 856 logged at journal block 136 (flags 0x2)
+ FS block 857 logged at journal block 137 (flags 0x2)
+ FS block 858 logged at journal block 138 (flags 0x2)
+ FS block 859 logged at journal block 139 (flags 0x2)
+ FS block 849 logged at journal block 140 (flags 0x2)
+ FS block 850 logged at journal block 141 (flags 0x2)
+ FS block 851 logged at journal block 142 (flags 0x2)
+ FS block 860 logged at journal block 143 (flags 0x2)
+ FS block 861 logged at journal block 144 (flags 0x2)
+ FS block 873 logged at journal block 145 (flags 0x2)
+ FS block 874 logged at journal block 146 (flags 0x2)
+ FS block 864 logged at journal block 147 (flags 0x2)
+ FS block 865 logged at journal block 148 (flags 0x2)
+ FS block 866 logged at journal block 149 (flags 0xa)
+Found expected sequence 32, type 1 (descriptor block) at block 150
+Dumping descriptor block, sequence 32, at block 150:
+ FS block 875 logged at journal block 151 (flags 0x0)
+ FS block 876 logged at journal block 152 (flags 0x2)
+ FS block 878 logged at journal block 153 (flags 0x2)
+ FS block 879 logged at journal block 154 (flags 0x2)
+ FS block 880 logged at journal block 155 (flags 0x2)
+ FS block 881 logged at journal block 156 (flags 0x2)
+ FS block 877 logged at journal block 157 (flags 0x2)
+ FS block 867 logged at journal block 158 (flags 0x2)
+ FS block 854 logged at journal block 159 (flags 0x2)
+ FS block 855 logged at journal block 160 (flags 0x2)
+ FS block 885 logged at journal block 161 (flags 0x2)
+ FS block 886 logged at journal block 162 (flags 0x2)
+ FS block 903 logged at journal block 163 (flags 0x2)
+ FS block 904 logged at journal block 164 (flags 0x2)
+ FS block 901 logged at journal block 165 (flags 0x2)
+ FS block 902 logged at journal block 166 (flags 0x2)
+ FS block 895 logged at journal block 167 (flags 0x2)
+ FS block 896 logged at journal block 168 (flags 0x2)
+ FS block 888 logged at journal block 169 (flags 0x2)
+ FS block 889 logged at journal block 170 (flags 0x2)
+ FS block 891 logged at journal block 171 (flags 0x2)
+ FS block 892 logged at journal block 172 (flags 0x2)
+ FS block 882 logged at journal block 173 (flags 0x2)
+ FS block 883 logged at journal block 174 (flags 0x2)
+ FS block 893 logged at journal block 175 (flags 0x2)
+ FS block 906 logged at journal block 176 (flags 0x2)
+ FS block 907 logged at journal block 177 (flags 0x2)
+ FS block 897 logged at journal block 178 (flags 0x2)
+ FS block 898 logged at journal block 179 (flags 0x2)
+ FS block 908 logged at journal block 180 (flags 0x2)
+ FS block 911 logged at journal block 181 (flags 0x2)
+ FS block 912 logged at journal block 182 (flags 0x2)
+ FS block 890 logged at journal block 183 (flags 0x2)
+ FS block 913 logged at journal block 184 (flags 0x2)
+ FS block 894 logged at journal block 185 (flags 0x2)
+ FS block 909 logged at journal block 186 (flags 0x2)
+ FS block 900 logged at journal block 187 (flags 0x2)
+ FS block 905 logged at journal block 188 (flags 0x2)
+ FS block 887 logged at journal block 189 (flags 0x2)
+ FS block 884 logged at journal block 190 (flags 0x2)
+ FS block 899 logged at journal block 191 (flags 0x2)
+ FS block 910 logged at journal block 192 (flags 0x2)
+ FS block 917 logged at journal block 193 (flags 0x2)
+ FS block 918 logged at journal block 194 (flags 0x2)
+ FS block 1537 logged at journal block 195 (flags 0x2)
+ FS block 936 logged at journal block 196 (flags 0x2)
+ FS block 937 logged at journal block 197 (flags 0x2)
+ FS block 933 logged at journal block 198 (flags 0x2)
+ FS block 1554 logged at journal block 199 (flags 0x2)
+ FS block 934 logged at journal block 200 (flags 0xa)
+Found expected sequence 32, type 2 (commit block) at block 201
+Found expected sequence 33, type 5 (revoke table) at block 202
+Dumping revoke block, sequence 33, at block 202:
+ Revoke FS block 0
+ Revoke FS block 1600
+ Revoke FS block 0
+ Revoke FS block 1601
+ Revoke FS block 0
+ Revoke FS block 1537
+ Revoke FS block 0
+ Revoke FS block 1602
+ Revoke FS block 0
+ Revoke FS block 1538
+ Revoke FS block 0
+ Revoke FS block 1603
+ Revoke FS block 0
+ Revoke FS block 1539
+ Revoke FS block 0
+ Revoke FS block 1604
+ Revoke FS block 0
+ Revoke FS block 1540
+ Revoke FS block 0
+ Revoke FS block 1605
+ Revoke FS block 0
+ Revoke FS block 1606
+ Revoke FS block 0
+ Revoke FS block 1542
+ Revoke FS block 0
+ Revoke FS block 1607
+ Revoke FS block 0
+ Revoke FS block 1543
+ Revoke FS block 0
+ Revoke FS block 1608
+ Revoke FS block 0
+ Revoke FS block 1544
+ Revoke FS block 0
+ Revoke FS block 1609
+ Revoke FS block 0
+ Revoke FS block 1545
+ Revoke FS block 0
+ Revoke FS block 1610
+ Revoke FS block 0
+ Revoke FS block 1546
+ Revoke FS block 0
+ Revoke FS block 1611
+ Revoke FS block 0
+ Revoke FS block 1547
+ Revoke FS block 0
+ Revoke FS block 1612
+ Revoke FS block 0
+ Revoke FS block 1548
+ Revoke FS block 0
+ Revoke FS block 1613
+ Revoke FS block 0
+ Revoke FS block 1549
+ Revoke FS block 0
+ Revoke FS block 1614
+ Revoke FS block 0
+ Revoke FS block 1550
+ Revoke FS block 0
+ Revoke FS block 1615
+ Revoke FS block 0
+ Revoke FS block 1551
+ Revoke FS block 0
+ Revoke FS block 1616
+ Revoke FS block 0
+ Revoke FS block 1552
+ Revoke FS block 0
+ Revoke FS block 1617
+ Revoke FS block 0
+ Revoke FS block 1553
+ Revoke FS block 0
+ Revoke FS block 1554
+ Revoke FS block 0
+ Revoke FS block 1555
+ Revoke FS block 0
+ Revoke FS block 1557
+ Revoke FS block 0
+ Revoke FS block 1558
+ Revoke FS block 0
+ Revoke FS block 1559
+ Revoke FS block 0
+ Revoke FS block 1560
+ Revoke FS block 0
+ Revoke FS block 1561
+ Revoke FS block 0
+ Revoke FS block 1562
+ Revoke FS block 0
+ Revoke FS block 1563
+ Revoke FS block 0
+ Revoke FS block 1564
+ Revoke FS block 0
+ Revoke FS block 1565
+ Revoke FS block 0
+ Revoke FS block 1566
+ Revoke FS block 0
+ Revoke FS block 1567
+ Revoke FS block 0
+ Revoke FS block 1568
+ Revoke FS block 0
+ Revoke FS block 1569
+ Revoke FS block 0
+ Revoke FS block 1570
+ Revoke FS block 0
+ Revoke FS block 1571
+ Revoke FS block 0
+ Revoke FS block 1572
+ Revoke FS block 0
+ Revoke FS block 1573
+ Revoke FS block 0
+ Revoke FS block 1574
+ Revoke FS block 0
+ Revoke FS block 1575
+ Revoke FS block 0
+ Revoke FS block 1576
+ Revoke FS block 0
+ Revoke FS block 1577
+ Revoke FS block 0
+ Revoke FS block 1578
+ Revoke FS block 0
+ Revoke FS block 1579
+ Revoke FS block 0
+ Revoke FS block 1580
+ Revoke FS block 0
+ Revoke FS block 1581
+ Revoke FS block 0
+ Revoke FS block 1582
+ Revoke FS block 0
+ Revoke FS block 1583
+ Revoke FS block 0
+ Revoke FS block 1584
+ Revoke FS block 0
+ Revoke FS block 1585
+ Revoke FS block 0
+ Revoke FS block 1586
+ Revoke FS block 0
+ Revoke FS block 1587
+ Revoke FS block 0
+ Revoke FS block 1588
+ Revoke FS block 0
+ Revoke FS block 1589
+ Revoke FS block 0
+ Revoke FS block 1590
+ Revoke FS block 0
+ Revoke FS block 1591
+ Revoke FS block 0
+ Revoke FS block 1592
+ Revoke FS block 0
+ Revoke FS block 1593
+ Revoke FS block 0
+ Revoke FS block 1594
+ Revoke FS block 0
+ Revoke FS block 1595
+ Revoke FS block 0
+ Revoke FS block 1596
+ Revoke FS block 0
+ Revoke FS block 1597
+ Revoke FS block 0
+ Revoke FS block 1598
+ Revoke FS block 0
+ Revoke FS block 1599
+Found expected sequence 33, type 1 (descriptor block) at block 203
+Dumping descriptor block, sequence 33, at block 203:
+ FS block 933 logged at journal block 204 (flags 0x0)
+ FS block 1 logged at journal block 205 (flags 0x2)
+ FS block 935 logged at journal block 206 (flags 0x2)
+ FS block 131 logged at journal block 207 (flags 0x2)
+ FS block 2 logged at journal block 208 (flags 0x2)
+ FS block 147 logged at journal block 209 (flags 0x2)
+ FS block 934 logged at journal block 210 (flags 0x2)
+ FS block 913 logged at journal block 211 (flags 0x2)
+ FS block 130 logged at journal block 212 (flags 0x2)
+ FS block 936 logged at journal block 213 (flags 0x2)
+ FS block 927 logged at journal block 214 (flags 0x2)
+ FS block 928 logged at journal block 215 (flags 0x2)
+ FS block 921 logged at journal block 216 (flags 0x2)
+ FS block 922 logged at journal block 217 (flags 0x2)
+ FS block 923 logged at journal block 218 (flags 0x2)
+ FS block 924 logged at journal block 219 (flags 0x2)
+ FS block 925 logged at journal block 220 (flags 0x2)
+ FS block 915 logged at journal block 221 (flags 0x2)
+ FS block 916 logged at journal block 222 (flags 0x2)
+ FS block 926 logged at journal block 223 (flags 0x2)
+ FS block 914 logged at journal block 224 (flags 0x2)
+ FS block 938 logged at journal block 225 (flags 0x2)
+ FS block 939 logged at journal block 226 (flags 0x2)
+ FS block 940 logged at journal block 227 (flags 0x2)
+ FS block 930 logged at journal block 228 (flags 0x2)
+ FS block 931 logged at journal block 229 (flags 0x2)
+ FS block 941 logged at journal block 230 (flags 0x2)
+ FS block 943 logged at journal block 231 (flags 0x2)
+ FS block 944 logged at journal block 232 (flags 0x2)
+ FS block 945 logged at journal block 233 (flags 0x2)
+ FS block 946 logged at journal block 234 (flags 0x2)
+ FS block 942 logged at journal block 235 (flags 0x2)
+ FS block 932 logged at journal block 236 (flags 0x2)
+ FS block 937 logged at journal block 237 (flags 0x2)
+ FS block 918 logged at journal block 238 (flags 0x2)
+ FS block 919 logged at journal block 239 (flags 0x2)
+ FS block 920 logged at journal block 240 (flags 0x2)
+ FS block 917 logged at journal block 241 (flags 0x2)
+ FS block 929 logged at journal block 242 (flags 0x2)
+ FS block 132 logged at journal block 243 (flags 0x2)
+ FS block 162 logged at journal block 244 (flags 0x2)
+ FS block 950 logged at journal block 245 (flags 0x2)
+ FS block 951 logged at journal block 246 (flags 0x2)
+ FS block 969 logged at journal block 247 (flags 0x2)
+ FS block 970 logged at journal block 248 (flags 0x2)
+ FS block 966 logged at journal block 249 (flags 0x2)
+ FS block 967 logged at journal block 250 (flags 0x2)
+ FS block 968 logged at journal block 251 (flags 0x2)
+ FS block 960 logged at journal block 252 (flags 0x2)
+ FS block 961 logged at journal block 253 (flags 0x2)
+ FS block 954 logged at journal block 254 (flags 0x2)
+ FS block 955 logged at journal block 255 (flags 0x2)
+ FS block 956 logged at journal block 256 (flags 0x2)
+ FS block 957 logged at journal block 257 (flags 0x2)
+ FS block 947 logged at journal block 258 (flags 0x2)
+ FS block 948 logged at journal block 259 (flags 0x2)
+ FS block 958 logged at journal block 260 (flags 0x2)
+ FS block 971 logged at journal block 261 (flags 0x2)
+ FS block 972 logged at journal block 262 (flags 0x2)
+ FS block 962 logged at journal block 263 (flags 0x2)
+ FS block 963 logged at journal block 264 (flags 0x2)
+ FS block 973 logged at journal block 265 (flags 0x2)
+ FS block 976 logged at journal block 266 (flags 0x2)
+ FS block 977 logged at journal block 267 (flags 0x2)
+ FS block 978 logged at journal block 268 (flags 0x2)
+ FS block 959 logged at journal block 269 (flags 0x2)
+ FS block 974 logged at journal block 270 (flags 0x2)
+ FS block 975 logged at journal block 271 (flags 0x2)
+ FS block 965 logged at journal block 272 (flags 0x2)
+ FS block 952 logged at journal block 273 (flags 0x2)
+ FS block 949 logged at journal block 274 (flags 0x2)
+ FS block 964 logged at journal block 275 (flags 0x2)
+ FS block 953 logged at journal block 276 (flags 0x2)
+ FS block 979 logged at journal block 277 (flags 0x2)
+ FS block 982 logged at journal block 278 (flags 0x2)
+ FS block 983 logged at journal block 279 (flags 0x2)
+ FS block 984 logged at journal block 280 (flags 0x2)
+ FS block 1001 logged at journal block 281 (flags 0x2)
+ FS block 1002 logged at journal block 282 (flags 0x2)
+ FS block 999 logged at journal block 283 (flags 0x2)
+ FS block 1000 logged at journal block 284 (flags 0xa)
+Found expected sequence 33, type 1 (descriptor block) at block 285
+Dumping descriptor block, sequence 33, at block 285:
+ FS block 992 logged at journal block 286 (flags 0x0)
+ FS block 993 logged at journal block 287 (flags 0x2)
+ FS block 994 logged at journal block 288 (flags 0x2)
+ FS block 986 logged at journal block 289 (flags 0x2)
+ FS block 987 logged at journal block 290 (flags 0x2)
+ FS block 989 logged at journal block 291 (flags 0x2)
+ FS block 990 logged at journal block 292 (flags 0x2)
+ FS block 980 logged at journal block 293 (flags 0x2)
+ FS block 981 logged at journal block 294 (flags 0x2)
+ FS block 991 logged at journal block 295 (flags 0x2)
+ FS block 1004 logged at journal block 296 (flags 0x2)
+ FS block 1005 logged at journal block 297 (flags 0x2)
+ FS block 995 logged at journal block 298 (flags 0x2)
+ FS block 996 logged at journal block 299 (flags 0x2)
+ FS block 1006 logged at journal block 300 (flags 0x2)
+ FS block 1009 logged at journal block 301 (flags 0x2)
+ FS block 1010 logged at journal block 302 (flags 0x2)
+ FS block 988 logged at journal block 303 (flags 0x2)
+ FS block 1011 logged at journal block 304 (flags 0x2)
+ FS block 1007 logged at journal block 305 (flags 0x2)
+ FS block 997 logged at journal block 306 (flags 0x2)
+ FS block 998 logged at journal block 307 (flags 0x2)
+ FS block 1003 logged at journal block 308 (flags 0x2)
+ FS block 985 logged at journal block 309 (flags 0x2)
+ FS block 1008 logged at journal block 310 (flags 0x2)
+ FS block 146 logged at journal block 311 (flags 0x2)
+ FS block 163 logged at journal block 312 (flags 0x2)
+ FS block 145 logged at journal block 313 (flags 0x2)
+ FS block 148 logged at journal block 314 (flags 0x2)
+ FS block 164 logged at journal block 315 (flags 0x2)
+ FS block 161 logged at journal block 316 (flags 0x2)
+ FS block 165 logged at journal block 317 (flags 0x2)
+ FS block 674 logged at journal block 318 (flags 0x2)
+ FS block 1541 logged at journal block 319 (flags 0x2)
+ FS block 166 logged at journal block 320 (flags 0x2)
+ FS block 167 logged at journal block 321 (flags 0x2)
+ FS block 1556 logged at journal block 322 (flags 0x2)
+ FS block 168 logged at journal block 323 (flags 0x2)
+ FS block 1618 logged at journal block 324 (flags 0x2)
+ FS block 169 logged at journal block 325 (flags 0x2)
+ FS block 1187 logged at journal block 326 (flags 0x2)
+ FS block 170 logged at journal block 327 (flags 0x2)
+ FS block 1188 logged at journal block 328 (flags 0x2)
+ FS block 171 logged at journal block 329 (flags 0x2)
+ FS block 1619 logged at journal block 330 (flags 0x2)
+ FS block 172 logged at journal block 331 (flags 0x2)
+ FS block 1620 logged at journal block 332 (flags 0x2)
+ FS block 173 logged at journal block 333 (flags 0x2)
+ FS block 149 logged at journal block 334 (flags 0x2)
+ FS block 174 logged at journal block 335 (flags 0x2)
+ FS block 675 logged at journal block 336 (flags 0x2)
+ FS block 150 logged at journal block 337 (flags 0x2)
+ FS block 175 logged at journal block 338 (flags 0x2)
+ FS block 176 logged at journal block 339 (flags 0x2)
+ FS block 151 logged at journal block 340 (flags 0x2)
+ FS block 177 logged at journal block 341 (flags 0x2)
+ FS block 152 logged at journal block 342 (flags 0x2)
+ FS block 178 logged at journal block 343 (flags 0x2)
+ FS block 1189 logged at journal block 344 (flags 0x2)
+ FS block 179 logged at journal block 345 (flags 0x2)
+ FS block 1190 logged at journal block 346 (flags 0x2)
+ FS block 180 logged at journal block 347 (flags 0x2)
+ FS block 1191 logged at journal block 348 (flags 0x2)
+ FS block 181 logged at journal block 349 (flags 0x2)
+ FS block 1192 logged at journal block 350 (flags 0x2)
+ FS block 182 logged at journal block 351 (flags 0x2)
+ FS block 1621 logged at journal block 352 (flags 0x2)
+ FS block 183 logged at journal block 353 (flags 0x2)
+ FS block 676 logged at journal block 354 (flags 0x2)
+ FS block 1622 logged at journal block 355 (flags 0x2)
+ FS block 184 logged at journal block 356 (flags 0x2)
+ FS block 185 logged at journal block 357 (flags 0x2)
+ FS block 1623 logged at journal block 358 (flags 0x2)
+ FS block 186 logged at journal block 359 (flags 0x2)
+ FS block 1624 logged at journal block 360 (flags 0x2)
+ FS block 187 logged at journal block 361 (flags 0x2)
+ FS block 153 logged at journal block 362 (flags 0x2)
+ FS block 188 logged at journal block 363 (flags 0x2)
+ FS block 154 logged at journal block 364 (flags 0x2)
+ FS block 189 logged at journal block 365 (flags 0x2)
+ FS block 155 logged at journal block 366 (flags 0xa)
+Found expected sequence 33, type 1 (descriptor block) at block 367
+Dumping descriptor block, sequence 33, at block 367:
+ FS block 190 logged at journal block 368 (flags 0x0)
+ FS block 156 logged at journal block 369 (flags 0x2)
+ FS block 191 logged at journal block 370 (flags 0x2)
+ FS block 157 logged at journal block 371 (flags 0x2)
+ FS block 192 logged at journal block 372 (flags 0x2)
+ FS block 677 logged at journal block 373 (flags 0x2)
+ FS block 158 logged at journal block 374 (flags 0x2)
+ FS block 159 logged at journal block 375 (flags 0x2)
+ FS block 193 logged at journal block 376 (flags 0x2)
+ FS block 194 logged at journal block 377 (flags 0x2)
+ FS block 160 logged at journal block 378 (flags 0x2)
+ FS block 195 logged at journal block 379 (flags 0x2)
+ FS block 1193 logged at journal block 380 (flags 0x2)
+ FS block 196 logged at journal block 381 (flags 0x2)
+ FS block 1194 logged at journal block 382 (flags 0x2)
+ FS block 197 logged at journal block 383 (flags 0x2)
+ FS block 1195 logged at journal block 384 (flags 0x2)
+ FS block 198 logged at journal block 385 (flags 0x2)
+ FS block 1196 logged at journal block 386 (flags 0x2)
+ FS block 199 logged at journal block 387 (flags 0x2)
+ FS block 1197 logged at journal block 388 (flags 0x2)
+ FS block 200 logged at journal block 389 (flags 0x2)
+ FS block 678 logged at journal block 390 (flags 0x2)
+ FS block 1198 logged at journal block 391 (flags 0x2)
+ FS block 201 logged at journal block 392 (flags 0x2)
+ FS block 1199 logged at journal block 393 (flags 0x2)
+ FS block 202 logged at journal block 394 (flags 0x2)
+ FS block 203 logged at journal block 395 (flags 0x2)
+ FS block 1200 logged at journal block 396 (flags 0x2)
+ FS block 204 logged at journal block 397 (flags 0x2)
+ FS block 1625 logged at journal block 398 (flags 0x2)
+ FS block 205 logged at journal block 399 (flags 0x2)
+ FS block 1626 logged at journal block 400 (flags 0x2)
+ FS block 206 logged at journal block 401 (flags 0x2)
+ FS block 1627 logged at journal block 402 (flags 0x2)
+ FS block 207 logged at journal block 403 (flags 0x2)
+ FS block 1628 logged at journal block 404 (flags 0x2)
+ FS block 208 logged at journal block 405 (flags 0x2)
+ FS block 1629 logged at journal block 406 (flags 0x2)
+ FS block 209 logged at journal block 407 (flags 0x2)
+ FS block 679 logged at journal block 408 (flags 0x2)
+ FS block 1630 logged at journal block 409 (flags 0x2)
+ FS block 210 logged at journal block 410 (flags 0x2)
+ FS block 1631 logged at journal block 411 (flags 0x2)
+ FS block 211 logged at journal block 412 (flags 0x2)
+ FS block 212 logged at journal block 413 (flags 0x2)
+ FS block 1632 logged at journal block 414 (flags 0x2)
+ FS block 213 logged at journal block 415 (flags 0x2)
+ FS block 1201 logged at journal block 416 (flags 0x2)
+ FS block 214 logged at journal block 417 (flags 0x2)
+ FS block 1202 logged at journal block 418 (flags 0x2)
+ FS block 215 logged at journal block 419 (flags 0x2)
+ FS block 1203 logged at journal block 420 (flags 0xa)
+Found expected sequence 33, type 2 (commit block) at block 421
+Found expected sequence 34, type 1 (descriptor block) at block 422
+Dumping descriptor block, sequence 34, at block 422:
+ FS block 146 logged at journal block 423 (flags 0x0)
+ FS block 2 logged at journal block 424 (flags 0x2)
+ FS block 215 logged at journal block 425 (flags 0x2)
+ FS block 679 logged at journal block 426 (flags 0x2)
+ FS block 1203 logged at journal block 427 (flags 0x2)
+ FS block 131 logged at journal block 428 (flags 0x2)
+ FS block 216 logged at journal block 429 (flags 0x2)
+ FS block 147 logged at journal block 430 (flags 0x2)
+ FS block 130 logged at journal block 431 (flags 0x2)
+ FS block 1204 logged at journal block 432 (flags 0x2)
+ FS block 677 logged at journal block 433 (flags 0x2)
+ FS block 158 logged at journal block 434 (flags 0x2)
+ FS block 217 logged at journal block 435 (flags 0x2)
+ FS block 1542 logged at journal block 436 (flags 0x2)
+ FS block 218 logged at journal block 437 (flags 0x2)
+ FS block 680 logged at journal block 438 (flags 0x2)
+ FS block 1555 logged at journal block 439 (flags 0x2)
+ FS block 219 logged at journal block 440 (flags 0x2)
+ FS block 1543 logged at journal block 441 (flags 0x2)
+ FS block 220 logged at journal block 442 (flags 0x2)
+ FS block 221 logged at journal block 443 (flags 0x2)
+ FS block 1544 logged at journal block 444 (flags 0x2)
+ FS block 222 logged at journal block 445 (flags 0x2)
+ FS block 1553 logged at journal block 446 (flags 0x2)
+ FS block 162 logged at journal block 447 (flags 0x2)
+ FS block 132 logged at journal block 448 (flags 0x2)
+ FS block 1554 logged at journal block 449 (flags 0x2)
+ FS block 223 logged at journal block 450 (flags 0x2)
+ FS block 1617 logged at journal block 451 (flags 0x2)
+ FS block 224 logged at journal block 452 (flags 0x2)
+ FS block 1205 logged at journal block 453 (flags 0x2)
+ FS block 225 logged at journal block 454 (flags 0x2)
+ FS block 1206 logged at journal block 455 (flags 0x2)
+ FS block 226 logged at journal block 456 (flags 0x2)
+ FS block 681 logged at journal block 457 (flags 0x2)
+ FS block 1207 logged at journal block 458 (flags 0x2)
+ FS block 227 logged at journal block 459 (flags 0x2)
+ FS block 1208 logged at journal block 460 (flags 0x2)
+ FS block 228 logged at journal block 461 (flags 0x2)
+ FS block 1537 logged at journal block 462 (flags 0x2)
+ FS block 229 logged at journal block 463 (flags 0x2)
+ FS block 230 logged at journal block 464 (flags 0x2)
+ FS block 1538 logged at journal block 465 (flags 0x2)
+ FS block 231 logged at journal block 466 (flags 0x2)
+ FS block 1539 logged at journal block 467 (flags 0x2)
+ FS block 232 logged at journal block 468 (flags 0x2)
+ FS block 1540 logged at journal block 469 (flags 0x2)
+ FS block 233 logged at journal block 470 (flags 0x2)
+ FS block 1557 logged at journal block 471 (flags 0x2)
+ FS block 234 logged at journal block 472 (flags 0x2)
+ FS block 1558 logged at journal block 473 (flags 0x2)
+ FS block 235 logged at journal block 474 (flags 0x2)
+ FS block 682 logged at journal block 475 (flags 0x2)
+ FS block 1559 logged at journal block 476 (flags 0x2)
+ FS block 236 logged at journal block 477 (flags 0x2)
+ FS block 1560 logged at journal block 478 (flags 0x2)
+ FS block 237 logged at journal block 479 (flags 0x2)
+ FS block 1209 logged at journal block 480 (flags 0x2)
+ FS block 238 logged at journal block 481 (flags 0x2)
+ FS block 239 logged at journal block 482 (flags 0x2)
+ FS block 1210 logged at journal block 483 (flags 0x2)
+ FS block 240 logged at journal block 484 (flags 0x2)
+ FS block 1211 logged at journal block 485 (flags 0x2)
+ FS block 241 logged at journal block 486 (flags 0x2)
+ FS block 1212 logged at journal block 487 (flags 0x2)
+ FS block 242 logged at journal block 488 (flags 0x2)
+ FS block 1213 logged at journal block 489 (flags 0x2)
+ FS block 243 logged at journal block 490 (flags 0x2)
+ FS block 1214 logged at journal block 491 (flags 0x2)
+ FS block 244 logged at journal block 492 (flags 0x2)
+ FS block 683 logged at journal block 493 (flags 0x2)
+ FS block 1215 logged at journal block 494 (flags 0x2)
+ FS block 245 logged at journal block 495 (flags 0x2)
+ FS block 1216 logged at journal block 496 (flags 0x2)
+ FS block 246 logged at journal block 497 (flags 0x2)
+ FS block 1545 logged at journal block 498 (flags 0x2)
+ FS block 247 logged at journal block 499 (flags 0x2)
+ FS block 248 logged at journal block 500 (flags 0x2)
+ FS block 1546 logged at journal block 501 (flags 0x2)
+ FS block 249 logged at journal block 502 (flags 0x2)
+ FS block 1547 logged at journal block 503 (flags 0xa)
+Found expected sequence 34, type 1 (descriptor block) at block 504
+Dumping descriptor block, sequence 34, at block 504:
+ FS block 250 logged at journal block 505 (flags 0x0)
+ FS block 1548 logged at journal block 506 (flags 0x2)
+ FS block 251 logged at journal block 507 (flags 0x2)
+ FS block 1549 logged at journal block 508 (flags 0x2)
+ FS block 1550 logged at journal block 509 (flags 0x2)
+ FS block 252 logged at journal block 510 (flags 0x2)
+ FS block 684 logged at journal block 511 (flags 0x2)
+ FS block 1551 logged at journal block 512 (flags 0x2)
+ FS block 253 logged at journal block 513 (flags 0x2)
+ FS block 1552 logged at journal block 514 (flags 0x2)
+ FS block 254 logged at journal block 515 (flags 0x2)
+ FS block 1561 logged at journal block 516 (flags 0x2)
+ FS block 255 logged at journal block 517 (flags 0x2)
+ FS block 1562 logged at journal block 518 (flags 0x2)
+ FS block 256 logged at journal block 519 (flags 0x2)
+ FS block 257 logged at journal block 520 (flags 0x2)
+ FS block 1563 logged at journal block 521 (flags 0x2)
+ FS block 258 logged at journal block 522 (flags 0x2)
+ FS block 1564 logged at journal block 523 (flags 0x2)
+ FS block 259 logged at journal block 524 (flags 0x2)
+ FS block 1565 logged at journal block 525 (flags 0x2)
+ FS block 260 logged at journal block 526 (flags 0x2)
+ FS block 1566 logged at journal block 527 (flags 0x2)
+ FS block 261 logged at journal block 528 (flags 0x2)
+ FS block 685 logged at journal block 529 (flags 0x2)
+ FS block 1567 logged at journal block 530 (flags 0x2)
+ FS block 262 logged at journal block 531 (flags 0x2)
+ FS block 1568 logged at journal block 532 (flags 0x2)
+ FS block 263 logged at journal block 533 (flags 0x2)
+ FS block 1601 logged at journal block 534 (flags 0x2)
+ FS block 264 logged at journal block 535 (flags 0x2)
+ FS block 1602 logged at journal block 536 (flags 0x2)
+ FS block 265 logged at journal block 537 (flags 0x2)
+ FS block 266 logged at journal block 538 (flags 0x2)
+ FS block 1603 logged at journal block 539 (flags 0x2)
+ FS block 267 logged at journal block 540 (flags 0x2)
+ FS block 1604 logged at journal block 541 (flags 0x2)
+ FS block 268 logged at journal block 542 (flags 0x2)
+ FS block 1605 logged at journal block 543 (flags 0x2)
+ FS block 269 logged at journal block 544 (flags 0x2)
+ FS block 1606 logged at journal block 545 (flags 0x2)
+ FS block 270 logged at journal block 546 (flags 0x2)
+ FS block 686 logged at journal block 547 (flags 0x2)
+ FS block 1607 logged at journal block 548 (flags 0x2)
+ FS block 271 logged at journal block 549 (flags 0x2)
+ FS block 1608 logged at journal block 550 (flags 0x2)
+ FS block 272 logged at journal block 551 (flags 0x2)
+ FS block 1609 logged at journal block 552 (flags 0x2)
+ FS block 273 logged at journal block 553 (flags 0x2)
+ FS block 1610 logged at journal block 554 (flags 0x2)
+ FS block 274 logged at journal block 555 (flags 0x2)
+ FS block 275 logged at journal block 556 (flags 0x2)
+ FS block 1611 logged at journal block 557 (flags 0x2)
+ FS block 276 logged at journal block 558 (flags 0x2)
+ FS block 1612 logged at journal block 559 (flags 0x2)
+ FS block 277 logged at journal block 560 (flags 0x2)
+ FS block 1613 logged at journal block 561 (flags 0x2)
+ FS block 278 logged at journal block 562 (flags 0x2)
+ FS block 1614 logged at journal block 563 (flags 0x2)
+ FS block 279 logged at journal block 564 (flags 0x2)
+ FS block 687 logged at journal block 565 (flags 0x2)
+ FS block 1615 logged at journal block 566 (flags 0x2)
+ FS block 280 logged at journal block 567 (flags 0x2)
+ FS block 1616 logged at journal block 568 (flags 0x2)
+ FS block 1569 logged at journal block 569 (flags 0x2)
+ FS block 281 logged at journal block 570 (flags 0x2)
+ FS block 1570 logged at journal block 571 (flags 0x2)
+ FS block 282 logged at journal block 572 (flags 0x2)
+ FS block 1571 logged at journal block 573 (flags 0x2)
+ FS block 283 logged at journal block 574 (flags 0x2)
+ FS block 284 logged at journal block 575 (flags 0x2)
+ FS block 1572 logged at journal block 576 (flags 0x2)
+ FS block 285 logged at journal block 577 (flags 0x2)
+ FS block 1573 logged at journal block 578 (flags 0x2)
+ FS block 286 logged at journal block 579 (flags 0x2)
+ FS block 1574 logged at journal block 580 (flags 0x2)
+ FS block 287 logged at journal block 581 (flags 0x2)
+ FS block 688 logged at journal block 582 (flags 0x2)
+ FS block 1575 logged at journal block 583 (flags 0x2)
+ FS block 288 logged at journal block 584 (flags 0x2)
+ FS block 1576 logged at journal block 585 (flags 0xa)
+Found expected sequence 34, type 1 (descriptor block) at block 586
+Dumping descriptor block, sequence 34, at block 586:
+ FS block 289 logged at journal block 587 (flags 0x0)
+ FS block 1577 logged at journal block 588 (flags 0x2)
+ FS block 290 logged at journal block 589 (flags 0x2)
+ FS block 1578 logged at journal block 590 (flags 0x2)
+ FS block 291 logged at journal block 591 (flags 0x2)
+ FS block 1579 logged at journal block 592 (flags 0x2)
+ FS block 292 logged at journal block 593 (flags 0x2)
+ FS block 293 logged at journal block 594 (flags 0x2)
+ FS block 1580 logged at journal block 595 (flags 0x2)
+ FS block 294 logged at journal block 596 (flags 0x2)
+ FS block 1581 logged at journal block 597 (flags 0x2)
+ FS block 295 logged at journal block 598 (flags 0x2)
+ FS block 1582 logged at journal block 599 (flags 0x2)
+ FS block 296 logged at journal block 600 (flags 0x2)
+ FS block 689 logged at journal block 601 (flags 0x2)
+ FS block 1583 logged at journal block 602 (flags 0x2)
+ FS block 297 logged at journal block 603 (flags 0x2)
+ FS block 1584 logged at journal block 604 (flags 0x2)
+ FS block 298 logged at journal block 605 (flags 0x2)
+ FS block 1585 logged at journal block 606 (flags 0x2)
+ FS block 299 logged at journal block 607 (flags 0x2)
+ FS block 1586 logged at journal block 608 (flags 0x2)
+ FS block 300 logged at journal block 609 (flags 0x2)
+ FS block 1587 logged at journal block 610 (flags 0x2)
+ FS block 301 logged at journal block 611 (flags 0x2)
+ FS block 302 logged at journal block 612 (flags 0x2)
+ FS block 1588 logged at journal block 613 (flags 0x2)
+ FS block 303 logged at journal block 614 (flags 0x2)
+ FS block 1589 logged at journal block 615 (flags 0x2)
+ FS block 304 logged at journal block 616 (flags 0x2)
+ FS block 1590 logged at journal block 617 (flags 0x2)
+ FS block 305 logged at journal block 618 (flags 0x2)
+ FS block 690 logged at journal block 619 (flags 0x2)
+ FS block 1591 logged at journal block 620 (flags 0x2)
+ FS block 306 logged at journal block 621 (flags 0x2)
+ FS block 1592 logged at journal block 622 (flags 0x2)
+ FS block 307 logged at journal block 623 (flags 0x2)
+ FS block 1593 logged at journal block 624 (flags 0x2)
+ FS block 308 logged at journal block 625 (flags 0x2)
+ FS block 1594 logged at journal block 626 (flags 0x2)
+ FS block 309 logged at journal block 627 (flags 0x2)
+ FS block 1595 logged at journal block 628 (flags 0x2)
+ FS block 1596 logged at journal block 629 (flags 0x2)
+ FS block 310 logged at journal block 630 (flags 0x2)
+ FS block 311 logged at journal block 631 (flags 0x2)
+ FS block 1597 logged at journal block 632 (flags 0x2)
+ FS block 312 logged at journal block 633 (flags 0x2)
+ FS block 1598 logged at journal block 634 (flags 0x2)
+ FS block 313 logged at journal block 635 (flags 0x2)
+ FS block 691 logged at journal block 636 (flags 0x2)
+ FS block 1599 logged at journal block 637 (flags 0x2)
+ FS block 314 logged at journal block 638 (flags 0x2)
+ FS block 1600 logged at journal block 639 (flags 0xa)
+Found expected sequence 34, type 2 (commit block) at block 640
+No magic number at block 641: end of journal.
diff --git a/tests/f_jnl_64bit/expect.1 b/tests/f_jnl_64bit/expect.1
new file mode 100644
index 00000000..e360e2fe
--- /dev/null
+++ b/tests/f_jnl_64bit/expect.1
@@ -0,0 +1,16 @@
+test_filesys: recovering journal
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+Free blocks count wrong (14059, counted=12712).
+Fix? yes
+
+Free inodes count wrong (8181, counted=6834).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 1358/8192 files (0.0% non-contiguous), 3672/16384 blocks
+Exit status is 1
diff --git a/tests/f_jnl_64bit/expect.2 b/tests/f_jnl_64bit/expect.2
new file mode 100644
index 00000000..93cb7300
--- /dev/null
+++ b/tests/f_jnl_64bit/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 1358/8192 files (0.0% non-contiguous), 3672/16384 blocks
+Exit status is 0
diff --git a/tests/f_jnl_64bit/image.gz b/tests/f_jnl_64bit/image.gz
new file mode 100644
index 00000000..9758f903
--- /dev/null
+++ b/tests/f_jnl_64bit/image.gz
Binary files differ
diff --git a/tests/f_jnl_64bit/name b/tests/f_jnl_64bit/name
new file mode 100644
index 00000000..2c8dd15f
--- /dev/null
+++ b/tests/f_jnl_64bit/name
@@ -0,0 +1 @@
+on-disk 64-bit journal format
diff --git a/tests/f_jnl_64bit/script b/tests/f_jnl_64bit/script
new file mode 100644
index 00000000..9fb4366d
--- /dev/null
+++ b/tests/f_jnl_64bit/script
@@ -0,0 +1,4 @@
+PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed > $test_name.0.log'
+PASS_ZERO=true
+
+. $cmd_dir/run_e2fsck
diff --git a/tests/f_jnl_errno/expect.0 b/tests/f_jnl_errno/expect.0
new file mode 100644
index 00000000..6dad72a1
--- /dev/null
+++ b/tests/f_jnl_errno/expect.0
@@ -0,0 +1,47 @@
+Filesystem volume name: <none>
+Last mounted on: <not available>
+Filesystem magic number: 0xEF53
+Filesystem revision #: 1 (dynamic)
+Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
+Default mount options: user_xattr acl
+Filesystem state: clean
+Errors behavior: Remount read-only
+Filesystem OS type: Linux
+Inode count: 2048
+Block count: 8192
+Reserved block count: 409
+Free blocks: 6862
+Free inodes: 2037
+First block: 1
+Block size: 1024
+Fragment size: 1024
+Reserved GDT blocks: 31
+Blocks per group: 8192
+Fragments per group: 8192
+Inodes per group: 2048
+Inode blocks per group: 256
+Flex block group size: 16
+Mount count: 0
+Check interval: 0 (<none>)
+Reserved blocks uid: 0
+Reserved blocks gid: 0
+First inode: 11
+Inode size: 128
+Journal inode: 8
+Default directory hash: half_md4
+Journal backup: inode blocks
+Journal features: (none)
+Journal size: 1024k
+Journal length: 1024
+Journal sequence: 0x00000005
+Journal start: 0
+
+
+Group 0: (Blocks 1-8191) [ITABLE_ZEROED]
+ Primary superblock at 1, Group descriptors at 2-2
+ Reserved GDT blocks at 3-33
+ Block bitmap at 34 (+33), Inode bitmap at 50 (+49)
+ Inode table at 66-321 (+65)
+ 6862 free blocks, 2037 free inodes, 2 directories, 2037 unused inodes
+ Free blocks: 1330-8191
+ Free inodes: 12-2048
diff --git a/tests/f_jnl_errno/expect.1 b/tests/f_jnl_errno/expect.1
new file mode 100644
index 00000000..c5729512
--- /dev/null
+++ b/tests/f_jnl_errno/expect.1
@@ -0,0 +1,9 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 11/2048 files (9.1% non-contiguous), 1330/8192 blocks
+Exit status is 1
diff --git a/tests/f_jnl_errno/expect.2 b/tests/f_jnl_errno/expect.2
new file mode 100644
index 00000000..db16a759
--- /dev/null
+++ b/tests/f_jnl_errno/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/2048 files (9.1% non-contiguous), 1330/8192 blocks
+Exit status is 0
diff --git a/tests/f_jnl_errno/image.gz b/tests/f_jnl_errno/image.gz
new file mode 100644
index 00000000..c55c775d
--- /dev/null
+++ b/tests/f_jnl_errno/image.gz
Binary files differ
diff --git a/tests/f_jnl_errno/name b/tests/f_jnl_errno/name
new file mode 100644
index 00000000..e5f64d6d
--- /dev/null
+++ b/tests/f_jnl_errno/name
@@ -0,0 +1 @@
+journal s_errno handling
diff --git a/tests/f_jnl_errno/script b/tests/f_jnl_errno/script
new file mode 100644
index 00000000..ef5006a8
--- /dev/null
+++ b/tests/f_jnl_errno/script
@@ -0,0 +1,4 @@
+AFTER_CMD='$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed > $test_name.0.log'
+PASS_ZERO=true
+
+. $cmd_dir/run_e2fsck
diff --git a/tests/f_mmp/script b/tests/f_mmp/script
index 4aca4475..d921672e 100644
--- a/tests/f_mmp/script
+++ b/tests/f_mmp/script
@@ -1,13 +1,12 @@
FSCK_OPT=-yf
-TMPFILE=test.img
-rm -f $test_name.failed $test_name.ok
+TMPFILE=$test_name.tmp
> $TMPFILE
stat -f $TMPFILE | grep -q "Type: tmpfs"
-if [ $? == 0 ]; then
+if [ $? = 0 ]; then
rm -f $TMPFILE
- echo "skipped for tmpfs (no O_DIRECT support)"
+ echo "$test_name: $test_description: skipped for tmpfs (no O_DIRECT)"
return 0
fi
@@ -16,14 +15,22 @@ $MKE2FS -q -F -o Linux -b 4096 -O mmp -E mmp_update_interval=1 $TMPFILE 100 >> $
status=$?
if [ "$status" != 0 ] ; then
echo "mke2fs -O mmp failed" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
+kill_debugfs() {
+ trap 0
+ PID=$(ps -o pid,command | grep -v awk |
+ awk "/debugfs -w $TMPFILE/ { print \$1 }")
+ [ "x$PID" != "x" ] && kill -9 $PID
+}
+
# this will cause debugfs to create the $test_name.mark file once it has
# passed the MMP startup, then continue reading input until it is killed
MARKFILE=$test_name.new
rm -f $MARKFILE
+trap kill_debugfs EXIT
echo "set mmp sequence to EXT2_MMP_SEQ_FSCK..." >> $test_name.log
( { echo dump_mmp; echo "dump_inode <2> $MARKFILE"; cat /dev/zero; } |
$DEBUGFS -w $TMPFILE >> $test_name.log 2>&1 & ) > /dev/null 2>&1 &
@@ -33,15 +40,15 @@ while [ ! -e $MARKFILE ]; do
done
rm -f $MARKFILE
echo "kill debugfs abruptly (simulates e2fsck failure) ..." >> $test_name.log
-killall -9 debugfs >> $test_name.log
+kill_debugfs
echo "e2fsck (should fail mmp_seq = EXT2_MMP_SEQ_FSCK) ..." >> $test_name.log
$FSCK $FSCK_OPT $TMPFILE >> $test_name.log 2>&1
status=$?
-if [ "$status" == 0 ] ; then
+if [ "$status" = 0 ] ; then
echo "e2fsck with MMP as EXT2_MMP_SEQ_FSCK ran!" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return 1
fi
@@ -50,7 +57,7 @@ $TUNE2FS -f -E clear_mmp $TMPFILE >> $test_name.log 2>&1
status=$?
if [ "$status" != 0 ] ; then
echo "tune2fs clearing EXT2_MMP_SEQ_FSCK failed" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return 1
fi
@@ -59,9 +66,9 @@ $FSCK $FSCK_OPT $TMPFILE >> $test_name.log 2>&1
status=$?
if [ "$status" != 0 ] ; then
echo "e2fsck after clearing EXT2_MMP_SEQ_FSCK failed"> $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
-echo "ok"
+echo "$test_name: $test_description: ok"
rm -f $TMPFILE
diff --git a/tests/f_mmp_garbage/script b/tests/f_mmp_garbage/script
index 8b5a22a2..02cc12a4 100644
--- a/tests/f_mmp_garbage/script
+++ b/tests/f_mmp_garbage/script
@@ -1,13 +1,12 @@
FSCK_OPT=-yf
-TMPFILE=test.img
-rm -f $test_name.failed $test_name.ok
+TMPFILE=$test_name.tmp
> $TMPFILE
stat -f $TMPFILE | grep -q "Type: tmpfs"
-if [ $? == 0 ] ; then
+if [ $? = 0 ] ; then
rm -f $TMPFILE
- echo "skipped for tmpfs (no O_DIRECT support)"
+ echo "$test_name: $test_description: skipped for tmpfs (no O_DIRECT)"
return 0
fi
@@ -16,7 +15,7 @@ $MKE2FS -q -F -o Linux -b 4096 -O mmp -E mmp_update_interval=1 $TMPFILE 100 >> $
status=$?
if [ "$status" != 0 ] ; then
echo "mke2fs -O mmp failed" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
diff --git a/tests/f_orphan_extents_inode/expect.1 b/tests/f_orphan_extents_inode/expect.1
new file mode 100644
index 00000000..2eaab78a
--- /dev/null
+++ b/tests/f_orphan_extents_inode/expect.1
@@ -0,0 +1,10 @@
+Truncating orphaned inode 12 (uid=0, gid=0, mode=0100644, size=0)
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/16 files (0.0% non-contiguous), 21/100 blocks
+Exit status is 1
diff --git a/tests/f_orphan_extents_inode/expect.2 b/tests/f_orphan_extents_inode/expect.2
new file mode 100644
index 00000000..4ee5d96a
--- /dev/null
+++ b/tests/f_orphan_extents_inode/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/16 files (0.0% non-contiguous), 21/100 blocks
+Exit status is 0
diff --git a/tests/f_orphan_extents_inode/image.gz b/tests/f_orphan_extents_inode/image.gz
new file mode 100644
index 00000000..6c57fef5
--- /dev/null
+++ b/tests/f_orphan_extents_inode/image.gz
Binary files differ
diff --git a/tests/f_orphan_extents_inode/name b/tests/f_orphan_extents_inode/name
new file mode 100644
index 00000000..fc48ec2a
--- /dev/null
+++ b/tests/f_orphan_extents_inode/name
@@ -0,0 +1 @@
+truncating an orphaned extent-mapped inode
diff --git a/tests/f_orphan_indirect_inode/expect.1 b/tests/f_orphan_indirect_inode/expect.1
new file mode 100644
index 00000000..814a6888
--- /dev/null
+++ b/tests/f_orphan_indirect_inode/expect.1
@@ -0,0 +1,3 @@
+test_filesys: Truncating orphaned inode 12 (uid=0, gid=0, mode=0100644, size=0)
+test_filesys: clean, 12/16 files, 21/100 blocks
+Exit status is 0
diff --git a/tests/f_orphan_indirect_inode/expect.2 b/tests/f_orphan_indirect_inode/expect.2
new file mode 100644
index 00000000..4ee5d96a
--- /dev/null
+++ b/tests/f_orphan_indirect_inode/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/16 files (0.0% non-contiguous), 21/100 blocks
+Exit status is 0
diff --git a/tests/f_orphan_indirect_inode/image.gz b/tests/f_orphan_indirect_inode/image.gz
new file mode 100644
index 00000000..54b39094
--- /dev/null
+++ b/tests/f_orphan_indirect_inode/image.gz
Binary files differ
diff --git a/tests/f_orphan_indirect_inode/name b/tests/f_orphan_indirect_inode/name
new file mode 100644
index 00000000..04ccb312
--- /dev/null
+++ b/tests/f_orphan_indirect_inode/name
@@ -0,0 +1 @@
+truncating an orphaned inode in preen mode
diff --git a/tests/f_orphan_indirect_inode/script b/tests/f_orphan_indirect_inode/script
new file mode 100644
index 00000000..ea3b93a3
--- /dev/null
+++ b/tests/f_orphan_indirect_inode/script
@@ -0,0 +1,2 @@
+FSCK_OPT=-p
+. $cmd_dir/run_e2fsck
diff --git a/tests/f_preen/expect.1 b/tests/f_preen/expect.1
index c65209dd..dd20572a 100644
--- a/tests/f_preen/expect.1
+++ b/tests/f_preen/expect.1
@@ -1,3 +1,4 @@
+test_filesys: Note: if several inode or block bitmap blocks or part
of the inode table require relocation, you may wish to try
running e2fsck with the '-b 8193' option first. The problem
may lie only with the primary block group descriptors, and
diff --git a/tests/f_quota/debugfs-cmds b/tests/f_quota/debugfs-cmds
new file mode 100644
index 00000000..112a3ff1
--- /dev/null
+++ b/tests/f_quota/debugfs-cmds
@@ -0,0 +1,7 @@
+list_quota user
+list_quota group
+get_quota user 0
+get_quota user 100
+get_quota user 34
+get_quota group 0
+
diff --git a/tests/f_quota/expect.0 b/tests/f_quota/expect.0
new file mode 100644
index 00000000..c0ad63dd
--- /dev/null
+++ b/tests/f_quota/expect.0
@@ -0,0 +1,21 @@
+debugfs: list_quota user
+ user id blocks quota limit inodes quota limit
+ 0 13312 0 0 2 0 0
+ 34 1024 0 0 1 0 0
+ 100 2048 32 50 2 20 30
+debugfs: list_quota group
+group id blocks quota limit inodes quota limit
+ 0 16384 0 0 5 0 0
+debugfs: get_quota user 0
+ user id blocks quota limit inodes quota limit
+ 0 13312 0 0 2 0 0
+debugfs: get_quota user 100
+ user id blocks quota limit inodes quota limit
+ 100 2048 32 50 2 20 30
+debugfs: get_quota user 34
+ user id blocks quota limit inodes quota limit
+ 34 1024 0 0 1 0 0
+debugfs: get_quota group 0
+group id blocks quota limit inodes quota limit
+ 0 16384 0 0 5 0 0
+debugfs:
diff --git a/tests/f_quota/expect.1 b/tests/f_quota/expect.1
new file mode 100644
index 00000000..0b3b4cf6
--- /dev/null
+++ b/tests/f_quota/expect.1
@@ -0,0 +1,13 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+[QUOTA WARNING] Usage inconsistent for ID 0:actual (13312, 2) != expected (14336, 3)
+[QUOTA WARNING] Usage inconsistent for ID 100:actual (2048, 2) != expected (1024, 1)
+Update quota info for quota type 0? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 14/16 files (14.3% non-contiguous), 36/100 blocks
+Exit status is 1
diff --git a/tests/f_quota/expect.2 b/tests/f_quota/expect.2
new file mode 100644
index 00000000..bfc558d9
--- /dev/null
+++ b/tests/f_quota/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 14/16 files (14.3% non-contiguous), 36/100 blocks
+Exit status is 0
diff --git a/tests/f_quota/image.gz b/tests/f_quota/image.gz
new file mode 100644
index 00000000..9cea6556
--- /dev/null
+++ b/tests/f_quota/image.gz
Binary files differ
diff --git a/tests/f_quota/name b/tests/f_quota/name
new file mode 100644
index 00000000..27ea8baa
--- /dev/null
+++ b/tests/f_quota/name
@@ -0,0 +1 @@
+fix incorrect usage stats in quota
diff --git a/tests/f_quota/script b/tests/f_quota/script
new file mode 100644
index 00000000..bf25e071
--- /dev/null
+++ b/tests/f_quota/script
@@ -0,0 +1,4 @@
+AFTER_CMD='$DEBUGFS -f $test_dir/debugfs-cmds $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed > $test_name.0.log'
+PASS_ZERO=true
+
+. $cmd_dir/run_e2fsck
diff --git a/tests/f_rehash_dir/name b/tests/f_rehash_dir/name
new file mode 100644
index 00000000..a7a869a4
--- /dev/null
+++ b/tests/f_rehash_dir/name
@@ -0,0 +1 @@
+optimize htree directories
diff --git a/tests/f_resize_inode/expect b/tests/f_resize_inode/expect
index 84618d4d..db57ed65 100644
--- a/tests/f_resize_inode/expect
+++ b/tests/f_resize_inode/expect
@@ -1,22 +1,11 @@
mke2fs -F -O resize_inode -o Linux -b 1024 -g 1024 test.img 16384
-Filesystem label=
-OS type: Linux
-Block size=1024 (log=0)
-Fragment size=1024 (log=0)
-Stride=0 blocks, Stripe width=0 blocks
-4096 inodes, 16384 blocks
-819 blocks (5.00%) reserved for the super user
-First data block=1
-Maximum filesystem blocks=8421376
-16 block groups
-1024 blocks per group, 1024 fragments per group
-256 inodes per group
+Creating filesystem with 16384 1k blocks and 4096 inodes
Superblock backups stored on blocks:
1025, 3073, 5121, 7169, 9217
-Allocating group tables: 0/16 1/16 2/16 3/16 4/16 5/16 6/16 7/16 8/16 9/1610/1611/1612/1613/1614/1615/16 done
-Writing inode tables: 0/16 1/16 2/16 3/16 4/16 5/16 6/16 7/16 8/16 9/1610/1611/1612/1613/1614/1615/16 done
-Writing superblocks and filesystem accounting information: 0/16 1/16 2/16 3/16 4/16 5/16 6/16 7/16 8/16 9/1610/1611/1612/1613/1614/1615/16 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
diff --git a/tests/f_resize_inode/script b/tests/f_resize_inode/script
index ca934e9e..190871b4 100644
--- a/tests/f_resize_inode/script
+++ b/tests/f_resize_inode/script
@@ -1,10 +1,10 @@
if test -x $DEBUGFS_EXE; then
-printf "e2fsck with resize_inode: "
+test_description="e2fsck with resize_inode"
FSCK_OPT=-yf
OUT=$test_name.log
if [ -f $test_dir/expect.gz ]; then
- EXP=tmp_expect
+ EXP=$test_name.tmp
gunzip < $test_dir/expect.gz > $EXP1
else
EXP=$test_dir/expect
@@ -15,15 +15,13 @@ cp /dev/null $OUT
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -F -O resize_inode -o Linux -b 1024 -g 1024 test.img 16384 > $OUT
-$MKE2FS -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v 'Discarding device blocks' |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
@@ -33,18 +31,18 @@ echo "debugfs -R ''set_inode_field <7> block[2] 42'' -w test.img" > $OUT.new
$DEBUGFS -R "set_inode_field <7> block[2] 42" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
@@ -54,18 +52,18 @@ echo "debugfs -R ''clri <7>'' -w test.img" > $OUT.new
$DEBUGFS -R "clri <7>" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
@@ -75,18 +73,18 @@ echo "debugfs -R ''set_inode_field <7> bmap[524] 57'' -w test.img" > $OUT.new
$DEBUGFS -R "set_inode_field <7> bmap[524] 57" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
@@ -96,12 +94,12 @@ echo "debugfs -R ''set_super_value reserved_gdt_blocks 15679'' -w test.img" > $O
$DEBUGFS -R "set_super_value reserved_gdt_blocks 15679" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
@@ -111,30 +109,29 @@ echo "debugfs -R ''set_super_value reserved_gdt_blocks 32'' -w test.img" > $OUT.
$DEBUGFS -R "set_super_value reserved_gdt_blocks 32" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
-rm -f $test_name.ok $test_name.failed
cmp -s $OUT $EXP
status=$?
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
- echo "failed"
+ echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
rm -f tmp_expect
fi
@@ -142,6 +139,5 @@ fi
unset IMAGE FSCK_OPT OUT EXP
else #if test -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_toobig_extent_dir/expect.1 b/tests/f_toobig_extent_dir/expect.1
new file mode 100644
index 00000000..610ca3f0
--- /dev/null
+++ b/tests/f_toobig_extent_dir/expect.1
@@ -0,0 +1,12 @@
+Pass 1: Checking inodes, blocks, and sizes
+Inode 12 is too big. Truncate? yes
+
+Block #4294967281 (90) causes directory to be too big. CLEARED.
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/56 files (0.0% non-contiguous), 28/400 blocks
+Exit status is 1
diff --git a/tests/f_toobig_extent_dir/expect.2 b/tests/f_toobig_extent_dir/expect.2
new file mode 100644
index 00000000..c0256452
--- /dev/null
+++ b/tests/f_toobig_extent_dir/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/56 files (0.0% non-contiguous), 28/400 blocks
+Exit status is 0
diff --git a/tests/f_toobig_extent_dir/image.gz b/tests/f_toobig_extent_dir/image.gz
new file mode 100644
index 00000000..622f65a0
--- /dev/null
+++ b/tests/f_toobig_extent_dir/image.gz
Binary files differ
diff --git a/tests/f_toobig_extent_dir/name b/tests/f_toobig_extent_dir/name
new file mode 100644
index 00000000..d7453ad3
--- /dev/null
+++ b/tests/f_toobig_extent_dir/name
@@ -0,0 +1 @@
+directory with a very large lblk in extent
diff --git a/tests/f_uninit_ext_past_eof/expect.1 b/tests/f_uninit_ext_past_eof/expect.1
new file mode 100644
index 00000000..762159c9
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof/expect.1
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/1024 files (16.7% non-contiguous), 1227/4096 blocks
+Exit status is 0
diff --git a/tests/f_uninit_ext_past_eof/expect.2 b/tests/f_uninit_ext_past_eof/expect.2
new file mode 100644
index 00000000..762159c9
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/1024 files (16.7% non-contiguous), 1227/4096 blocks
+Exit status is 0
diff --git a/tests/f_uninit_ext_past_eof/image.gz b/tests/f_uninit_ext_past_eof/image.gz
new file mode 100644
index 00000000..0b691580
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof/image.gz
Binary files differ
diff --git a/tests/f_uninit_ext_past_eof/name b/tests/f_uninit_ext_past_eof/name
new file mode 100644
index 00000000..9e0c6e02
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof/name
@@ -0,0 +1 @@
+fallocated extents after i_size
diff --git a/tests/f_uninit_ext_past_eof2/expect.1 b/tests/f_uninit_ext_past_eof2/expect.1
new file mode 100644
index 00000000..eb8248e4
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof2/expect.1
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/16 files (8.3% non-contiguous), 70/100 blocks
+Exit status is 0
diff --git a/tests/f_uninit_ext_past_eof2/expect.2 b/tests/f_uninit_ext_past_eof2/expect.2
new file mode 100644
index 00000000..eb8248e4
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof2/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/16 files (8.3% non-contiguous), 70/100 blocks
+Exit status is 0
diff --git a/tests/f_uninit_ext_past_eof2/image.gz b/tests/f_uninit_ext_past_eof2/image.gz
new file mode 100644
index 00000000..c739e499
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof2/image.gz
Binary files differ
diff --git a/tests/f_uninit_ext_past_eof2/name b/tests/f_uninit_ext_past_eof2/name
new file mode 100644
index 00000000..352a0f56
--- /dev/null
+++ b/tests/f_uninit_ext_past_eof2/name
@@ -0,0 +1 @@
+fallocated extents after nonzero i_size and total extents > 4
diff --git a/tests/f_uninit_last_uninit/script b/tests/f_uninit_last_uninit/script
index 4fcab1b3..2fe4f3a0 100644
--- a/tests/f_uninit_last_uninit/script
+++ b/tests/f_uninit_last_uninit/script
@@ -22,6 +22,5 @@ export E2FSCK_TIME
unset E2FSCK_TIME
else #if test -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/f_unused_itable/name b/tests/f_unused_itable/name
index 39b68d64..e129137c 100644
--- a/tests/f_unused_itable/name
+++ b/tests/f_unused_itable/name
@@ -1 +1 @@
-Invalid bg_unused_itable shouldn't move files to lost+found
+Don't move files to lost+found for bg_unused_itable
diff --git a/tests/f_zero_xattr/expect.1 b/tests/f_zero_xattr/expect.1
new file mode 100644
index 00000000..0733af6e
--- /dev/null
+++ b/tests/f_zero_xattr/expect.1
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/24 files (0.0% non-contiguous), 25/200 blocks
+Exit status is 0
diff --git a/tests/f_zero_xattr/image.gz b/tests/f_zero_xattr/image.gz
new file mode 100644
index 00000000..40055520
--- /dev/null
+++ b/tests/f_zero_xattr/image.gz
Binary files differ
diff --git a/tests/f_zero_xattr/name b/tests/f_zero_xattr/name
new file mode 100644
index 00000000..52aab152
--- /dev/null
+++ b/tests/f_zero_xattr/name
@@ -0,0 +1 @@
+zero length extended attribute in in-inode xattr
diff --git a/tests/f_zero_xattr/script b/tests/f_zero_xattr/script
new file mode 100644
index 00000000..8ab2b9c6
--- /dev/null
+++ b/tests/f_zero_xattr/script
@@ -0,0 +1,2 @@
+ONE_PASS_ONLY="true"
+. $cmd_dir/run_e2fsck
diff --git a/tests/filter_dumpe2fs b/tests/filter.sed
index 75442178..91b956b7 100644
--- a/tests/filter_dumpe2fs
+++ b/tests/filter.sed
@@ -1,14 +1,19 @@
-1s/^.*$//
-/^Filesystem UUID:/d
+/^[dbgumpe2fsckrsiz]* [1-9]\.[0-9]*[.-][^ ]* ([0-9]*-[A-Za-z]*-[0-9]*)/d
+s/\\015//g
+/automatically checked/d
+/^Directory Hash Seed:/d
+/Discarding device blocks/d
/^Filesystem created:/d
/^Filesystem flags:/d
+/^Filesystem UUID:/d
+/^JFS DEBUG:/d
/^Last write time:/d
/^Last mount time:/d
/^Last checked:/d
-/^Directory Hash Seed:/d
-/^Next check after:/d
-/^Maximum mount count:/d
/^Lifetime writes:/d
+/^Maximum mount count:/d
+/^Next check after:/d
/Reserved blocks uid:/s/ (user .*)//
/Reserved blocks gid:/s/ (group .*)//
+/whichever comes first/d
/^ Checksum /d
diff --git a/tests/i_e2image/script b/tests/i_e2image/script
index 9c6ae2af..adf59a46 100644
--- a/tests/i_e2image/script
+++ b/tests/i_e2image/script
@@ -1,4 +1,4 @@
-printf "Create/convert raw and qcow2 disk images: "
+test_description="create/convert raw/qcow2 images"
if test -x $E2IMAGE_EXE; then
ORIG_IMAGES="image1024.orig image2048.orig image4096.orig"
@@ -8,7 +8,7 @@ QCOW2_IMG=_image.qcow2
QCOW2_TO_RAW=_image.qcow2.raw
OUT=$test_name.log
MD5=$SRCDIR/$test_name/$test_name.md5
-MD5_TMP=$test_name.md5tmp
+MD5_TMP=$test_name.md5.tmp
rm -f $test_name/_image.* $MD5_TMP $OUT >/dev/null 2>&1
@@ -20,6 +20,7 @@ for i in $ORIG_IMAGES; do
bunzip2 < $SRCDIR/$ORIG_IMG.bz2 > $i
md5sum $i >> $MD5_TMP
+ rm -f $RAW_IMG
echo "e2image -r $ORIG_IMG $RAW_IMG"
$E2IMAGE -r $i $RAW_IMG
md5sum $RAW_IMG >> $MD5_TMP
@@ -28,6 +29,7 @@ for i in $ORIG_IMAGES; do
$E2IMAGE -Q $i $QCOW2_IMG
md5sum $QCOW2_IMG >> $MD5_TMP
+ rm -f $QCOW2_TO_RAW
echo "e2image -r $QCOW2_IMG $QCOW2_TO_RAW"
$E2IMAGE -r $i $QCOW2_TO_RAW
md5sum $QCOW2_TO_RAW >> $MD5_TMP
@@ -43,18 +45,15 @@ echo "" >> $OUT
diff $MD5 $MD5_TMP >> $OUT 2>&1
if [ $? -eq 0 ]; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
- rm -f $test_name.failed
else
- rm -f $test_name.ok
ln -f $test_name.log $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
fi
rm -f _image.* $MD5_TMP >/dev/null 2>&1
else #if test -x $E2IMAGE_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/m_bigjournal/expect.1 b/tests/m_bigjournal/expect.1
index ad4a0351..b45d02c0 100644
--- a/tests/m_bigjournal/expect.1
+++ b/tests/m_bigjournal/expect.1
@@ -1,5 +1,4 @@
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -7,7 +6,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/1344 files (0.0% non-contiguous), 1286989/2750000 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
@@ -57,7 +55,7 @@ Group 0: (Blocks 0-32767)
31836 free blocks, 5 free inodes, 2 directories, 5 unused inodes
Free blocks: 764-1184, 1269-1696, 1781-32767
Free inodes: 12-16
-Group 1: (Blocks 32768-65535) [INODE_UNINIT]
+Group 1: (Blocks 32768-65535) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 32768, Group descriptors at 32769-32769
Reserved GDT blocks at 32770-33440
Block bitmap at 674 (bg #0 + 674), Inode bitmap at 1186 (bg #0 + 1186)
@@ -71,7 +69,7 @@ Group 2: (Blocks 65536-98303) [INODE_UNINIT, BLOCK_UNINIT]
32768 free blocks, 16 free inodes, 0 directories, 16 unused inodes
Free blocks: 65536-98303
Free inodes: 33-48
-Group 3: (Blocks 98304-131071) [INODE_UNINIT]
+Group 3: (Blocks 98304-131071) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 98304, Group descriptors at 98305-98305
Reserved GDT blocks at 98306-98976
Block bitmap at 676 (bg #0 + 676), Inode bitmap at 1188 (bg #0 + 1188)
@@ -85,7 +83,7 @@ Group 4: (Blocks 131072-163839) [INODE_UNINIT, BLOCK_UNINIT]
32768 free blocks, 16 free inodes, 0 directories, 16 unused inodes
Free blocks: 131072-163839
Free inodes: 65-80
-Group 5: (Blocks 163840-196607) [INODE_UNINIT]
+Group 5: (Blocks 163840-196607) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 163840, Group descriptors at 163841-163841
Reserved GDT blocks at 163842-164512
Block bitmap at 678 (bg #0 + 678), Inode bitmap at 1190 (bg #0 + 1190)
@@ -99,7 +97,7 @@ Group 6: (Blocks 196608-229375) [INODE_UNINIT, BLOCK_UNINIT]
32768 free blocks, 16 free inodes, 0 directories, 16 unused inodes
Free blocks: 196608-229375
Free inodes: 97-112
-Group 7: (Blocks 229376-262143) [INODE_UNINIT]
+Group 7: (Blocks 229376-262143) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 229376, Group descriptors at 229377-229377
Reserved GDT blocks at 229378-230048
Block bitmap at 680 (bg #0 + 680), Inode bitmap at 1192 (bg #0 + 1192)
@@ -113,7 +111,7 @@ Group 8: (Blocks 262144-294911) [INODE_UNINIT, BLOCK_UNINIT]
32768 free blocks, 16 free inodes, 0 directories, 16 unused inodes
Free blocks: 262144-294911
Free inodes: 129-144
-Group 9: (Blocks 294912-327679) [INODE_UNINIT]
+Group 9: (Blocks 294912-327679) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 294912, Group descriptors at 294913-294913
Reserved GDT blocks at 294914-295584
Block bitmap at 682 (bg #0 + 682), Inode bitmap at 1194 (bg #0 + 1194)
@@ -211,7 +209,7 @@ Group 24: (Blocks 786432-819199) [INODE_UNINIT, BLOCK_UNINIT]
32768 free blocks, 16 free inodes, 0 directories, 16 unused inodes
Free blocks: 786432-819199
Free inodes: 385-400
-Group 25: (Blocks 819200-851967) [INODE_UNINIT]
+Group 25: (Blocks 819200-851967) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 819200, Group descriptors at 819201-819201
Reserved GDT blocks at 819202-819872
Block bitmap at 698 (bg #0 + 698), Inode bitmap at 1210 (bg #0 + 1210)
@@ -225,7 +223,7 @@ Group 26: (Blocks 851968-884735) [INODE_UNINIT, BLOCK_UNINIT]
32768 free blocks, 16 free inodes, 0 directories, 16 unused inodes
Free blocks: 851968-884735
Free inodes: 417-432
-Group 27: (Blocks 884736-917503) [INODE_UNINIT]
+Group 27: (Blocks 884736-917503) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 884736, Group descriptors at 884737-884737
Reserved GDT blocks at 884738-885408
Block bitmap at 700 (bg #0 + 700), Inode bitmap at 1212 (bg #0 + 1212)
@@ -553,7 +551,7 @@ Group 80: (Blocks 2621440-2654207) [INODE_UNINIT, BLOCK_UNINIT]
32768 free blocks, 16 free inodes, 0 directories, 16 unused inodes
Free blocks: 2621440-2654207
Free inodes: 1281-1296
-Group 81: (Blocks 2654208-2686975) [INODE_UNINIT]
+Group 81: (Blocks 2654208-2686975) [INODE_UNINIT, BLOCK_UNINIT]
Backup superblock at 2654208, Group descriptors at 2654209-2654209
Reserved GDT blocks at 2654210-2654880
Block bitmap at 754 (bg #0 + 754), Inode bitmap at 1266 (bg #0 + 1266)
diff --git a/tests/m_bigjournal/script b/tests/m_bigjournal/script
index 1e21fdfe..4c1ed9a8 100644
--- a/tests/m_bigjournal/script
+++ b/tests/m_bigjournal/script
@@ -1,4 +1,8 @@
DESCRIPTION="journal over 4GB in size"
FS_SIZE=11000000
MKE2FS_OPTS="-t ext4 -G 512 -N 1280 -J size=5000 -q -E lazy_journal_init,lazy_itable_init,nodiscard"
+if [ $(uname -s) = "Darwin" ]; then
+ echo "$test_name: $DESCRIPTION: skipped for HFS+ (no sparse files)"
+ return 0
+fi
. $cmd_dir/run_mke2fs
diff --git a/tests/m_dasd_bs/expect.1 b/tests/m_dasd_bs/expect.1
index 31db54b7..75a401d3 100644
--- a/tests/m_dasd_bs/expect.1
+++ b/tests/m_dasd_bs/expect.1
@@ -1,24 +1,12 @@
-Filesystem label=
-OS type: Linux
-Block size=2048 (log=1)
-Fragment size=2048 (log=1)
-Stride=0 blocks, Stripe width=0 blocks
-16384 inodes, 32768 blocks
-1638 blocks (5.00%) reserved for the super user
-First data block=0
-Maximum filesystem blocks=33554432
-2 block groups
-16384 blocks per group, 16384 fragments per group
-8192 inodes per group
+Creating filesystem with 32768 2k blocks and 16384 inodes
Superblock backups stored on blocks:
16384
-Allocating group tables: 0/21/2 done
-Writing inode tables: 0/21/2 done
-Writing superblocks and filesystem accounting information: 0/21/2 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -26,7 +14,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 1104/32768 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_desc_size_128/expect.1 b/tests/m_desc_size_128/expect.1
new file mode 100644
index 00000000..5a7da87b
--- /dev/null
+++ b/tests/m_desc_size_128/expect.1
@@ -0,0 +1,838 @@
+Creating filesystem with 131072 1k blocks and 8192 inodes
+Superblock backups stored on blocks:
+ 1025, 3073, 5121, 7169, 9217, 25601, 27649, 50177, 82945, 128001
+
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
+
+Filesystem features: ext_attr resize_inode dir_index filetype extent 64bit sparse_super
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/8192 files (0.0% non-contiguous), 4298/131072 blocks
+Exit status is 0
+Filesystem volume name: <none>
+Last mounted on: <not available>
+Filesystem magic number: 0xEF53
+Filesystem revision #: 1 (dynamic)
+Filesystem features: ext_attr resize_inode dir_index filetype extent 64bit sparse_super
+Default mount options: (none)
+Filesystem state: clean
+Errors behavior: Continue
+Filesystem OS type: Linux
+Inode count: 8192
+Block count: 131072
+Reserved block count: 6553
+Free blocks: 126774
+Free inodes: 8181
+First block: 1
+Block size: 1024
+Fragment size: 1024
+Group descriptor size: 128
+Reserved GDT blocks: 256
+Blocks per group: 1024
+Fragments per group: 1024
+Inodes per group: 64
+Inode blocks per group: 8
+Mount count: 0
+Check interval: 15552000 (6 months)
+Reserved blocks uid: 0
+Reserved blocks gid: 0
+First inode: 11
+Inode size: 128
+Default directory hash: half_md4
+
+
+Group 0: (Blocks 1-1024)
+ Primary superblock at 1, Group descriptors at 2-17
+ Reserved GDT blocks at 18-273
+ Block bitmap at 274 (+273), Inode bitmap at 275 (+274)
+ Inode table at 276-283 (+275)
+ 727 free blocks, 53 free inodes, 2 directories
+ Free blocks: 298-1024
+ Free inodes: 12-64
+Group 1: (Blocks 1025-2048)
+ Backup superblock at 1025, Group descriptors at 1026-1041
+ Reserved GDT blocks at 1042-1297
+ Block bitmap at 1298 (+273), Inode bitmap at 1299 (+274)
+ Inode table at 1300-1307 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 1308-2048
+ Free inodes: 65-128
+Group 2: (Blocks 2049-3072)
+ Block bitmap at 2049 (+0), Inode bitmap at 2050 (+1)
+ Inode table at 2051-2058 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 2059-3072
+ Free inodes: 129-192
+Group 3: (Blocks 3073-4096)
+ Backup superblock at 3073, Group descriptors at 3074-3089
+ Reserved GDT blocks at 3090-3345
+ Block bitmap at 3346 (+273), Inode bitmap at 3347 (+274)
+ Inode table at 3348-3355 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 3356-4096
+ Free inodes: 193-256
+Group 4: (Blocks 4097-5120)
+ Block bitmap at 4097 (+0), Inode bitmap at 4098 (+1)
+ Inode table at 4099-4106 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 4107-5120
+ Free inodes: 257-320
+Group 5: (Blocks 5121-6144)
+ Backup superblock at 5121, Group descriptors at 5122-5137
+ Reserved GDT blocks at 5138-5393
+ Block bitmap at 5394 (+273), Inode bitmap at 5395 (+274)
+ Inode table at 5396-5403 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 5404-6144
+ Free inodes: 321-384
+Group 6: (Blocks 6145-7168)
+ Block bitmap at 6145 (+0), Inode bitmap at 6146 (+1)
+ Inode table at 6147-6154 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 6155-7168
+ Free inodes: 385-448
+Group 7: (Blocks 7169-8192)
+ Backup superblock at 7169, Group descriptors at 7170-7185
+ Reserved GDT blocks at 7186-7441
+ Block bitmap at 7442 (+273), Inode bitmap at 7443 (+274)
+ Inode table at 7444-7451 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 7452-8192
+ Free inodes: 449-512
+Group 8: (Blocks 8193-9216)
+ Block bitmap at 8193 (+0), Inode bitmap at 8194 (+1)
+ Inode table at 8195-8202 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 8203-9216
+ Free inodes: 513-576
+Group 9: (Blocks 9217-10240)
+ Backup superblock at 9217, Group descriptors at 9218-9233
+ Reserved GDT blocks at 9234-9489
+ Block bitmap at 9490 (+273), Inode bitmap at 9491 (+274)
+ Inode table at 9492-9499 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 9500-10240
+ Free inodes: 577-640
+Group 10: (Blocks 10241-11264)
+ Block bitmap at 10241 (+0), Inode bitmap at 10242 (+1)
+ Inode table at 10243-10250 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 10251-11264
+ Free inodes: 641-704
+Group 11: (Blocks 11265-12288)
+ Block bitmap at 11265 (+0), Inode bitmap at 11266 (+1)
+ Inode table at 11267-11274 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 11275-12288
+ Free inodes: 705-768
+Group 12: (Blocks 12289-13312)
+ Block bitmap at 12289 (+0), Inode bitmap at 12290 (+1)
+ Inode table at 12291-12298 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 12299-13312
+ Free inodes: 769-832
+Group 13: (Blocks 13313-14336)
+ Block bitmap at 13313 (+0), Inode bitmap at 13314 (+1)
+ Inode table at 13315-13322 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 13323-14336
+ Free inodes: 833-896
+Group 14: (Blocks 14337-15360)
+ Block bitmap at 14337 (+0), Inode bitmap at 14338 (+1)
+ Inode table at 14339-14346 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 14347-15360
+ Free inodes: 897-960
+Group 15: (Blocks 15361-16384)
+ Block bitmap at 15361 (+0), Inode bitmap at 15362 (+1)
+ Inode table at 15363-15370 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 15371-16384
+ Free inodes: 961-1024
+Group 16: (Blocks 16385-17408)
+ Block bitmap at 16385 (+0), Inode bitmap at 16386 (+1)
+ Inode table at 16387-16394 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 16395-17408
+ Free inodes: 1025-1088
+Group 17: (Blocks 17409-18432)
+ Block bitmap at 17409 (+0), Inode bitmap at 17410 (+1)
+ Inode table at 17411-17418 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 17419-18432
+ Free inodes: 1089-1152
+Group 18: (Blocks 18433-19456)
+ Block bitmap at 18433 (+0), Inode bitmap at 18434 (+1)
+ Inode table at 18435-18442 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 18443-19456
+ Free inodes: 1153-1216
+Group 19: (Blocks 19457-20480)
+ Block bitmap at 19457 (+0), Inode bitmap at 19458 (+1)
+ Inode table at 19459-19466 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 19467-20480
+ Free inodes: 1217-1280
+Group 20: (Blocks 20481-21504)
+ Block bitmap at 20481 (+0), Inode bitmap at 20482 (+1)
+ Inode table at 20483-20490 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 20491-21504
+ Free inodes: 1281-1344
+Group 21: (Blocks 21505-22528)
+ Block bitmap at 21505 (+0), Inode bitmap at 21506 (+1)
+ Inode table at 21507-21514 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 21515-22528
+ Free inodes: 1345-1408
+Group 22: (Blocks 22529-23552)
+ Block bitmap at 22529 (+0), Inode bitmap at 22530 (+1)
+ Inode table at 22531-22538 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 22539-23552
+ Free inodes: 1409-1472
+Group 23: (Blocks 23553-24576)
+ Block bitmap at 23553 (+0), Inode bitmap at 23554 (+1)
+ Inode table at 23555-23562 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 23563-24576
+ Free inodes: 1473-1536
+Group 24: (Blocks 24577-25600)
+ Block bitmap at 24577 (+0), Inode bitmap at 24578 (+1)
+ Inode table at 24579-24586 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 24587-25600
+ Free inodes: 1537-1600
+Group 25: (Blocks 25601-26624)
+ Backup superblock at 25601, Group descriptors at 25602-25617
+ Reserved GDT blocks at 25618-25873
+ Block bitmap at 25874 (+273), Inode bitmap at 25875 (+274)
+ Inode table at 25876-25883 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 25884-26624
+ Free inodes: 1601-1664
+Group 26: (Blocks 26625-27648)
+ Block bitmap at 26625 (+0), Inode bitmap at 26626 (+1)
+ Inode table at 26627-26634 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 26635-27648
+ Free inodes: 1665-1728
+Group 27: (Blocks 27649-28672)
+ Backup superblock at 27649, Group descriptors at 27650-27665
+ Reserved GDT blocks at 27666-27921
+ Block bitmap at 27922 (+273), Inode bitmap at 27923 (+274)
+ Inode table at 27924-27931 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 27932-28672
+ Free inodes: 1729-1792
+Group 28: (Blocks 28673-29696)
+ Block bitmap at 28673 (+0), Inode bitmap at 28674 (+1)
+ Inode table at 28675-28682 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 28683-29696
+ Free inodes: 1793-1856
+Group 29: (Blocks 29697-30720)
+ Block bitmap at 29697 (+0), Inode bitmap at 29698 (+1)
+ Inode table at 29699-29706 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 29707-30720
+ Free inodes: 1857-1920
+Group 30: (Blocks 30721-31744)
+ Block bitmap at 30721 (+0), Inode bitmap at 30722 (+1)
+ Inode table at 30723-30730 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 30731-31744
+ Free inodes: 1921-1984
+Group 31: (Blocks 31745-32768)
+ Block bitmap at 31745 (+0), Inode bitmap at 31746 (+1)
+ Inode table at 31747-31754 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 31755-32768
+ Free inodes: 1985-2048
+Group 32: (Blocks 32769-33792)
+ Block bitmap at 32769 (+0), Inode bitmap at 32770 (+1)
+ Inode table at 32771-32778 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 32779-33792
+ Free inodes: 2049-2112
+Group 33: (Blocks 33793-34816)
+ Block bitmap at 33793 (+0), Inode bitmap at 33794 (+1)
+ Inode table at 33795-33802 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 33803-34816
+ Free inodes: 2113-2176
+Group 34: (Blocks 34817-35840)
+ Block bitmap at 34817 (+0), Inode bitmap at 34818 (+1)
+ Inode table at 34819-34826 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 34827-35840
+ Free inodes: 2177-2240
+Group 35: (Blocks 35841-36864)
+ Block bitmap at 35841 (+0), Inode bitmap at 35842 (+1)
+ Inode table at 35843-35850 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 35851-36864
+ Free inodes: 2241-2304
+Group 36: (Blocks 36865-37888)
+ Block bitmap at 36865 (+0), Inode bitmap at 36866 (+1)
+ Inode table at 36867-36874 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 36875-37888
+ Free inodes: 2305-2368
+Group 37: (Blocks 37889-38912)
+ Block bitmap at 37889 (+0), Inode bitmap at 37890 (+1)
+ Inode table at 37891-37898 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 37899-38912
+ Free inodes: 2369-2432
+Group 38: (Blocks 38913-39936)
+ Block bitmap at 38913 (+0), Inode bitmap at 38914 (+1)
+ Inode table at 38915-38922 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 38923-39936
+ Free inodes: 2433-2496
+Group 39: (Blocks 39937-40960)
+ Block bitmap at 39937 (+0), Inode bitmap at 39938 (+1)
+ Inode table at 39939-39946 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 39947-40960
+ Free inodes: 2497-2560
+Group 40: (Blocks 40961-41984)
+ Block bitmap at 40961 (+0), Inode bitmap at 40962 (+1)
+ Inode table at 40963-40970 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 40971-41984
+ Free inodes: 2561-2624
+Group 41: (Blocks 41985-43008)
+ Block bitmap at 41985 (+0), Inode bitmap at 41986 (+1)
+ Inode table at 41987-41994 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 41995-43008
+ Free inodes: 2625-2688
+Group 42: (Blocks 43009-44032)
+ Block bitmap at 43009 (+0), Inode bitmap at 43010 (+1)
+ Inode table at 43011-43018 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 43019-44032
+ Free inodes: 2689-2752
+Group 43: (Blocks 44033-45056)
+ Block bitmap at 44033 (+0), Inode bitmap at 44034 (+1)
+ Inode table at 44035-44042 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 44043-45056
+ Free inodes: 2753-2816
+Group 44: (Blocks 45057-46080)
+ Block bitmap at 45057 (+0), Inode bitmap at 45058 (+1)
+ Inode table at 45059-45066 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 45067-46080
+ Free inodes: 2817-2880
+Group 45: (Blocks 46081-47104)
+ Block bitmap at 46081 (+0), Inode bitmap at 46082 (+1)
+ Inode table at 46083-46090 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 46091-47104
+ Free inodes: 2881-2944
+Group 46: (Blocks 47105-48128)
+ Block bitmap at 47105 (+0), Inode bitmap at 47106 (+1)
+ Inode table at 47107-47114 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 47115-48128
+ Free inodes: 2945-3008
+Group 47: (Blocks 48129-49152)
+ Block bitmap at 48129 (+0), Inode bitmap at 48130 (+1)
+ Inode table at 48131-48138 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 48139-49152
+ Free inodes: 3009-3072
+Group 48: (Blocks 49153-50176)
+ Block bitmap at 49153 (+0), Inode bitmap at 49154 (+1)
+ Inode table at 49155-49162 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 49163-50176
+ Free inodes: 3073-3136
+Group 49: (Blocks 50177-51200)
+ Backup superblock at 50177, Group descriptors at 50178-50193
+ Reserved GDT blocks at 50194-50449
+ Block bitmap at 50450 (+273), Inode bitmap at 50451 (+274)
+ Inode table at 50452-50459 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 50460-51200
+ Free inodes: 3137-3200
+Group 50: (Blocks 51201-52224)
+ Block bitmap at 51201 (+0), Inode bitmap at 51202 (+1)
+ Inode table at 51203-51210 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 51211-52224
+ Free inodes: 3201-3264
+Group 51: (Blocks 52225-53248)
+ Block bitmap at 52225 (+0), Inode bitmap at 52226 (+1)
+ Inode table at 52227-52234 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 52235-53248
+ Free inodes: 3265-3328
+Group 52: (Blocks 53249-54272)
+ Block bitmap at 53249 (+0), Inode bitmap at 53250 (+1)
+ Inode table at 53251-53258 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 53259-54272
+ Free inodes: 3329-3392
+Group 53: (Blocks 54273-55296)
+ Block bitmap at 54273 (+0), Inode bitmap at 54274 (+1)
+ Inode table at 54275-54282 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 54283-55296
+ Free inodes: 3393-3456
+Group 54: (Blocks 55297-56320)
+ Block bitmap at 55297 (+0), Inode bitmap at 55298 (+1)
+ Inode table at 55299-55306 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 55307-56320
+ Free inodes: 3457-3520
+Group 55: (Blocks 56321-57344)
+ Block bitmap at 56321 (+0), Inode bitmap at 56322 (+1)
+ Inode table at 56323-56330 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 56331-57344
+ Free inodes: 3521-3584
+Group 56: (Blocks 57345-58368)
+ Block bitmap at 57345 (+0), Inode bitmap at 57346 (+1)
+ Inode table at 57347-57354 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 57355-58368
+ Free inodes: 3585-3648
+Group 57: (Blocks 58369-59392)
+ Block bitmap at 58369 (+0), Inode bitmap at 58370 (+1)
+ Inode table at 58371-58378 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 58379-59392
+ Free inodes: 3649-3712
+Group 58: (Blocks 59393-60416)
+ Block bitmap at 59393 (+0), Inode bitmap at 59394 (+1)
+ Inode table at 59395-59402 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 59403-60416
+ Free inodes: 3713-3776
+Group 59: (Blocks 60417-61440)
+ Block bitmap at 60417 (+0), Inode bitmap at 60418 (+1)
+ Inode table at 60419-60426 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 60427-61440
+ Free inodes: 3777-3840
+Group 60: (Blocks 61441-62464)
+ Block bitmap at 61441 (+0), Inode bitmap at 61442 (+1)
+ Inode table at 61443-61450 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 61451-62464
+ Free inodes: 3841-3904
+Group 61: (Blocks 62465-63488)
+ Block bitmap at 62465 (+0), Inode bitmap at 62466 (+1)
+ Inode table at 62467-62474 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 62475-63488
+ Free inodes: 3905-3968
+Group 62: (Blocks 63489-64512)
+ Block bitmap at 63489 (+0), Inode bitmap at 63490 (+1)
+ Inode table at 63491-63498 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 63499-64512
+ Free inodes: 3969-4032
+Group 63: (Blocks 64513-65536)
+ Block bitmap at 64513 (+0), Inode bitmap at 64514 (+1)
+ Inode table at 64515-64522 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 64523-65536
+ Free inodes: 4033-4096
+Group 64: (Blocks 65537-66560)
+ Block bitmap at 65537 (+0), Inode bitmap at 65538 (+1)
+ Inode table at 65539-65546 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 65547-66560
+ Free inodes: 4097-4160
+Group 65: (Blocks 66561-67584)
+ Block bitmap at 66561 (+0), Inode bitmap at 66562 (+1)
+ Inode table at 66563-66570 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 66571-67584
+ Free inodes: 4161-4224
+Group 66: (Blocks 67585-68608)
+ Block bitmap at 67585 (+0), Inode bitmap at 67586 (+1)
+ Inode table at 67587-67594 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 67595-68608
+ Free inodes: 4225-4288
+Group 67: (Blocks 68609-69632)
+ Block bitmap at 68609 (+0), Inode bitmap at 68610 (+1)
+ Inode table at 68611-68618 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 68619-69632
+ Free inodes: 4289-4352
+Group 68: (Blocks 69633-70656)
+ Block bitmap at 69633 (+0), Inode bitmap at 69634 (+1)
+ Inode table at 69635-69642 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 69643-70656
+ Free inodes: 4353-4416
+Group 69: (Blocks 70657-71680)
+ Block bitmap at 70657 (+0), Inode bitmap at 70658 (+1)
+ Inode table at 70659-70666 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 70667-71680
+ Free inodes: 4417-4480
+Group 70: (Blocks 71681-72704)
+ Block bitmap at 71681 (+0), Inode bitmap at 71682 (+1)
+ Inode table at 71683-71690 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 71691-72704
+ Free inodes: 4481-4544
+Group 71: (Blocks 72705-73728)
+ Block bitmap at 72705 (+0), Inode bitmap at 72706 (+1)
+ Inode table at 72707-72714 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 72715-73728
+ Free inodes: 4545-4608
+Group 72: (Blocks 73729-74752)
+ Block bitmap at 73729 (+0), Inode bitmap at 73730 (+1)
+ Inode table at 73731-73738 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 73739-74752
+ Free inodes: 4609-4672
+Group 73: (Blocks 74753-75776)
+ Block bitmap at 74753 (+0), Inode bitmap at 74754 (+1)
+ Inode table at 74755-74762 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 74763-75776
+ Free inodes: 4673-4736
+Group 74: (Blocks 75777-76800)
+ Block bitmap at 75777 (+0), Inode bitmap at 75778 (+1)
+ Inode table at 75779-75786 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 75787-76800
+ Free inodes: 4737-4800
+Group 75: (Blocks 76801-77824)
+ Block bitmap at 76801 (+0), Inode bitmap at 76802 (+1)
+ Inode table at 76803-76810 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 76811-77824
+ Free inodes: 4801-4864
+Group 76: (Blocks 77825-78848)
+ Block bitmap at 77825 (+0), Inode bitmap at 77826 (+1)
+ Inode table at 77827-77834 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 77835-78848
+ Free inodes: 4865-4928
+Group 77: (Blocks 78849-79872)
+ Block bitmap at 78849 (+0), Inode bitmap at 78850 (+1)
+ Inode table at 78851-78858 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 78859-79872
+ Free inodes: 4929-4992
+Group 78: (Blocks 79873-80896)
+ Block bitmap at 79873 (+0), Inode bitmap at 79874 (+1)
+ Inode table at 79875-79882 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 79883-80896
+ Free inodes: 4993-5056
+Group 79: (Blocks 80897-81920)
+ Block bitmap at 80897 (+0), Inode bitmap at 80898 (+1)
+ Inode table at 80899-80906 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 80907-81920
+ Free inodes: 5057-5120
+Group 80: (Blocks 81921-82944)
+ Block bitmap at 81921 (+0), Inode bitmap at 81922 (+1)
+ Inode table at 81923-81930 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 81931-82944
+ Free inodes: 5121-5184
+Group 81: (Blocks 82945-83968)
+ Backup superblock at 82945, Group descriptors at 82946-82961
+ Reserved GDT blocks at 82962-83217
+ Block bitmap at 83218 (+273), Inode bitmap at 83219 (+274)
+ Inode table at 83220-83227 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 83228-83968
+ Free inodes: 5185-5248
+Group 82: (Blocks 83969-84992)
+ Block bitmap at 83969 (+0), Inode bitmap at 83970 (+1)
+ Inode table at 83971-83978 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 83979-84992
+ Free inodes: 5249-5312
+Group 83: (Blocks 84993-86016)
+ Block bitmap at 84993 (+0), Inode bitmap at 84994 (+1)
+ Inode table at 84995-85002 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 85003-86016
+ Free inodes: 5313-5376
+Group 84: (Blocks 86017-87040)
+ Block bitmap at 86017 (+0), Inode bitmap at 86018 (+1)
+ Inode table at 86019-86026 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 86027-87040
+ Free inodes: 5377-5440
+Group 85: (Blocks 87041-88064)
+ Block bitmap at 87041 (+0), Inode bitmap at 87042 (+1)
+ Inode table at 87043-87050 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 87051-88064
+ Free inodes: 5441-5504
+Group 86: (Blocks 88065-89088)
+ Block bitmap at 88065 (+0), Inode bitmap at 88066 (+1)
+ Inode table at 88067-88074 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 88075-89088
+ Free inodes: 5505-5568
+Group 87: (Blocks 89089-90112)
+ Block bitmap at 89089 (+0), Inode bitmap at 89090 (+1)
+ Inode table at 89091-89098 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 89099-90112
+ Free inodes: 5569-5632
+Group 88: (Blocks 90113-91136)
+ Block bitmap at 90113 (+0), Inode bitmap at 90114 (+1)
+ Inode table at 90115-90122 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 90123-91136
+ Free inodes: 5633-5696
+Group 89: (Blocks 91137-92160)
+ Block bitmap at 91137 (+0), Inode bitmap at 91138 (+1)
+ Inode table at 91139-91146 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 91147-92160
+ Free inodes: 5697-5760
+Group 90: (Blocks 92161-93184)
+ Block bitmap at 92161 (+0), Inode bitmap at 92162 (+1)
+ Inode table at 92163-92170 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 92171-93184
+ Free inodes: 5761-5824
+Group 91: (Blocks 93185-94208)
+ Block bitmap at 93185 (+0), Inode bitmap at 93186 (+1)
+ Inode table at 93187-93194 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 93195-94208
+ Free inodes: 5825-5888
+Group 92: (Blocks 94209-95232)
+ Block bitmap at 94209 (+0), Inode bitmap at 94210 (+1)
+ Inode table at 94211-94218 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 94219-95232
+ Free inodes: 5889-5952
+Group 93: (Blocks 95233-96256)
+ Block bitmap at 95233 (+0), Inode bitmap at 95234 (+1)
+ Inode table at 95235-95242 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 95243-96256
+ Free inodes: 5953-6016
+Group 94: (Blocks 96257-97280)
+ Block bitmap at 96257 (+0), Inode bitmap at 96258 (+1)
+ Inode table at 96259-96266 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 96267-97280
+ Free inodes: 6017-6080
+Group 95: (Blocks 97281-98304)
+ Block bitmap at 97281 (+0), Inode bitmap at 97282 (+1)
+ Inode table at 97283-97290 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 97291-98304
+ Free inodes: 6081-6144
+Group 96: (Blocks 98305-99328)
+ Block bitmap at 98305 (+0), Inode bitmap at 98306 (+1)
+ Inode table at 98307-98314 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 98315-99328
+ Free inodes: 6145-6208
+Group 97: (Blocks 99329-100352)
+ Block bitmap at 99329 (+0), Inode bitmap at 99330 (+1)
+ Inode table at 99331-99338 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 99339-100352
+ Free inodes: 6209-6272
+Group 98: (Blocks 100353-101376)
+ Block bitmap at 100353 (+0), Inode bitmap at 100354 (+1)
+ Inode table at 100355-100362 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 100363-101376
+ Free inodes: 6273-6336
+Group 99: (Blocks 101377-102400)
+ Block bitmap at 101377 (+0), Inode bitmap at 101378 (+1)
+ Inode table at 101379-101386 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 101387-102400
+ Free inodes: 6337-6400
+Group 100: (Blocks 102401-103424)
+ Block bitmap at 102401 (+0), Inode bitmap at 102402 (+1)
+ Inode table at 102403-102410 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 102411-103424
+ Free inodes: 6401-6464
+Group 101: (Blocks 103425-104448)
+ Block bitmap at 103425 (+0), Inode bitmap at 103426 (+1)
+ Inode table at 103427-103434 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 103435-104448
+ Free inodes: 6465-6528
+Group 102: (Blocks 104449-105472)
+ Block bitmap at 104449 (+0), Inode bitmap at 104450 (+1)
+ Inode table at 104451-104458 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 104459-105472
+ Free inodes: 6529-6592
+Group 103: (Blocks 105473-106496)
+ Block bitmap at 105473 (+0), Inode bitmap at 105474 (+1)
+ Inode table at 105475-105482 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 105483-106496
+ Free inodes: 6593-6656
+Group 104: (Blocks 106497-107520)
+ Block bitmap at 106497 (+0), Inode bitmap at 106498 (+1)
+ Inode table at 106499-106506 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 106507-107520
+ Free inodes: 6657-6720
+Group 105: (Blocks 107521-108544)
+ Block bitmap at 107521 (+0), Inode bitmap at 107522 (+1)
+ Inode table at 107523-107530 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 107531-108544
+ Free inodes: 6721-6784
+Group 106: (Blocks 108545-109568)
+ Block bitmap at 108545 (+0), Inode bitmap at 108546 (+1)
+ Inode table at 108547-108554 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 108555-109568
+ Free inodes: 6785-6848
+Group 107: (Blocks 109569-110592)
+ Block bitmap at 109569 (+0), Inode bitmap at 109570 (+1)
+ Inode table at 109571-109578 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 109579-110592
+ Free inodes: 6849-6912
+Group 108: (Blocks 110593-111616)
+ Block bitmap at 110593 (+0), Inode bitmap at 110594 (+1)
+ Inode table at 110595-110602 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 110603-111616
+ Free inodes: 6913-6976
+Group 109: (Blocks 111617-112640)
+ Block bitmap at 111617 (+0), Inode bitmap at 111618 (+1)
+ Inode table at 111619-111626 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 111627-112640
+ Free inodes: 6977-7040
+Group 110: (Blocks 112641-113664)
+ Block bitmap at 112641 (+0), Inode bitmap at 112642 (+1)
+ Inode table at 112643-112650 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 112651-113664
+ Free inodes: 7041-7104
+Group 111: (Blocks 113665-114688)
+ Block bitmap at 113665 (+0), Inode bitmap at 113666 (+1)
+ Inode table at 113667-113674 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 113675-114688
+ Free inodes: 7105-7168
+Group 112: (Blocks 114689-115712)
+ Block bitmap at 114689 (+0), Inode bitmap at 114690 (+1)
+ Inode table at 114691-114698 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 114699-115712
+ Free inodes: 7169-7232
+Group 113: (Blocks 115713-116736)
+ Block bitmap at 115713 (+0), Inode bitmap at 115714 (+1)
+ Inode table at 115715-115722 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 115723-116736
+ Free inodes: 7233-7296
+Group 114: (Blocks 116737-117760)
+ Block bitmap at 116737 (+0), Inode bitmap at 116738 (+1)
+ Inode table at 116739-116746 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 116747-117760
+ Free inodes: 7297-7360
+Group 115: (Blocks 117761-118784)
+ Block bitmap at 117761 (+0), Inode bitmap at 117762 (+1)
+ Inode table at 117763-117770 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 117771-118784
+ Free inodes: 7361-7424
+Group 116: (Blocks 118785-119808)
+ Block bitmap at 118785 (+0), Inode bitmap at 118786 (+1)
+ Inode table at 118787-118794 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 118795-119808
+ Free inodes: 7425-7488
+Group 117: (Blocks 119809-120832)
+ Block bitmap at 119809 (+0), Inode bitmap at 119810 (+1)
+ Inode table at 119811-119818 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 119819-120832
+ Free inodes: 7489-7552
+Group 118: (Blocks 120833-121856)
+ Block bitmap at 120833 (+0), Inode bitmap at 120834 (+1)
+ Inode table at 120835-120842 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 120843-121856
+ Free inodes: 7553-7616
+Group 119: (Blocks 121857-122880)
+ Block bitmap at 121857 (+0), Inode bitmap at 121858 (+1)
+ Inode table at 121859-121866 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 121867-122880
+ Free inodes: 7617-7680
+Group 120: (Blocks 122881-123904)
+ Block bitmap at 122881 (+0), Inode bitmap at 122882 (+1)
+ Inode table at 122883-122890 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 122891-123904
+ Free inodes: 7681-7744
+Group 121: (Blocks 123905-124928)
+ Block bitmap at 123905 (+0), Inode bitmap at 123906 (+1)
+ Inode table at 123907-123914 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 123915-124928
+ Free inodes: 7745-7808
+Group 122: (Blocks 124929-125952)
+ Block bitmap at 124929 (+0), Inode bitmap at 124930 (+1)
+ Inode table at 124931-124938 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 124939-125952
+ Free inodes: 7809-7872
+Group 123: (Blocks 125953-126976)
+ Block bitmap at 125953 (+0), Inode bitmap at 125954 (+1)
+ Inode table at 125955-125962 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 125963-126976
+ Free inodes: 7873-7936
+Group 124: (Blocks 126977-128000)
+ Block bitmap at 126977 (+0), Inode bitmap at 126978 (+1)
+ Inode table at 126979-126986 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 126987-128000
+ Free inodes: 7937-8000
+Group 125: (Blocks 128001-129024)
+ Backup superblock at 128001, Group descriptors at 128002-128017
+ Reserved GDT blocks at 128018-128273
+ Block bitmap at 128274 (+273), Inode bitmap at 128275 (+274)
+ Inode table at 128276-128283 (+275)
+ 741 free blocks, 64 free inodes, 0 directories
+ Free blocks: 128284-129024
+ Free inodes: 8001-8064
+Group 126: (Blocks 129025-130048)
+ Block bitmap at 129025 (+0), Inode bitmap at 129026 (+1)
+ Inode table at 129027-129034 (+2)
+ 1014 free blocks, 64 free inodes, 0 directories
+ Free blocks: 129035-130048
+ Free inodes: 8065-8128
+Group 127: (Blocks 130049-131071)
+ Block bitmap at 130049 (+0), Inode bitmap at 130050 (+1)
+ Inode table at 130051-130058 (+2)
+ 1013 free blocks, 64 free inodes, 0 directories
+ Free blocks: 130059-131071
+ Free inodes: 8129-8192
diff --git a/tests/m_desc_size_128/script b/tests/m_desc_size_128/script
new file mode 100644
index 00000000..de3def94
--- /dev/null
+++ b/tests/m_desc_size_128/script
@@ -0,0 +1,4 @@
+DESCRIPTION="enable 128-byte group descriptor on mkfs"
+FS_SIZE=131072
+MKE2FS_OPTS="-b 1024 -O 64bit,extents -g 1024 -N 8192 -E desc_size=128"
+. $cmd_dir/run_mke2fs
diff --git a/tests/m_extent_journal/expect.1 b/tests/m_extent_journal/expect.1
index a8c5b63c..34e8a80d 100644
--- a/tests/m_extent_journal/expect.1
+++ b/tests/m_extent_journal/expect.1
@@ -1,25 +1,13 @@
-Filesystem label=
-OS type: Linux
-Block size=1024 (log=0)
-Fragment size=1024 (log=0)
-Stride=0 blocks, Stripe width=0 blocks
-16384 inodes, 65536 blocks
-3276 blocks (5.00%) reserved for the super user
-First data block=1
-Maximum filesystem blocks=67108864
-8 block groups
-8192 blocks per group, 8192 fragments per group
-2048 inodes per group
+Creating filesystem with 65536 1k blocks and 16384 inodes
Superblock backups stored on blocks:
8193, 24577, 40961, 57345
-Allocating group tables: 0/81/82/83/84/85/86/87/8 done
-Writing inode tables: 0/81/82/83/84/85/86/87/8 done
+Allocating group tables: done
+Writing inode tables: done
Creating journal (4096 blocks): done
-Writing superblocks and filesystem accounting information: 0/81/82/83/84/85/86/87/8 done
+Writing superblocks and filesystem accounting information: done
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -27,7 +15,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 7460/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_large_file/expect.1 b/tests/m_large_file/expect.1
index 2b40c84c..8ab2711a 100644
--- a/tests/m_large_file/expect.1
+++ b/tests/m_large_file/expect.1
@@ -1,22 +1,10 @@
-Filesystem label=
-OS type: Linux
-Block size=4096 (log=2)
-Fragment size=4096 (log=2)
-Stride=0 blocks, Stripe width=0 blocks
-64 inodes, 16384 blocks
-819 blocks (5.00%) reserved for the super user
-First data block=0
-Maximum filesystem blocks=16777216
-1 block group
-32768 blocks per group, 32768 fragments per group
-64 inodes per group
+Creating filesystem with 16384 4k blocks and 64 inodes
-Allocating group tables: 0/1 done
-Writing inode tables: 0/1 done
-Writing superblocks and filesystem accounting information: 0/1 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -24,7 +12,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/64 files (0.0% non-contiguous), 17/16384 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_meta_bg/expect.1 b/tests/m_meta_bg/expect.1
index f1c9cef1..7df4230c 100644
--- a/tests/m_meta_bg/expect.1
+++ b/tests/m_meta_bg/expect.1
@@ -1,23 +1,12 @@
-Filesystem label=
-OS type: Linux
-Block size=1024 (log=0)
-Fragment size=1024 (log=0)
-Stride=0 blocks, Stripe width=0 blocks
-32768 inodes, 131072 blocks
-6553 blocks (5.00%) reserved for the super user
-First data block=1
-128 block groups
-1024 blocks per group, 1024 fragments per group
-256 inodes per group
+Creating filesystem with 131072 1k blocks and 32768 inodes
Superblock backups stored on blocks:
1025, 3073, 5121, 7169, 9217, 25601, 27649, 50177, 82945, 128001
-Allocating group tables: 0/128 1/128 2/128 3/128 4/128 5/128 6/128 7/128 8/128 9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128 done
-Writing inode tables: 0/128 1/128 2/128 3/128 4/128 5/128 6/128 7/128 8/128 9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128 done
-Writing superblocks and filesystem accounting information: 0/128 1/128 2/128 3/128 4/128 5/128 6/128 7/128 8/128 9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Filesystem features: ext_attr dir_index filetype meta_bg sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -25,7 +14,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/32768 files (0.0% non-contiguous), 4389/131072 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_mkfs_overhead/script b/tests/m_mkfs_overhead/script
index ff461996..c21da0c3 100644
--- a/tests/m_mkfs_overhead/script
+++ b/tests/m_mkfs_overhead/script
@@ -1,4 +1,4 @@
-echo -n "test bg overhead calculation: "
+test_description="test bg overhead calculation"
OUT=$test_name.log
EXP=$test_dir/expect
@@ -12,22 +12,20 @@ export MKE2FS_SKIP_PROGRESS MKE2FS_SKIP_CHECK_MSG
cp /dev/null $OUT
-$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 | sed -e 1d | \
- sed -e "s;$TMPFILE;test.img;" | tr -d \\015 > $OUT
+$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" > $OUT
rm -f $TMPFILE
-rm -f $test_name.ok $test_name.failed
cmp -s $OUT $EXP
status1=$?
if [ "$status1" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
- echo "failed"
+ echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
fi
-rm -f tmp_expect
unset OUT EXP DESCRIPTION FS_SIZE MKE2FS_OPTS MKE2FS_SKIP_PROGRESS
diff --git a/tests/m_mmp/expect.1 b/tests/m_mmp/expect.1
index d3319b3f..aec0a841 100644
--- a/tests/m_mmp/expect.1
+++ b/tests/m_mmp/expect.1
@@ -1,25 +1,13 @@
-Filesystem label=
-OS type: Linux
-Block size=4096 (log=2)
-Fragment size=4096 (log=2)
-Stride=0 blocks, Stripe width=0 blocks
-65536 inodes, 65536 blocks
-3276 blocks (5.00%) reserved for the super user
-First data block=0
-Maximum filesystem blocks=67108864
-2 block groups
-32768 blocks per group, 32768 fragments per group
-32768 inodes per group
+Creating filesystem with 65536 4k blocks and 65536 inodes
Superblock backups stored on blocks:
32768
-Allocating group tables: 0/21/2 done
-Writing inode tables: 0/21/2 done
+Allocating group tables: done
+Writing inode tables: done
Multiple mount protection is enabled with update interval 5 seconds.
-Writing superblocks and filesystem accounting information: 0/21/2 done
+Writing superblocks and filesystem accounting information: done
Filesystem features: ext_attr resize_inode dir_index filetype mmp sparse_super large_file
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -27,7 +15,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/65536 files (0.0% non-contiguous), 2093/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_mmp/script b/tests/m_mmp/script
index b3e206a3..02b0b4b8 100644
--- a/tests/m_mmp/script
+++ b/tests/m_mmp/script
@@ -2,12 +2,12 @@ DESCRIPTION="enable MMP during mke2fs"
FS_SIZE=65536
MKE2FS_DEVICE_SECTSIZE=2048
export MKE2FS_DEVICE_SECTSIZE
-TMPFILE=test.img
+TMPFILE=$test_name.tmp
> $TMPFILE
stat -f $TMPFILE | grep -q "Type: tmpfs"
-if [ $? == 0 ]; then
+if [ $? = 0 ]; then
rm -f $TMPFILE
- echo "skipped for tmpfs (no O_DIRECT support)"
+ echo "$test_name: $test_description: skipped for tmpfs (no O_DIRECT)"
return 0
fi
MKE2FS_OPTS="-b 4096 -O mmp"
diff --git a/tests/m_no_opt/expect.1 b/tests/m_no_opt/expect.1
index 7f3e5aa7..58b311c4 100644
--- a/tests/m_no_opt/expect.1
+++ b/tests/m_no_opt/expect.1
@@ -1,23 +1,12 @@
-Filesystem label=
-OS type: Linux
-Block size=1024 (log=0)
-Fragment size=1024 (log=0)
-Stride=0 blocks, Stripe width=0 blocks
-16384 inodes, 65536 blocks
-3276 blocks (5.00%) reserved for the super user
-First data block=1
-8 block groups
-8192 blocks per group, 8192 fragments per group
-2048 inodes per group
+Creating filesystem with 65536 1k blocks and 16384 inodes
Superblock backups stored on blocks:
8193, 16385, 24577, 32769, 40961, 49153, 57345
-Allocating group tables: 0/81/82/83/84/85/86/87/8 done
-Writing inode tables: 0/81/82/83/84/85/86/87/8 done
-Writing superblocks and filesystem accounting information: 0/81/82/83/84/85/86/87/8 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Filesystem features:(none)
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -25,7 +14,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 2094/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_quota/expect.1 b/tests/m_quota/expect.1
new file mode 100644
index 00000000..787871cd
--- /dev/null
+++ b/tests/m_quota/expect.1
@@ -0,0 +1,157 @@
+Creating filesystem with 131072 1k blocks and 32768 inodes
+Superblock backups stored on blocks:
+ 8193, 24577, 40961, 57345, 73729
+
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
+
+Filesystem features: ext_attr resize_inode dir_index filetype sparse_super quota
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/32768 files (18.2% non-contiguous), 5703/131072 blocks
+Exit status is 0
+Filesystem volume name: <none>
+Last mounted on: <not available>
+Filesystem magic number: 0xEF53
+Filesystem revision #: 1 (dynamic)
+Filesystem features: ext_attr resize_inode dir_index filetype sparse_super quota
+Default mount options: (none)
+Filesystem state: clean
+Errors behavior: Continue
+Filesystem OS type: Linux
+Inode count: 32768
+Block count: 131072
+Reserved block count: 6553
+Free blocks: 125369
+Free inodes: 32757
+First block: 1
+Block size: 1024
+Fragment size: 1024
+Reserved GDT blocks: 256
+Blocks per group: 8192
+Fragments per group: 8192
+Inodes per group: 2048
+Inode blocks per group: 256
+Mount count: 0
+Check interval: 15552000 (6 months)
+Reserved blocks uid: 0
+Reserved blocks gid: 0
+First inode: 11
+Inode size: 128
+Default directory hash: half_md4
+User quota inode: 3
+Group quota inode: 4
+
+
+Group 0: (Blocks 1-8192)
+ Primary superblock at 1, Group descriptors at 2-2
+ Reserved GDT blocks at 3-258
+ Block bitmap at 259 (+258), Inode bitmap at 260 (+259)
+ Inode table at 261-516 (+260)
+ 7650 free blocks, 2037 free inodes, 2 directories
+ Free blocks: 543-8192
+ Free inodes: 12-2048
+Group 1: (Blocks 8193-16384)
+ Backup superblock at 8193, Group descriptors at 8194-8194
+ Reserved GDT blocks at 8195-8450
+ Block bitmap at 8451 (+258), Inode bitmap at 8452 (+259)
+ Inode table at 8453-8708 (+260)
+ 7676 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 8709-16384
+ Free inodes: 2049-4096
+Group 2: (Blocks 16385-24576)
+ Block bitmap at 16385 (+0), Inode bitmap at 16386 (+1)
+ Inode table at 16387-16642 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 16643-24576
+ Free inodes: 4097-6144
+Group 3: (Blocks 24577-32768)
+ Backup superblock at 24577, Group descriptors at 24578-24578
+ Reserved GDT blocks at 24579-24834
+ Block bitmap at 24835 (+258), Inode bitmap at 24836 (+259)
+ Inode table at 24837-25092 (+260)
+ 7676 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 25093-32768
+ Free inodes: 6145-8192
+Group 4: (Blocks 32769-40960)
+ Block bitmap at 32769 (+0), Inode bitmap at 32770 (+1)
+ Inode table at 32771-33026 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 33027-40960
+ Free inodes: 8193-10240
+Group 5: (Blocks 40961-49152)
+ Backup superblock at 40961, Group descriptors at 40962-40962
+ Reserved GDT blocks at 40963-41218
+ Block bitmap at 41219 (+258), Inode bitmap at 41220 (+259)
+ Inode table at 41221-41476 (+260)
+ 7676 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 41477-49152
+ Free inodes: 10241-12288
+Group 6: (Blocks 49153-57344)
+ Block bitmap at 49153 (+0), Inode bitmap at 49154 (+1)
+ Inode table at 49155-49410 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 49411-57344
+ Free inodes: 12289-14336
+Group 7: (Blocks 57345-65536)
+ Backup superblock at 57345, Group descriptors at 57346-57346
+ Reserved GDT blocks at 57347-57602
+ Block bitmap at 57603 (+258), Inode bitmap at 57604 (+259)
+ Inode table at 57605-57860 (+260)
+ 7676 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 57861-65536
+ Free inodes: 14337-16384
+Group 8: (Blocks 65537-73728)
+ Block bitmap at 65537 (+0), Inode bitmap at 65538 (+1)
+ Inode table at 65539-65794 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 65795-73728
+ Free inodes: 16385-18432
+Group 9: (Blocks 73729-81920)
+ Backup superblock at 73729, Group descriptors at 73730-73730
+ Reserved GDT blocks at 73731-73986
+ Block bitmap at 73987 (+258), Inode bitmap at 73988 (+259)
+ Inode table at 73989-74244 (+260)
+ 7676 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 74245-81920
+ Free inodes: 18433-20480
+Group 10: (Blocks 81921-90112)
+ Block bitmap at 81921 (+0), Inode bitmap at 81922 (+1)
+ Inode table at 81923-82178 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 82179-90112
+ Free inodes: 20481-22528
+Group 11: (Blocks 90113-98304)
+ Block bitmap at 90113 (+0), Inode bitmap at 90114 (+1)
+ Inode table at 90115-90370 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 90371-98304
+ Free inodes: 22529-24576
+Group 12: (Blocks 98305-106496)
+ Block bitmap at 98305 (+0), Inode bitmap at 98306 (+1)
+ Inode table at 98307-98562 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 98563-106496
+ Free inodes: 24577-26624
+Group 13: (Blocks 106497-114688)
+ Block bitmap at 106497 (+0), Inode bitmap at 106498 (+1)
+ Inode table at 106499-106754 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 106755-114688
+ Free inodes: 26625-28672
+Group 14: (Blocks 114689-122880)
+ Block bitmap at 114689 (+0), Inode bitmap at 114690 (+1)
+ Inode table at 114691-114946 (+2)
+ 7934 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 114947-122880
+ Free inodes: 28673-30720
+Group 15: (Blocks 122881-131071)
+ Block bitmap at 122881 (+0), Inode bitmap at 122882 (+1)
+ Inode table at 122883-123138 (+2)
+ 7933 free blocks, 2048 free inodes, 0 directories
+ Free blocks: 123139-131071
+ Free inodes: 30721-32768
diff --git a/tests/m_quota/script b/tests/m_quota/script
new file mode 100644
index 00000000..36ab6306
--- /dev/null
+++ b/tests/m_quota/script
@@ -0,0 +1,8 @@
+DESCRIPTION="enable quota feature on mkfs"
+FS_SIZE=131072
+MKE2FS_OPTS="-O quota"
+if [ "$QUOTA" != "y" ]; then
+ echo "$test_name: $DESCRIPTION: skipped"
+ return 0
+fi
+. $cmd_dir/run_mke2fs
diff --git a/tests/m_raid_opt/expect.1 b/tests/m_raid_opt/expect.1
index 0c6acc16..0fccb7ca 100644
--- a/tests/m_raid_opt/expect.1
+++ b/tests/m_raid_opt/expect.1
@@ -1,24 +1,12 @@
-Filesystem label=
-OS type: Linux
-Block size=1024 (log=0)
-Fragment size=1024 (log=0)
-Stride=13 blocks, Stripe width=0 blocks
-32768 inodes, 131072 blocks
-6553 blocks (5.00%) reserved for the super user
-First data block=1
-Maximum filesystem blocks=8519680
-128 block groups
-1024 blocks per group, 1024 fragments per group
-256 inodes per group
+Creating filesystem with 131072 1k blocks and 32768 inodes
Superblock backups stored on blocks:
1025, 3073, 5121, 7169, 9217, 25601, 27649, 50177, 82945, 128001
-Allocating group tables: 0/128 1/128 2/128 3/128 4/128 5/128 6/128 7/128 8/128 9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128 done
-Writing inode tables: 0/128 1/128 2/128 3/128 4/128 5/128 6/128 7/128 8/128 9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128 done
-Writing superblocks and filesystem accounting information: 0/128 1/128 2/128 3/128 4/128 5/128 6/128 7/128 8/128 9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -26,7 +14,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/32768 files (0.0% non-contiguous), 7238/131072 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_raid_opt/script b/tests/m_raid_opt/script
index 1e47cc13..296fe948 100644
--- a/tests/m_raid_opt/script
+++ b/tests/m_raid_opt/script
@@ -1,4 +1,4 @@
DESCRIPTION="raid options"
FS_SIZE=131072
-MKE2FS_OPTS="-R stride=13 -O sparse_super -g 1024"
+MKE2FS_OPTS="-E stride=13 -O sparse_super -g 1024"
. $cmd_dir/run_mke2fs
diff --git a/tests/m_root_owner/expect.1 b/tests/m_root_owner/expect.1
new file mode 100644
index 00000000..cd949938
--- /dev/null
+++ b/tests/m_root_owner/expect.1
@@ -0,0 +1,53 @@
+Creating filesystem with 1024 1k blocks and 128 inodes
+
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
+
+Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/128 files (0.0% non-contiguous), 38/1024 blocks
+Exit status is 0
+Filesystem volume name: <none>
+Last mounted on: <not available>
+Filesystem magic number: 0xEF53
+Filesystem revision #: 1 (dynamic)
+Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
+Default mount options: (none)
+Filesystem state: clean
+Errors behavior: Continue
+Filesystem OS type: Linux
+Inode count: 128
+Block count: 1024
+Reserved block count: 51
+Free blocks: 986
+Free inodes: 117
+First block: 1
+Block size: 1024
+Fragment size: 1024
+Reserved GDT blocks: 3
+Blocks per group: 8192
+Fragments per group: 8192
+Inodes per group: 128
+Inode blocks per group: 16
+Mount count: 0
+Check interval: 15552000 (6 months)
+Reserved blocks uid: 0
+Reserved blocks gid: 0
+First inode: 11
+Inode size: 128
+Default directory hash: half_md4
+
+
+Group 0: (Blocks 1-1023)
+ Primary superblock at 1, Group descriptors at 2-2
+ Reserved GDT blocks at 3-5
+ Block bitmap at 6 (+5), Inode bitmap at 7 (+6)
+ Inode table at 8-23 (+7)
+ 986 free blocks, 117 free inodes, 2 directories
+ Free blocks: 38-1023
+ Free inodes: 12-128
diff --git a/tests/m_root_owner/script b/tests/m_root_owner/script
new file mode 100644
index 00000000..02c5ef62
--- /dev/null
+++ b/tests/m_root_owner/script
@@ -0,0 +1,4 @@
+DESCRIPTION="root directory owner"
+FS_SIZE=1024
+MKE2FS_OPTS="-E root_owner=1234:1234"
+. $cmd_dir/run_mke2fs
diff --git a/tests/m_std/expect.1 b/tests/m_std/expect.1
index d0bf27c8..b05031f8 100644
--- a/tests/m_std/expect.1
+++ b/tests/m_std/expect.1
@@ -1,24 +1,12 @@
-Filesystem label=
-OS type: Linux
-Block size=1024 (log=0)
-Fragment size=1024 (log=0)
-Stride=0 blocks, Stripe width=0 blocks
-16384 inodes, 65536 blocks
-3276 blocks (5.00%) reserved for the super user
-First data block=1
-Maximum filesystem blocks=67108864
-8 block groups
-8192 blocks per group, 8192 fragments per group
-2048 inodes per group
+Creating filesystem with 65536 1k blocks and 16384 inodes
Superblock backups stored on blocks:
8193, 24577, 40961, 57345
-Allocating group tables: 0/81/82/83/84/85/86/87/8 done
-Writing inode tables: 0/81/82/83/84/85/86/87/8 done
-Writing superblocks and filesystem accounting information: 0/81/82/83/84/85/86/87/8 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -26,7 +14,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 3364/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/m_uninit/expect.1 b/tests/m_uninit/expect.1
index a3c059db..e886dfbf 100644
--- a/tests/m_uninit/expect.1
+++ b/tests/m_uninit/expect.1
@@ -1,24 +1,12 @@
-Filesystem label=
-OS type: Linux
-Block size=1024 (log=0)
-Fragment size=1024 (log=0)
-Stride=0 blocks, Stripe width=0 blocks
-32768 inodes, 131072 blocks
-6553 blocks (5.00%) reserved for the super user
-First data block=1
-Maximum filesystem blocks=67371008
-16 block groups
-8192 blocks per group, 8192 fragments per group
-2048 inodes per group
+Creating filesystem with 131072 1k blocks and 32768 inodes
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
-Allocating group tables: 0/16 1/16 2/16 3/16 4/16 5/16 6/16 7/16 8/16 9/1610/1611/1612/1613/1614/1615/16 done
-Writing inode tables: 0/16 1/16 2/16 3/16 4/16 5/16 6/16 7/16 8/16 9/1610/1611/1612/1613/1614/1615/16 done
-Writing superblocks and filesystem accounting information: 0/16 1/16 2/16 3/16 4/16 5/16 6/16 7/16 8/16 9/1610/1611/1612/1613/1614/1615/16 done
+Allocating group tables: done
+Writing inode tables: done
+Writing superblocks and filesystem accounting information: done
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super uninit_bg
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
@@ -26,7 +14,6 @@ Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 11/32768 files (0.0% non-contiguous), 5691/131072 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
@@ -66,7 +53,7 @@ Group 0: (Blocks 1-8192) [ITABLE_ZEROED]
7662 free blocks, 2037 free inodes, 2 directories, 2037 unused inodes
Free blocks: 531-8192
Free inodes: 12-2048
-Group 1: (Blocks 8193-16384) [INODE_UNINIT, ITABLE_ZEROED]
+Group 1: (Blocks 8193-16384) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Backup superblock at 8193, Group descriptors at 8194-8194
Reserved GDT blocks at 8195-8450
Block bitmap at 8451 (+258), Inode bitmap at 8452 (+259)
@@ -78,9 +65,9 @@ Group 2: (Blocks 16385-24576) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 16385 (+0), Inode bitmap at 16386 (+1)
Inode table at 16387-16642 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 16385-24576
+ Free blocks: 16643-24576
Free inodes: 4097-6144
-Group 3: (Blocks 24577-32768) [INODE_UNINIT, ITABLE_ZEROED]
+Group 3: (Blocks 24577-32768) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Backup superblock at 24577, Group descriptors at 24578-24578
Reserved GDT blocks at 24579-24834
Block bitmap at 24835 (+258), Inode bitmap at 24836 (+259)
@@ -92,9 +79,9 @@ Group 4: (Blocks 32769-40960) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 32769 (+0), Inode bitmap at 32770 (+1)
Inode table at 32771-33026 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 32769-40960
+ Free blocks: 33027-40960
Free inodes: 8193-10240
-Group 5: (Blocks 40961-49152) [INODE_UNINIT, ITABLE_ZEROED]
+Group 5: (Blocks 40961-49152) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Backup superblock at 40961, Group descriptors at 40962-40962
Reserved GDT blocks at 40963-41218
Block bitmap at 41219 (+258), Inode bitmap at 41220 (+259)
@@ -106,9 +93,9 @@ Group 6: (Blocks 49153-57344) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 49153 (+0), Inode bitmap at 49154 (+1)
Inode table at 49155-49410 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 49153-57344
+ Free blocks: 49411-57344
Free inodes: 12289-14336
-Group 7: (Blocks 57345-65536) [INODE_UNINIT, ITABLE_ZEROED]
+Group 7: (Blocks 57345-65536) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Backup superblock at 57345, Group descriptors at 57346-57346
Reserved GDT blocks at 57347-57602
Block bitmap at 57603 (+258), Inode bitmap at 57604 (+259)
@@ -120,9 +107,9 @@ Group 8: (Blocks 65537-73728) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 65537 (+0), Inode bitmap at 65538 (+1)
Inode table at 65539-65794 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 65537-73728
+ Free blocks: 65795-73728
Free inodes: 16385-18432
-Group 9: (Blocks 73729-81920) [INODE_UNINIT, ITABLE_ZEROED]
+Group 9: (Blocks 73729-81920) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Backup superblock at 73729, Group descriptors at 73730-73730
Reserved GDT blocks at 73731-73986
Block bitmap at 73987 (+258), Inode bitmap at 73988 (+259)
@@ -134,31 +121,31 @@ Group 10: (Blocks 81921-90112) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 81921 (+0), Inode bitmap at 81922 (+1)
Inode table at 81923-82178 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 81921-90112
+ Free blocks: 82179-90112
Free inodes: 20481-22528
Group 11: (Blocks 90113-98304) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 90113 (+0), Inode bitmap at 90114 (+1)
Inode table at 90115-90370 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 90113-98304
+ Free blocks: 90371-98304
Free inodes: 22529-24576
Group 12: (Blocks 98305-106496) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 98305 (+0), Inode bitmap at 98306 (+1)
Inode table at 98307-98562 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 98305-106496
+ Free blocks: 98563-106496
Free inodes: 24577-26624
Group 13: (Blocks 106497-114688) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 106497 (+0), Inode bitmap at 106498 (+1)
Inode table at 106499-106754 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 106497-114688
+ Free blocks: 106755-114688
Free inodes: 26625-28672
Group 14: (Blocks 114689-122880) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
Block bitmap at 114689 (+0), Inode bitmap at 114690 (+1)
Inode table at 114691-114946 (+2)
7934 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes
- Free blocks: 114689-122880
+ Free blocks: 114947-122880
Free inodes: 28673-30720
Group 15: (Blocks 122881-131071) [INODE_UNINIT, ITABLE_ZEROED]
Block bitmap at 122881 (+0), Inode bitmap at 122882 (+1)
diff --git a/tests/mke2fs.conf.in b/tests/mke2fs.conf.in
index fbe2e2a7..c06050d8 100644
--- a/tests/mke2fs.conf.in
+++ b/tests/mke2fs.conf.in
@@ -6,6 +6,7 @@
reserved_ratio = 5.0
enable_periodic_fsck = true
lazy_itable_init = false
+ no_discard = true
default_mntopts = ^acl
[fs_types]
diff --git a/tests/progs/Makefile.in b/tests/progs/Makefile.in
index 0e281928..44d04b51 100644
--- a/tests/progs/Makefile.in
+++ b/tests/progs/Makefile.in
@@ -13,7 +13,7 @@ INSTALL = @INSTALL@
MK_CMDS= _SS_DIR_OVERRIDE=../../lib/ss ../../lib/ss/mk_cmds
-PROGS= test_icount
+PROGS= test_icount crcsum
TEST_REL_OBJS= test_rel.o test_rel_cmds.o
@@ -21,12 +21,13 @@ TEST_ICOUNT_OBJS= test_icount.o test_icount_cmds.o
SRCS= $(srcdir)/test_rel.c
-LIBS= $(LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR)
+LIBS= $(LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR) $(SYSLIBS)
DEPLIBS= $(LIBEXT2FS) $(DEPLIBSS) $(DEPLIBCOM_ERR)
.c.o:
$(E) " CC $<"
$(Q) $(CC) -c $(ALL_CFLAGS) $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
all:: $(PROGS)
@@ -34,6 +35,10 @@ test_rel: $(TEST_REL_OBJS) $(DEPLIBS)
$(E) " LD $@"
$(Q) $(LD) $(ALL_LDFLAGS) -o test_rel $(TEST_REL_OBJS) $(LIBS)
+crcsum: crcsum.o $(DEPLIBS)
+ $(E) " LD $@"
+ $(Q) $(LD) $(ALL_LDFLAGS) -o crcsum crcsum.o $(LIBS)
+
test_rel_cmds.c: test_rel_cmds.ct
$(E) " MK_CMDS $@"
$(Q) $(MK_CMDS) $(srcdir)/test_rel_cmds.ct
@@ -46,7 +51,7 @@ test_icount_cmds.c: test_icount_cmds.ct
$(E) " MK_CMDS $@"
$(Q) $(MK_CMDS) $(srcdir)/test_icount_cmds.ct
-clean:
+clean::
$(RM) -f $(PROGS) test_rel_cmds.c test_icount_cmds.c \
\#* *.s *.o *.a *~ core
diff --git a/tests/progs/crcsum.c b/tests/progs/crcsum.c
new file mode 100644
index 00000000..9794e103
--- /dev/null
+++ b/tests/progs/crcsum.c
@@ -0,0 +1,68 @@
+/*
+ * crcsum.c
+ *
+ * Copyright (C) 2013 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#endif
+#include <fcntl.h>
+
+#include "et/com_err.h"
+#include "ss/ss.h"
+#include "ext2fs/ext2fs.h"
+
+
+int main(int argc, char **argv)
+{
+ int c;
+ uint32_t crc = ~0;
+ uint32_t (*csum_func)(uint32_t crc, unsigned char const *p,
+ size_t len);
+ FILE *f;
+
+ csum_func = ext2fs_crc32c_le;
+
+ while ((c = getopt (argc, argv, "h")) != EOF) {
+ switch (c) {
+ case 'h':
+ default:
+ com_err(argv[0], 0, "Usage: crcsum [file]\n");
+ return 1;
+ }
+ }
+
+ if (optind == argc)
+ f = stdin;
+ else {
+ f = fopen(argv[optind], "r");
+ if (!f) {
+ com_err(argv[0], errno, "while trying to open %s\n",
+ argv[optind]);
+ exit(1);
+ }
+ }
+
+ while (!feof(f)) {
+ unsigned char buf[4096];
+
+ int c = fread(buf, 1, sizeof(buf), f);
+
+ if (c)
+ crc = csum_func(crc, buf, c);
+ }
+ printf("%u\n", crc);
+ return 0;
+}
diff --git a/tests/r_1024_small_bg/script b/tests/r_1024_small_bg/script
new file mode 100644
index 00000000..2038cb96
--- /dev/null
+++ b/tests/r_1024_small_bg/script
@@ -0,0 +1,31 @@
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="ext2 1024 blocksize with small block groups"
+FEATURES="-t ext2 -O ^resize_inode -b 1024 -g 1024"
+SIZE_1=64M
+SIZE_2=2G
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+resize_test
+RC=$?
+if [ $RC -eq 0 ]; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+elif [ $RC -eq 111 ]; then
+ echo "$test_name: $test_description: skipped"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ ln $LOG $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
diff --git a/tests/r_64bit_big_expand/script b/tests/r_64bit_big_expand/script
new file mode 100644
index 00000000..6716f3c6
--- /dev/null
+++ b/tests/r_64bit_big_expand/script
@@ -0,0 +1,31 @@
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="very large fs growth using ext4 w/64bit"
+FEATURES="-t ext4 -O 64bit"
+SIZE_1=512M
+SIZE_2=2T
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+resize_test
+RC=$?
+if [ $RC -eq 0 ]; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+elif [ $RC -eq 111 ]; then
+ echo "$test_name: $test_description: skipped"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ ln $LOG $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
diff --git a/tests/r_bigalloc_big_expand/script b/tests/r_bigalloc_big_expand/script
new file mode 100644
index 00000000..511733b6
--- /dev/null
+++ b/tests/r_bigalloc_big_expand/script
@@ -0,0 +1,31 @@
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="ext4 with bigalloc"
+FEATURES="-t ext4 -O bigalloc"
+SIZE_1=512M
+SIZE_2=2T
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+RESIZE2FS_OPTS=-f
+
+. $cmd_dir/scripts/resize_test
+
+resize_test
+RC=$?
+if [ $RC -eq 0 ]; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+elif [ $RC -eq 111 ]; then
+ echo "$test_name: $test_description: skipped"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ ln $LOG $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
diff --git a/tests/r_ext4_big_expand/script b/tests/r_ext4_big_expand/script
new file mode 100644
index 00000000..b4a6f6e3
--- /dev/null
+++ b/tests/r_ext4_big_expand/script
@@ -0,0 +1,31 @@
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="very large fs growth using ext4"
+FEATURES="-t ext4"
+SIZE_1=512M
+SIZE_2=2T
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+resize_test
+RC=$?
+if [ $RC -eq 0 ]; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+elif [ $RC -eq 111 ]; then
+ echo "$test_name: $test_description: skipped"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ ln $LOG $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
diff --git a/tests/r_ext4_small_bg/script b/tests/r_ext4_small_bg/script
new file mode 100644
index 00000000..cdc6e4a3
--- /dev/null
+++ b/tests/r_ext4_small_bg/script
@@ -0,0 +1,31 @@
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="ext4 1024 blocksize with small block groups"
+FEATURES="-t ext4 -O ^resize_inode -b 1024 -g 512"
+SIZE_1=64M
+SIZE_2=2G
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+resize_test
+RC=$?
+if [ $RC -eq 0 ]; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+elif [ $RC -eq 111 ]; then
+ echo "$test_name: $test_description: skipped"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ ln $LOG $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
diff --git a/tests/r_inline_xattr/script b/tests/r_inline_xattr/script
index e4e0f536..d8825872 100644
--- a/tests/r_inline_xattr/script
+++ b/tests/r_inline_xattr/script
@@ -20,7 +20,7 @@ echo "resize2fs test.img 5M" >> $OUT
$RESIZE2FS $TMPFILE 5M 2>&1 >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e "s;$TMPFILE;test.img;" >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
# Look at inline extended attribute in resized fs
echo "debugfs -R ''stat file'' test.img 2>&1 | grep ''^Inode\|in inode body\|name = ''" >> $OUT
@@ -34,22 +34,20 @@ rm $TMPFILE $OUT.new
# Do the verification
#
-rm -f $test_name.ok $test_name.failed
cmp -s $OUT $EXP
status=$?
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
- echo "failed"
+ echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
fi
unset IMAGE FSCK_OPT OUT EXP
else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/r_min_itable/expect b/tests/r_min_itable/expect
new file mode 100644
index 00000000..2d8ecb45
--- /dev/null
+++ b/tests/r_min_itable/expect
@@ -0,0 +1,15 @@
+resize2fs test
+resize2fs -M test.img
+Resizing the filesystem on test.img to 1124 (1k) blocks.
+The filesystem on test.img is now 1124 blocks long.
+
+Exit status is 0
+
+fsck -yf -N test_filesys test.img
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 13/512 files (0.0% non-contiguous), 1120/1124 blocks
+Exit status is 0
diff --git a/tests/r_min_itable/image.gz b/tests/r_min_itable/image.gz
new file mode 100644
index 00000000..7c40c566
--- /dev/null
+++ b/tests/r_min_itable/image.gz
Binary files differ
diff --git a/tests/r_min_itable/name b/tests/r_min_itable/name
new file mode 100644
index 00000000..841b0437
--- /dev/null
+++ b/tests/r_min_itable/name
@@ -0,0 +1 @@
+resize2fs -M with inode table in middle of last block group
diff --git a/tests/r_min_itable/script b/tests/r_min_itable/script
new file mode 100644
index 00000000..beb6cf9c
--- /dev/null
+++ b/tests/r_min_itable/script
@@ -0,0 +1,45 @@
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+IMAGE=$test_dir/image.gz
+FSCK_OPT=-yf
+OUT=$test_name.log
+EXP=$test_dir/expect
+
+gunzip < $IMAGE > $TMPFILE
+
+echo "resize2fs test" > $OUT
+
+echo "resize2fs -M test.img" >> $OUT
+$RESIZE2FS -M $TMPFILE 2>&1 >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+
+echo " " >> $OUT.new
+echo fsck $FSCK_OPT -N test_filesys test.img >> $OUT.new
+$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT.new 2>&1
+echo Exit status is $status >> $OUT.new
+
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
+rm $TMPFILE $OUT.new
+
+#
+# Do the verification
+#
+
+cmp -s $OUT $EXP
+status=$?
+
+if [ "$status" = 0 ] ; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ diff $DIFF_OPTS $EXP $OUT > $test_name.failed
+fi
+
+unset IMAGE FSCK_OPT OUT EXP
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
diff --git a/tests/r_move_itable/expect b/tests/r_move_itable/expect
index 195bb114..b4b089bf 100644
--- a/tests/r_move_itable/expect
+++ b/tests/r_move_itable/expect
@@ -13,7 +13,6 @@ Pass 5: Checking group summary information
test_filesys: 11/1248 files (0.0% non-contiguous), 1281/9985 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
@@ -312,7 +311,6 @@ Pass 5: Checking group summary information
test_filesys: 11/2496 files (0.0% non-contiguous), 1644/19969 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
@@ -847,7 +845,6 @@ Pass 5: Checking group summary information
test_filesys: 11/3744 files (0.0% non-contiguous), 2007/29953 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
@@ -1618,7 +1615,6 @@ Pass 5: Checking group summary information
test_filesys: 11/5024 files (0.0% non-contiguous), 2376/40000 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/r_move_itable/script b/tests/r_move_itable/script
index 56a861b0..e5678882 100644
--- a/tests/r_move_itable/script
+++ b/tests/r_move_itable/script
@@ -3,7 +3,7 @@ if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
FSCK_OPT=-yf
OUT=$test_name.log
if [ -f $test_dir/expect.gz ]; then
- EXP=tmp_expect
+ EXP=$test_name.tmp
gunzip < $test_dir/expect.gz > $EXP1
else
EXP=$test_dir/expect
@@ -14,18 +14,17 @@ cp /dev/null $OUT
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -q -F -o Linux -b 1024 -g 256 test.img 1024 > $OUT
-$MKE2FS -q -F -o Linux -b 1024 -g 256 $TMPFILE 1024 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -q -F -o Linux -b 1024 -g 256 $TMPFILE 1024 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
echo resize2fs -p test.img 10000 >> $OUT
-$RESIZE2FS -p $TMPFILE 10000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 10000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
@@ -34,18 +33,18 @@ $DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs -p test.img 20000 >> $OUT
-$RESIZE2FS -p $TMPFILE 20000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 20000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
@@ -54,18 +53,18 @@ $DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs -p test.img 30000 >> $OUT
-$RESIZE2FS -p $TMPFILE 30000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 30000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
@@ -74,18 +73,18 @@ $DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs -p test.img 40000 >> $OUT
-$RESIZE2FS -p $TMPFILE 40000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 40000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
@@ -94,25 +93,24 @@ $DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
-rm -f $test_name.ok $test_name.failed $TMPFILE
+rm -f $TMPFILE
cmp -s $OUT $EXP
status=$?
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
- echo "failed"
+ echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
- rm -f tmp_expect
+ rm -f $test_name.tmp
fi
unset IMAGE FSCK_OPT OUT EXP
else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/r_resize_inode/expect b/tests/r_resize_inode/expect
index f9f79c46..786fe133 100644
--- a/tests/r_resize_inode/expect
+++ b/tests/r_resize_inode/expect
@@ -11,7 +11,6 @@ Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 4513/65536 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
@@ -459,7 +458,6 @@ Pass 5: Checking group summary information
test_filesys: 11/4096 files (0.0% non-contiguous), 2107/16384 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
@@ -614,7 +612,6 @@ Pass 5: Checking group summary information
test_filesys: 11/41472 files (0.0% non-contiguous), 8361/165536 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
diff --git a/tests/r_resize_inode/script b/tests/r_resize_inode/script
index c8db1279..0f121383 100644
--- a/tests/r_resize_inode/script
+++ b/tests/r_resize_inode/script
@@ -3,7 +3,7 @@ if test -x $RESIZE2FS_EXE; then
FSCK_OPT=-yf
OUT=$test_name.log
if [ -f $test_dir/expect.gz ]; then
- EXP=tmp_expect
+ EXP=$test_name.tmp
gunzip < $test_dir/expect.gz > $EXP1
else
EXP=$test_dir/expect
@@ -14,18 +14,17 @@ cp /dev/null $OUT
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -q -F -O resize_inode -o Linux -b 1024 -g 1024 test.img 16384 > $OUT
-$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
echo resize2fs test.img 65536 >> $OUT
-$RESIZE2FS $TMPFILE 65536 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS $TMPFILE 65536 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
@@ -34,25 +33,24 @@ $DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -q -F -O resize_inode -o Linux -b 1024 -g 1024 test.img 65536 >> $OUT
-$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 65536 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 65536 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
echo resize2fs test.img 16384 >> $OUT
-$RESIZE2FS $TMPFILE 16384 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS $TMPFILE 16384 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
@@ -61,18 +59,18 @@ $DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs test.img 165536 >> $OUT
-$RESIZE2FS $TMPFILE 165536 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS $TMPFILE 165536 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
@@ -81,24 +79,23 @@ $DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
-rm -f $test_name.ok $test_name.failed $TMPFILE
+rm -f $TMPFILE
cmp -s $OUT $EXP
status=$?
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
- echo "failed"
+ echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
- rm -f tmp_expect
+ rm -f $test_name.tmp
fi
unset IMAGE FSCK_OPT OUT EXP
else #if test -x $RESIZE2FS; then
- rm -f $test_name.ok $test_name.failed
- echo "skipped"
+ echo "$test_name: $test_description: skipped"
fi
diff --git a/tests/run_e2fsck b/tests/run_e2fsck
index 9202e121..5f28d921 100644
--- a/tests/run_e2fsck
+++ b/tests/run_e2fsck
@@ -1,5 +1,5 @@
if [ "$DESCRIPTION"x != x ]; then
- printf "%s" "$DESCRIPTION: "
+ test_description="$DESCRIPTION"
fi
if [ "$IMAGE"x = x ]; then
IMAGE=$test_dir/image.gz
@@ -23,7 +23,7 @@ fi
if [ "$EXP1"x = x ]; then
if [ -f $test_dir/expect.1.gz ]; then
- EXP1=tmp_expect
+ EXP1=$test_name.1.tmp
gunzip < $test_dir/expect.1.gz > $EXP1
else
EXP1=$test_dir/expect.1
@@ -32,7 +32,7 @@ fi
if [ "$EXP2"x = x ]; then
if [ -f $test_dir/expect.2.gz ]; then
- EXP2=tmp_expect
+ EXP2=$test_name.2.tmp
gunzip < $test_dir/expect.2.gz > $EXP2
else
EXP2=$test_dir/expect.2
@@ -50,25 +50,19 @@ eval $PREP_CMD
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT1.new 2>&1
status=$?
echo Exit status is $status >> $OUT1.new
-sed -e '1d' $OUT1.new | sed -e '/^JFS DEBUG:/d' | \
- sed -e "s;$TMPFILE;test.img;" | tr -d \\015 >> $OUT1
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT1.new >> $OUT1
rm -f $OUT1.new
if [ "$ONE_PASS_ONLY" != "true" ]; then
$FSCK $SECOND_FSCK_OPT -N test_filesys $TMPFILE > $OUT2.new 2>&1
status=$?
echo Exit status is $status >> $OUT2.new
- sed -e '1d' $OUT2.new | sed -e '/^JFS DEBUG:/d' | \
- sed -e "s;$TMPFILE;test.img;" > $OUT2
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT2.new > $OUT2
rm -f $OUT2.new
fi
eval $AFTER_CMD
-if [ "$SKIP_UNLINK" != "true" ] ; then
- rm $TMPFILE
-fi
-
if [ "$SKIP_VERIFY" != "true" ] ; then
rm -f $test_name.ok $test_name.failed
cmp -s $OUT1 $EXP1
@@ -79,13 +73,30 @@ if [ "$SKIP_VERIFY" != "true" ] ; then
else
status2=0
fi
+ if [ "$PASS_ZERO" = "true" ]; then
+ cmp -s $test_name.0.log $test_dir/expect.0
+ status3=$?
+ else
+ status3=0
+ fi
- if [ "$status1" = 0 -a "$status2" = 0 ] ; then
- echo "ok"
+ if [ -z "$test_description" ] ; then
+ description="$test_name"
+ else
+ description="$test_name: $test_description"
+ fi
+
+ if [ "$status1" -eq 0 -a "$status2" -eq 0 -a "$status3" -eq 0 ] ; then
+ echo "$description: ok"
touch $test_name.ok
else
- echo "failed"
- diff $DIFF_OPTS $EXP1 $OUT1 > $test_name.failed
+ echo "$description: failed"
+ rm -f $test_name.failed
+ if [ "$PASS_ZERO" = "true" ]; then
+ diff $DIFF_OPTS $test_dir/expect.0 \
+ $test_name.0.log >> $test_name.failed
+ fi
+ diff $DIFF_OPTS $EXP1 $OUT1 >> $test_name.failed
if [ "$ONE_PASS_ONLY" != "true" ]; then
diff $DIFF_OPTS $EXP2 $OUT2 >> $test_name.failed
fi
@@ -96,6 +107,6 @@ fi
if [ "$SKIP_CLEANUP" != "true" ] ; then
unset IMAGE FSCK_OPT SECOND_FSCK_OPT OUT1 OUT2 EXP1 EXP2
unset SKIP_VERIFY SKIP_CLEANUP SKIP_GUNZIP ONE_PASS_ONLY PREP_CMD
- unset DESCRIPTION SKIP_UNLINK AFTER_CMD
+ unset DESCRIPTION SKIP_UNLINK AFTER_CMD PASS_ZERO
fi
diff --git a/tests/run_mke2fs b/tests/run_mke2fs
index f5249968..82eca41a 100644
--- a/tests/run_mke2fs
+++ b/tests/run_mke2fs
@@ -11,8 +11,11 @@ MKE2FS_SKIP_PROGRESS=true
MKE2FS_SKIP_CHECK_MSG=true
export MKE2FS_SKIP_PROGRESS MKE2FS_SKIP_CHECK_MSG
> $TMPFILE
-PREP_CMD='$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 | sed -e 1d | grep -v "Discarding device blocks" | tr -d \\015 > $OUT1 ; $DEBUGFS -R features $TMPFILE 2>&1 | sed -e 1d | tr -d \\015 >> $OUT1 ; echo " " >> $OUT1'
-AFTER_CMD='$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs | tr -d \\015 >> $OUT1'
+PREP_CMD='$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" > $OUT1;
+ $DEBUGFS -R features $TMPFILE 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT1'
+AFTER_CMD='$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT1'
. $cmd_dir/run_e2fsck
else #if test -x $DEBUGFS_EXE; then
diff --git a/tests/scripts/resize_test b/tests/scripts/resize_test
new file mode 100755
index 00000000..c9a7a1c9
--- /dev/null
+++ b/tests/scripts/resize_test
@@ -0,0 +1,172 @@
+#!/bin/sh
+
+# old distros are missing "truncate", emulate it with "dd"
+truncate()
+{
+ [ "$1" = "-s" ] && size=$2 && shift 2
+
+ dd if=/dev/zero of=$1 bs=1 count=0 seek=$size >> $LOG 2>&1
+}
+
+resize_test () {
+DBG_FLAGS=63
+
+echo $test_description starting > $LOG
+rm -f $TMPFILE
+touch $TMPFILE
+
+# Verify that the $TMP filesystem handles $SIZE_2 sparse files.
+# If that fails, try the local filesystem instead.
+if truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then
+ echo "using $TMPFILE" >> $LOG
+else
+ rm $TMPFILE
+ export TMPFILE=$(TMPDIR=. mktemp -t $test_name.XXXXXX.tmp)
+ touch $TMPFILE
+ echo "using $TMPFILE" >> $LOG
+ if ! truncate -s $SIZE_2 $TMPFILE >> $LOG 2>&1; then
+ rm $TMPFILE
+ return 111
+ fi
+fi
+> $TMPFILE
+
+echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
+$MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
+
+OUT_TMP=$(mktemp -t csum-tmp.XXXXXX)
+
+date > $OUT_TMP
+cat $E2FSCK >> $OUT_TMP
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_1=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_1 >> $LOG
+
+echo Setting up file system >> $LOG
+$DEBUGFS -w $TMPFILE >> $LOG 2>&1 << EOF
+mkdir test
+cd test
+write $OUT_TMP e2fsck
+ls /test
+stat /test/e2fsck
+quit
+EOF
+echo " " >> $LOG
+
+rm -f $OUT_TMP
+
+echo $FSCK -fy $TMPFILE >> $LOG 2>&1
+$FSCK -fy $TMPFILE >> $LOG 2>&1
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+# Uncomment to grab extra debugging image
+#
+#mv $TMPFILE /tmp/foo.img
+#return 0
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+rm $OUT_TMP
+unset OUT_TMP
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+rm $TMPFILE
+return 0
+
+}
diff --git a/tests/t_ext_jnl_rm/script b/tests/t_ext_jnl_rm/script
index d7217b6e..b2af80cf 100644
--- a/tests/t_ext_jnl_rm/script
+++ b/tests/t_ext_jnl_rm/script
@@ -1,4 +1,4 @@
-printf "remove missing external journal device: "
+test_description="remove missing external journal device"
OUT=$test_name.log
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
@@ -17,12 +17,10 @@ echo "tune2fs -f -O ^has_journal $TMPFILE" >> $OUT
$TUNE2FS -f -O ^has_journal $TMPFILE >> $OUT 2>&1
$DUMPE2FS -h $TMPFILE >> $OUT 2>&1
if [ "$(grep 'Journal UUID:' $OUT)" ]; then
- rm -f $test_name.ok
mv $test_name.log $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
else
- echo "ok"
+ echo "$test_name: $test_description: ok"
mv $test_name.log $test_name.ok
- rm -f $test_name.failed
fi
rm -f $TMPFILE
diff --git a/tests/t_mmp_1on/script b/tests/t_mmp_1on/script
index 3b0a3766..8fc8158f 100644
--- a/tests/t_mmp_1on/script
+++ b/tests/t_mmp_1on/script
@@ -1,13 +1,12 @@
FSCK_OPT=-yf
-TMPFILE=test.img
-rm -f $test_name.failed $test_name.ok
+TMPFILE=$test_name.tmp
> $TMPFILE
stat -f $TMPFILE | grep -q "Type: tmpfs"
-if [ $? == 0 ] ; then
+if [ $? = 0 ] ; then
rm -f $TMPFILE
- echo "skipped for tmpfs (no O_DIRECT support)"
+ echo "$test_name: $test_description: skipped for tmpfs (no O_DIRECT)"
return 0
fi
@@ -15,7 +14,7 @@ $MKE2FS -q -F -o Linux -b 4096 $TMPFILE 100 > $test_name.log 2>&1
status=$?
if [ "$status" != 0 ] ; then
echo "mke2fs failed" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
@@ -23,18 +22,18 @@ $TUNE2FS -O mmp -E mmp_update_interval=1 $TMPFILE >> $test_name.log 2>&1
status=$?
if [ "$status" != 0 ] ; then
echo "tune2fs -O mmp failed with $status" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
$FSCK $FSCK_OPT $TMPFILE >> $test_name.log 2>&1
status=$?
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
echo "e2fsck with MMP enabled failed with $status" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
rm -f $TMPFILE
diff --git a/tests/t_mmp_2off/script b/tests/t_mmp_2off/script
index 56c6beda..1dee14ed 100644
--- a/tests/t_mmp_2off/script
+++ b/tests/t_mmp_2off/script
@@ -1,13 +1,12 @@
FSCK_OPT=-yf
-TMPFILE=test.img
-rm -f $test_name.failed $test_name.ok
+TMPFILE=$test_name.tmp
> $TMPFILE
stat -f $TMPFILE | grep -q "Type: tmpfs"
-if [ $? == 0 ]; then
+if [ $? = 0 ]; then
rm -f $TMPFILE
- echo "skipped for tmpfs (no O_DIRECT support)"
+ echo "$test_name: $test_description: skipped for tmpfs (no O_DIRECT)"
return 0
fi
@@ -15,7 +14,7 @@ $MKE2FS -q -F -o Linux -b 4096 -O mmp $TMPFILE 100 > $test_name.log 2>&1
status=$?
if [ "$status" != 0 ] ; then
echo "mke2fs -O mmp failed" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
@@ -23,18 +22,18 @@ $TUNE2FS -O ^mmp $TMPFILE > $test_name.log 2>&1
status=$?
if [ "$status" != 0 ] ; then
echo "tune2fs -O ^mmp failed" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
$FSCK $FSCK_OPT $TMPFILE > $test_name.log 2>&1
status=$?
if [ "$status" = 0 ] ; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
else
echo "e2fsck after MMP disable failed" > $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
return $status
fi
rm -f $TMPFILE
diff --git a/tests/t_quota_1on/name b/tests/t_quota_1on/name
new file mode 100644
index 00000000..f92e2d58
--- /dev/null
+++ b/tests/t_quota_1on/name
@@ -0,0 +1 @@
+enable quota using tune2fs
diff --git a/tests/t_quota_1on/script b/tests/t_quota_1on/script
new file mode 100644
index 00000000..ed17f337
--- /dev/null
+++ b/tests/t_quota_1on/script
@@ -0,0 +1,42 @@
+FSCK_OPT=-yf
+
+if [ "$QUOTA" != "y" ]; then
+ echo "$test_name: $test_description: skipped"
+ return 0
+fi
+
+$MKE2FS -q -F -o Linux -b 4096 $TMPFILE 10000 > $test_name.log 2>&1
+status=$?
+if [ "$status" != 0 ] ; then
+ echo "mke2fs failed" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return $status
+fi
+
+dd if=/dev/zero of=$TMPFILE.2 bs=1048576 count=1 >> $test_name.log 2>&1
+cat <<- EOF | $DEBUGFS -w -f /dev/stdin $TMPFILE >> $test_name.log 2>&1
+ write $TMPFILE.2 file1
+ set_inode_field file1 uid 500
+ set_inode_field file1 gid 500
+EOF
+rm -f $TMPFILE.2
+
+$TUNE2FS -O quota $TMPFILE >> $test_name.log 2>&1
+status=$?
+if [ "$status" != 0 ] ; then
+ echo "tune2fs -O quota failed with $status" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return $status
+fi
+
+$FSCK $FSCK_OPT $TMPFILE >> $test_name.log 2>&1
+status=$?
+if [ "$status" = 0 ] ; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "e2fsck with quota enabled failed with $status" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return $status
+fi
+rm -f $TMPFILE
diff --git a/tests/t_quota_2off/name b/tests/t_quota_2off/name
new file mode 100644
index 00000000..bb0ec98f
--- /dev/null
+++ b/tests/t_quota_2off/name
@@ -0,0 +1 @@
+disable quota using tune2fs
diff --git a/tests/t_quota_2off/script b/tests/t_quota_2off/script
new file mode 100644
index 00000000..b170c59c
--- /dev/null
+++ b/tests/t_quota_2off/script
@@ -0,0 +1,35 @@
+FSCK_OPT=-yf
+
+if [ "$QUOTA" != "y" ]; then
+ echo "$test_name: $test_description: skipped"
+ return 0
+fi
+
+$MKE2FS -q -F -o Linux -b 4096 -O quota $TMPFILE 100 > $test_name.log 2>&1
+status=$?
+if [ "$status" != 0 ] ; then
+ echo "mke2fs -O quota failed" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return $status
+fi
+
+$TUNE2FS -O ^quota $TMPFILE >> $test_name.log 2>&1
+status=$?
+if [ "$status" != 0 ] ; then
+ echo "tune2fs -O ^quota failed" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return $status
+fi
+
+$FSCK $FSCK_OPT $TMPFILE >> $test_name.log 2>&1
+status=$?
+if [ "$status" = 0 ] ; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "e2fsck with quota enabled failed with $status" > $test_name.failed
+ echo "$test_name: $test_description: failed"
+ return $status
+fi
+
+rm -f $TMPFILE
diff --git a/tests/test_config b/tests/test_config
index 7c597664..67896562 100644
--- a/tests/test_config
+++ b/tests/test_config
@@ -19,6 +19,7 @@ RESIZE2FS="$USE_VALGRIND $RESIZE2FS_EXE"
E2UNDO_EXE="../misc/e2undo"
TEST_REL=../tests/progs/test_rel
TEST_ICOUNT=../tests/progs/test_icount
+CRCSUM=../tests/progs/crcsum
LD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss
DYLD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss
export LD_LIBRARY_PATH
@@ -31,4 +32,7 @@ E2FSCK_CONFIG=/dev/null
export E2FSCK_CONFIG
MKE2FS_CONFIG=./mke2fs.conf
export MKE2FS_CONFIG
-
+E2FSPROGS_SKIP_PROGRESS=yes
+export E2FSPROGS_SKIP_PROGRESS
+EXT2FS_NO_MTAB_OK=yes
+export EXT2FS_NO_MTAB_OK
diff --git a/tests/test_one.in b/tests/test_one.in
new file mode 100644
index 00000000..d053fd71
--- /dev/null
+++ b/tests/test_one.in
@@ -0,0 +1,69 @@
+#!/bin/sh
+# run a single regression test
+
+LC_ALL=C
+export LC_ALL
+
+case "$1" in
+ --valgrind)
+ export USE_VALGRIND="valgrind -q --sim-hints=lax-ioctls"
+ shift;
+ ;;
+ --valgrind-leakcheck)
+ export USE_VALGRIND="valgrind --sim-hints=lax-ioctls --leak-check=full --show-reachable=yes --log-file=/tmp/valgrind-%p.log"
+ shift;
+ ;;
+esac
+
+case "$1" in
+ *.failed|*.new|*.ok|*.log|*.tmp) exit 0 ;;
+esac
+
+test_dir=$1
+cmd_dir=$SRCDIR
+
+if test "$TEST_CONFIG"x = x; then
+ TEST_CONFIG=$SRCDIR/test_config
+fi
+
+. $TEST_CONFIG
+
+TMPFILE=$(mktemp -t e2fsprogs-tmp.XXXXXX)
+
+test_name=`echo $test_dir | sed -e 's;.*/;;'`
+if [ -f $test_dir ] ; then
+ exit 0;
+fi
+if [ ! -d $test_dir ] ; then
+ echo "The test '$test_name' does not exist."
+ exit 0;
+fi
+if [ -z "`ls $test_dir`" ]; then
+ exit 0
+fi
+if [ -f $test_dir/name ]; then
+ test_description=`cat $test_dir/name`
+else
+ test_description=
+fi
+
+rm -f $test_name.ok $test_name.failed
+#echo -e -n "$test_name: $test_description:\r"
+
+if [ -f $test_dir/script ]; then
+ . $test_dir/script
+else
+ test_base=`echo $test_name | sed -e 's/_.*//'`
+ default_script=$SRCDIR/defaults/${test_base}_script
+ if [ -f $default_script ]; then
+ . $SRCDIR/defaults/${test_base}_script
+ else
+ echo "$test_name: Missing test script $default_script!"
+ fi
+ [ -f $test_name.failed ] && cat $test_name.failed
+fi
+
+if [ "$SKIP_UNLINK" != "true" ] ; then
+ rm -f $TMPFILE
+fi
+
diff --git a/tests/test_post b/tests/test_post
new file mode 100755
index 00000000..12512663
--- /dev/null
+++ b/tests/test_post
@@ -0,0 +1,17 @@
+#!/bin/sh
+# report stats about test scripts that were run
+
+num_ok=`ls *.ok 2>/dev/null | wc -l`
+num_failed=`ls *.failed 2>/dev/null | wc -l`
+
+echo "$num_ok tests succeeded $num_failed tests failed"
+
+test "$num_failed" -eq 0 && exit 0
+
+echo -n "Tests failed: "
+for fname in $(ls *.failed); do
+ echo -n "${fname%%.failed} "
+done
+echo ""
+
+exit 1
diff --git a/tests/test_script.in b/tests/test_script.in
index b7ac86e3..41ad104b 100644
--- a/tests/test_script.in
+++ b/tests/test_script.in
@@ -1,12 +1,8 @@
#!/bin/sh
+# Run all or specified test scripts
#
-# Test script for e2fsck
-#
-
-LC_ALL=C
-export LC_ALL
-case "$1" in
+case "$1" in
--valgrind)
export USE_VALGRIND="valgrind -q --sim-hints=lax-ioctls"
shift;
@@ -18,72 +14,19 @@ case "$1" in
esac
if test "$1"x = x ; then
- TESTS=`ls -d $SRCDIR/[a-zA-Z]_* | $EGREP -v "\.failed|\.new"`
+ TESTS=`ls -d $SRCDIR/[a-zA-Z]_*`
else
TESTS=
- for i
- do
+ for i; do
case $i in
- *.failed|*.new) continue ;;
[a-zA-Z]) TESTS="$TESTS $SRCDIR/${i}_*" ;;
*) TESTS="$TESTS $SRCDIR/$i" ;;
esac
done
fi
-cmd_dir=$SRCDIR
-
-if test "$TEST_CONFIG"x = x; then
- TEST_CONFIG=$SRCDIR/test_config
-fi
-
-. $TEST_CONFIG
-
-TMPFILE=$(mktemp)
-
-for test_dir in $TESTS
-do
- test_name=`echo $test_dir | sed -e 's;.*/;;'`
- if [ -f $test_dir ] ; then
- continue;
- fi
- if [ ! -d $test_dir ] ; then
- echo "The test '$test_name' does not exist."
- continue;
- fi
- if [ -z "`ls $test_dir`" ]; then
- continue
- fi
- if [ -f $test_dir/name ]; then
- test_description=`cat $test_dir/name`
- printf "%s: %s: " "$test_name" "$test_description"
- else
- printf "%s: " "$test_name"
- fi
- if [ -f $test_dir/script ]; then
- . $test_dir/script
- else
- test_base=`echo $test_name | sed -e 's/_.*//'`
- default_script=$SRCDIR/defaults/${test_base}_script
- if [ -f $default_script ]; then
- . $SRCDIR/defaults/${test_base}_script
- else
- echo "Missing test script!"
- fi
- fi
-done
-
-num_ok=`ls *.ok 2>/dev/null | wc -l`
-num_failed=`ls *.failed 2>/dev/null | wc -l`
-
-echo "$num_ok tests succeeded $num_failed tests failed"
-
-test "$num_failed" -eq 0 && exit 0
-
-echo -n "Tests failed: "
-for fname in $(ls *.failed); do
- echo -n "${fname%%.failed} "
+for test_dir in $TESTS; do
+ ./test_one $test_dir
done
-echo ""
-exit 1
+$SRCDIR/test_post
diff --git a/tests/u_mke2fs/script b/tests/u_mke2fs/script
index ef98899e..fcf5eae9 100644
--- a/tests/u_mke2fs/script
+++ b/tests/u_mke2fs/script
@@ -1,4 +1,4 @@
-printf "e2undo with mke2fs: "
+test_description="e2undo with mke2fs"
if test -x $E2UNDO_EXE; then
E2FSPROGS_UNDO_DIR=/tmp
@@ -24,13 +24,11 @@ new_md5=`md5sum $TMPFILE | cut -d " " -f 1`
echo md5sum after e2undo $new_md5 >> $OUT
if [ $md5 = $new_md5 ]; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
- rm -f $test_name.failed
else
- rm -f $test_name.ok
ln -f $test_name.log $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
fi
rm -f $TDB_FILE $TMPFILE
fi
diff --git a/tests/u_tune2fs/script b/tests/u_tune2fs/script
index 222b95f3..4cc1e0c0 100644
--- a/tests/u_tune2fs/script
+++ b/tests/u_tune2fs/script
@@ -1,4 +1,4 @@
-printf "e2undo with tune2fs: "
+test_description="e2undo with tune2fs"
if test -x $E2UNDO_EXE; then
E2FSPROGS_UNDO_DIR=/tmp
@@ -24,13 +24,11 @@ new_md5=`md5sum $TMPFILE | cut -d " " -f 1`
echo md5sum after e2undo $new_md5 >> $OUT
if [ $md5 = $new_md5 ]; then
- echo "ok"
+ echo "$test_name: $test_description: ok"
touch $test_name.ok
- rm -f $test_name.failed
else
- rm -f $test_name.ok
ln -f $test_name.log $test_name.failed
- echo "failed"
+ echo "$test_name: $test_description: failed"
fi
rm -f $TDB_FILE $TMPFILE
fi
diff --git a/util/Makefile.in b/util/Makefile.in
index 4ad769f6..d235fffc 100644
--- a/util/Makefile.in
+++ b/util/Makefile.in
@@ -16,11 +16,18 @@ SRCS = $(srcdir)/subst.c
.c.o:
$(E) " CC $<"
$(Q) $(BUILD_CC) -c $(BUILD_CFLAGS) $< -o $@
+ $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
-PROGS= subst
+PROGS= subst symlinks
all:: $(PROGS) gen-tarball
+dirpaths.h:
+ $(E) " CREATE dirpaths.h"
+ $(Q) echo "/* fake dirpaths.h for config.h */" > dirpaths.h
+
+subst.o: dirpaths.h
+
subst: subst.o
$(E) " LD $@"
$(Q) $(BUILD_CC) $(BUILD_LDFLAGS) -o subst subst.o
@@ -29,6 +36,10 @@ copy_sparse: copy_sparse.o
$(E) " LD $@"
$(Q) $(BUILD_CC) $(BUILD_LDFLAGS) -o copy_sparse copy_sparse.o
+symlinks: symlinks.o
+ $(E) " LD $@"
+ $(Q) $(BUILD_CC) $(BUILD_LDFLAGS) -o symlinks symlinks.o
+
gen-tarball: $(srcdir)/gen-tarball.in $(top_builddir)/config.status
$(E) " CONFIG.STATUS $@"
$(Q) cd $(top_builddir); CONFIG_FILES=util/gen-tarball ./config.status
@@ -39,9 +50,9 @@ tarballs: gen-tarball
sh gen-tarball all
sh gen-tarball subset
-clean:
+clean::
$(RM) -f $(PROGS) \#* *.s *.o *.a *~ core *.tar.gz gen-tarball \
- copy-sparse
+ copy-sparse dirpaths.h
mostlyclean: clean
@@ -53,4 +64,4 @@ distclean: clean
# Makefile dependencies follow. This must be the last section in
# the Makefile.in file
#
-subst.o: $(srcdir)/subst.c
+subst.o: $(srcdir)/subst.c $(top_builddir)/lib/config.h dirpaths.h
diff --git a/util/all.exclude b/util/all.exclude
index d46b9b76..d7d03b22 100644
--- a/util/all.exclude
+++ b/util/all.exclude
@@ -5,8 +5,7 @@
patches
README.subset
build
-build.profiled
-build.static
+build[^/]*
rpm.log
TODO
powerquest
diff --git a/util/install-symlink.in b/util/install-symlink.in
new file mode 100644
index 00000000..24341b8b
--- /dev/null
+++ b/util/install-symlink.in
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+# install-symlink source destination destdir
+#
+
+SYMLINKS=symlinks
+LN_S="@LN_S@"
+RM="@RM@"
+FORCE_RELATIVE=NO
+FORCE_ABSOLUTE=NO
+
+while echo $1 | grep -q -- ^- ;
+do
+ case $1 in
+ --relative)
+ FORCE_RELATIVE=YES
+ ;;
+ --absolute)
+ FORCE_ABSOLUTE=YES
+ ;;
+ --debian)
+ FORCE_ABSOLUTE=NO
+ FORCE_RELATIVE=NO
+ ;;
+ --symlinks=*)
+ SYMLINKS=$(echo $1 | sed -e 's/--symlinks=//')
+ ;;
+ *)
+ echo "Unknown option $1"
+ exit 1
+ ;;
+ esac
+ shift;
+done
+
+
+FIX_SYMLINK="$SYMLINKS -c"
+
+SRC="$1"
+DEST="$2"
+DESTDIR="$3"
+
+if ! echo $SRC | grep -q ^/ ; then
+ echo $SRC: Source pathname must be absolute
+ exit 1
+fi
+
+if ! echo $DEST | grep -q ^/ ; then
+ echo $DEST: Destination pathname must be absolute
+ exit 1
+fi
+
+if ! test -e "$DESTDIR$SRC" ; then
+ echo $DESTDIR$SRC: file or directory does not exist
+ exit 1
+fi
+
+$RM -f "$DESTDIR$DEST"
+
+if test "$LN_S" != "ln -s" ; then
+ $LN_S "$DESTDIR$SRC" "$DESTDIR$DEST"
+ exit 0
+fi
+
+if test $(dirname "$SRC") = $(dirname "$DEST") ; then
+ $LN_S "$(basename "$SRC")" "$DESTDIR$DEST"
+ exit 0
+fi
+
+TOP_SRC=$(echo $SRC | awk -F/ '{print $2}')
+TOP_DEST=$(echo $DEST | awk -F/ '{print $2}')
+
+if test $FORCE_RELATIVE = YES ; then
+ TOP_SRC=FORCE
+ TOP_DEST=FORCE
+fi
+
+if test $FORCE_ABSOLUTE = YES ; then
+ TOP_SRC=FORCE
+ TOP_DEST=FORCE_ABSOLUTE
+fi
+
+if test $TOP_SRC != $TOP_DEST ; then
+ $LN_S "$SRC" "$DESTDIR$DEST"
+else
+ $LN_S "$DESTDIR$SRC" "$DESTDIR$DEST"
+ $FIX_SYMLINK "$DESTDIR$DEST"
+fi
+
diff --git a/util/subset.exclude b/util/subset.exclude
index e6cce504..b988fa84 100644
--- a/util/subset.exclude
+++ b/util/subset.exclude
@@ -4,8 +4,7 @@
.pc
patches
build
-build.profiled
-build.static
+build[^/]*
rpm.log
TODO
powerquest
diff --git a/util/subst.c b/util/subst.c
index 8544b6da..6a5eab1b 100644
--- a/util/subst.c
+++ b/util/subst.c
@@ -5,6 +5,7 @@
*
*/
+#include "config.h"
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
@@ -13,6 +14,7 @@
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <fcntl.h>
#include <time.h>
#include <utime.h>
@@ -30,7 +32,7 @@ struct subst_entry {
struct subst_entry *next;
};
-struct subst_entry *subst_table = 0;
+static struct subst_entry *subst_table = 0;
static int add_subst(char *name, char *value)
{
@@ -264,21 +266,11 @@ static void parse_config_file(FILE *f)
/*
* Return 0 if the files are different, 1 if the files are the same.
*/
-static int compare_file(const char *outfn, const char *newfn)
+static int compare_file(FILE *old_f, FILE *new_f)
{
- FILE *old_f, *new_f;
char oldbuf[2048], newbuf[2048], *oldcp, *newcp;
int retval;
- old_f = fopen(outfn, "r");
- if (!old_f)
- return 0;
- new_f = fopen(newfn, "r");
- if (!new_f) {
- fclose(old_f);
- return 0;
- }
-
while (1) {
oldcp = fgets(oldbuf, sizeof(oldbuf), old_f);
newcp = fgets(newbuf, sizeof(newbuf), new_f);
@@ -291,8 +283,6 @@ static int compare_file(const char *outfn, const char *newfn)
break;
}
}
- fclose(old_f);
- fclose(new_f);
return retval;
}
@@ -302,12 +292,14 @@ int main(int argc, char **argv)
{
char line[2048];
int c;
- FILE *in, *out;
+ int fd;
+ FILE *in, *out, *old = NULL;
char *outfn = NULL, *newfn = NULL;
int verbose = 0;
int adjust_timestamp = 0;
+ int got_atime = 0;
struct stat stbuf;
- struct utimbuf ut;
+ struct timeval tv[2];
while ((c = getopt (argc, argv, "f:tv")) != EOF) {
switch (c) {
@@ -351,11 +343,34 @@ int main(int argc, char **argv)
}
strcpy(newfn, outfn);
strcat(newfn, ".new");
- out = fopen(newfn, "w");
- if (!out) {
+ fd = open(newfn, O_CREAT|O_TRUNC|O_RDWR, 0444);
+ if (fd < 0) {
perror(newfn);
exit(1);
}
+ out = fdopen(fd, "w+");
+ if (!out) {
+ perror("fdopen");
+ exit(1);
+ }
+
+ fd = open(outfn, O_RDONLY);
+ if (fd > 0) {
+ /* save the original atime, if possible */
+ if (fstat(fd, &stbuf) == 0) {
+#if HAVE_STRUCT_STAT_ST_ATIM
+ tv[0].tv_sec = stbuf.st_atim.tv_sec;
+ tv[0].tv_usec = stbuf.st_atim.tv_nsec / 1000;
+#else
+ tv[0].tv_sec = stbuf.st_atime;
+ tv[0].tv_usec = 0;
+#endif
+ got_atime = 1;
+ }
+ old = fdopen(fd, "r");
+ if (!old)
+ close(fd);
+ }
} else {
out = stdout;
outfn = 0;
@@ -368,32 +383,49 @@ int main(int argc, char **argv)
fputs(line, out);
}
fclose(in);
- fclose(out);
if (outfn) {
- struct stat st;
- if (compare_file(outfn, newfn)) {
+ fflush(out);
+ rewind(out);
+ if (old && compare_file(old, out)) {
if (verbose)
printf("No change, keeping %s.\n", outfn);
if (adjust_timestamp) {
- if (stat(outfn, &stbuf) == 0) {
- if (verbose)
- printf("Updating modtime for %s\n", outfn);
- ut.actime = stbuf.st_atime;
- ut.modtime = time(0);
- if (utime(outfn, &ut) < 0)
- perror("utime");
+ if (verbose)
+ printf("Updating modtime for %s\n", outfn);
+ if (gettimeofday(&tv[1], NULL) < 0) {
+ perror("gettimeofday");
+ exit(1);
}
+ if (got_atime == 0)
+ tv[0] = tv[1];
+ else if (verbose)
+ printf("Using original atime\n");
+#ifdef HAVE_FUTIMES
+ if (futimes(fileno(old), tv) < 0)
+ perror("futimes");
+#else
+ if (utimes(outfn, tv) < 0)
+ perror("utimes");
+#endif
}
- unlink(newfn);
+ fclose(out);
+ if (unlink(newfn) < 0)
+ perror("unlink");
} else {
if (verbose)
printf("Creating or replacing %s.\n", outfn);
- rename(newfn, outfn);
+ fclose(out);
+ if (old)
+ fclose(old);
+ old = NULL;
+ if (rename(newfn, outfn) < 0) {
+ perror("rename");
+ exit(1);
+ }
}
- /* set read-only to alert user it is a generated file */
- if (stat(outfn, &st) == 0)
- chmod(outfn, st.st_mode & ~0222);
}
+ if (old)
+ fclose(old);
return (0);
}
diff --git a/util/subst.conf.in b/util/subst.conf.in
index 0e074d85..64fde7ad 100644
--- a/util/subst.conf.in
+++ b/util/subst.conf.in
@@ -18,3 +18,5 @@ $prefix @prefix@
# Enable the documentation for the journal device mke2fs, tune2fs, and
# e2fsck's man page
JDEV
+# Enable documentation for quota feature in mke2fs
+QUOTA_MAN_COMMENT @QUOTA_MAN_COMMENT@
diff --git a/util/symlinks.c b/util/symlinks.c
new file mode 100644
index 00000000..abb33f8b
--- /dev/null
+++ b/util/symlinks.c
@@ -0,0 +1,387 @@
+#define _FILE_OFFSET_BITS 64
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+
+#include <unistd.h>
+#ifndef _POSIX_SOURCE
+#define _POSIX_SOURCE
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+#include <string.h>
+#include <fcntl.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <time.h>
+#include <stddef.h>
+#include <errno.h>
+
+#ifndef S_ISLNK
+#define S_ISLNK(mode) (((mode) & (_S_IFMT)) == (_S_IFLNK))
+#endif
+
+#ifndef PATH_MAX
+#define PATH_MAX 1024
+#endif
+
+#define progver "%s: scan/change symbolic links - v1.3 - by Mark Lord\n\n"
+static char *progname;
+static int verbose = 0, fix_links = 0, recurse = 0, delete = 0, shorten = 0,
+ testing = 0, single_fs = 1;
+
+/*
+ * tidypath removes excess slashes and "." references from a path string
+ */
+
+static int substr (char *s, char *old, char *new)
+{
+ char *tmp = NULL;
+ int oldlen = strlen(old), newlen = 0;
+
+ if (NULL == strstr(s, old))
+ return 0;
+
+ if (new)
+ newlen = strlen(new);
+
+ if (newlen > oldlen) {
+ if ((tmp = malloc(strlen(s))) == NULL) {
+ fprintf(stderr, "no memory\n");
+ exit (1);
+ }
+ }
+
+ while (NULL != (s = strstr(s, old))) {
+ char *p, *old_s = s;
+
+ if (new) {
+ if (newlen > oldlen)
+ old_s = strcpy(tmp, s);
+ p = new;
+ while (*p)
+ *s++ = *p++;
+ }
+ p = old_s + oldlen;
+ while ((*s++ = *p++));
+ }
+ if (tmp)
+ free(tmp);
+ return 1;
+}
+
+
+static int tidy_path (char *path)
+{
+ int tidied = 0;
+ char *s, *p;
+
+ s = path + strlen(path) - 1;
+ if (s[0] != '/') { /* tmp trailing slash simplifies things */
+ s[1] = '/';
+ s[2] = '\0';
+ }
+ while (substr(path, "/./", "/"))
+ tidied = 1;
+ while (substr(path, "//", "/"))
+ tidied = 1;
+
+ while ((p = strstr(path,"/../")) != NULL) {
+ s = p+3;
+ for (p--; p != path; p--) if (*p == '/') break;
+ if (*p != '/')
+ break;
+ while ((*p++ = *s++));
+ tidied = 1;
+ }
+ if (*path == '\0')
+ strcpy(path,"/");
+ p = path + strlen(path) - 1;
+ if (p != path && *p == '/')
+ *p-- = '\0'; /* remove tmp trailing slash */
+ while (p != path && *p == '/') { /* remove any others */
+ *p-- = '\0';
+ tidied = 1;
+ }
+ while (!strncmp(path,"./",2)) {
+ for (p = path, s = path+2; (*p++ = *s++););
+ tidied = 1;
+ }
+ return tidied;
+}
+
+static int shorten_path (char *path, char *abspath)
+{
+ static char dir[PATH_MAX];
+ int shortened = 0;
+ char *p;
+
+ /* get rid of unnecessary "../dir" sequences */
+ while (abspath && strlen(abspath) > 1 && (p = strstr(path,"../"))) {
+ /* find innermost occurance of "../dir", and save "dir" */
+ int slashes = 2;
+ char *a, *s, *d = dir;
+ while ((s = strstr(p+3, "../"))) {
+ ++slashes;
+ p = s;
+ }
+ s = p+3;
+ *d++ = '/';
+ while (*s && *s != '/')
+ *d++ = *s++;
+ *d++ = '/';
+ *d = '\0';
+ if (!strcmp(dir,"//"))
+ break;
+ /* note: p still points at ../dir */
+ if (*s != '/' || !*++s)
+ break;
+ a = abspath + strlen(abspath) - 1;
+ while (slashes-- > 0) {
+ if (a <= abspath)
+ goto ughh;
+ while (*--a != '/') {
+ if (a <= abspath)
+ goto ughh;
+ }
+ }
+ if (strncmp(dir, a, strlen(dir)))
+ break;
+ while ((*p++ = *s++)); /* delete the ../dir */
+ shortened = 1;
+ }
+ughh:
+ return shortened;
+}
+
+
+static void fix_symlink (char *path, dev_t my_dev)
+{
+ static char lpath[PATH_MAX], new[PATH_MAX], abspath[PATH_MAX];
+ char *p, *np, *lp, *tail, *msg;
+ struct stat stbuf, lstbuf;
+ int c, fix_abs = 0, fix_messy = 0, fix_long = 0;
+
+ if ((c = readlink(path, lpath, sizeof(lpath))) == -1) {
+ perror(path);
+ return;
+ }
+ lpath[c] = '\0'; /* readlink does not null terminate it */
+
+ /* construct the absolute address of the link */
+ abspath[0] = '\0';
+ if (lpath[0] != '/') {
+ strcat(abspath,path);
+ c = strlen(abspath);
+ if ((c > 0) && (abspath[c-1] == '/'))
+ abspath[c-1] = '\0'; /* cut trailing / */
+ if ((p = strrchr(abspath,'/')) != NULL)
+ *p = '\0'; /* cut last component */
+ strcat(abspath,"/");
+ }
+ strcat(abspath,lpath);
+ (void) tidy_path(abspath);
+
+ /* check for various things */
+ if (stat(abspath, &stbuf) == -1) {
+ printf("dangling: %s -> %s\n", path, lpath);
+ if (delete) {
+ if (unlink (path)) {
+ perror(path);
+ } else
+ printf("deleted: %s -> %s\n", path, lpath);
+ }
+ return;
+ }
+
+ if (single_fs)
+ lstat(abspath, &lstbuf); /* if the above didn't fail, then this shouldn't */
+
+ if (single_fs && lstbuf.st_dev != my_dev) {
+ msg = "other_fs:";
+ } else if (lpath[0] == '/') {
+ msg = "absolute:";
+ fix_abs = 1;
+ } else if (verbose) {
+ msg = "relative:";
+ } else
+ msg = NULL;
+ fix_messy = tidy_path(strcpy(new,lpath));
+ if (shorten)
+ fix_long = shorten_path(new, path);
+ if (!fix_abs) {
+ if (fix_messy)
+ msg = "messy: ";
+ else if (fix_long)
+ msg = "lengthy: ";
+ }
+ if (msg != NULL)
+ printf("%s %s -> %s\n", msg, path, lpath);
+ if (!(fix_links || testing) || !(fix_messy || fix_abs || fix_long))
+ return;
+
+ if (fix_abs) {
+ /* convert an absolute link to relative: */
+ /* point tail at first part of lpath that differs from path */
+ /* point p at first part of path that differs from lpath */
+ (void) tidy_path(lpath);
+ tail = lp = lpath;
+ p = path;
+ while (*p && (*p == *lp)) {
+ if (*lp++ == '/') {
+ tail = lp;
+ while (*++p == '/');
+ }
+ }
+
+ /* now create new, with "../"s followed by tail */
+ np = new;
+ while (*p) {
+ if (*p++ == '/') {
+ *np++ = '.';
+ *np++ = '.';
+ *np++ = '/';
+ while (*p == '/') ++p;
+ }
+ }
+ strcpy (np, tail);
+ (void) tidy_path(new);
+ if (shorten) (void) shorten_path(new, path);
+ }
+ shorten_path(new,path);
+ if (!testing) {
+ if (unlink (path)) {
+ perror(path);
+ return;
+ }
+ if (symlink(new, path)) {
+ perror(path);
+ return;
+ }
+ }
+ printf("changed: %s -> %s\n", path, new);
+}
+
+static void dirwalk (char *path, int pathlen, dev_t dev)
+{
+ char *name;
+ DIR *dfd;
+ static struct stat st;
+ static struct dirent *dp;
+
+ if ((dfd = opendir(path)) == NULL) {
+ perror(path);
+ return;
+ }
+
+ name = path + pathlen;
+ if (*(name-1) != '/')
+ *name++ = '/';
+
+ while ((dp = readdir(dfd)) != NULL ) {
+ strcpy(name, dp->d_name);
+ if (strcmp(name, ".") && strcmp(name,"..")) {
+ if (lstat(path, &st) == -1) {
+ perror(path);
+ } else if (st.st_dev == dev) {
+ if (S_ISLNK(st.st_mode)) {
+ fix_symlink (path, dev);
+ } else if (recurse && S_ISDIR(st.st_mode)) {
+ dirwalk(path, strlen(path), dev);
+ }
+ }
+ }
+ }
+ closedir(dfd);
+ path[pathlen] = '\0';
+}
+
+static void usage_error (void)
+{
+ fprintf(stderr, progver, progname);
+ fprintf(stderr, "Usage:\t%s [-cdorstv] LINK|DIR ...\n\n", progname);
+ fprintf(stderr, "Flags:"
+ "\t-c == change absolute/messy links to relative\n"
+ "\t-d == delete dangling links\n"
+ "\t-o == warn about links across file systems\n"
+ "\t-r == recurse into subdirs\n"
+ "\t-s == shorten lengthy links (displayed in output only when -c not specified)\n"
+ "\t-t == show what would be done by -c\n"
+ "\t-v == verbose (show all symlinks)\n\n");
+ exit(1);
+}
+
+int main(int argc, char **argv)
+{
+#if defined (_GNU_SOURCE) && defined (__GLIBC__)
+ static char path[PATH_MAX+2];
+ char* cwd = get_current_dir_name();
+#else
+ static char path[PATH_MAX+2], cwd[PATH_MAX+2];
+#endif
+ int dircount = 0;
+ char c, *p;
+
+ if ((progname = (char *) strrchr(*argv, '/')) == NULL)
+ progname = *argv;
+ else
+ progname++;
+
+#if defined (_GNU_SOURCE) && defined (__GLIBC__)
+ if (NULL == cwd) {
+ fprintf(stderr,"get_current_dir_name() failed\n");
+#else
+ if (NULL == getcwd(cwd,PATH_MAX)) {
+ fprintf(stderr,"getcwd() failed\n");
+#endif
+ exit (1);
+ }
+#if defined (_GNU_SOURCE) && defined (__GLIBC__)
+ cwd = realloc(cwd, strlen(cwd)+2);
+ if (cwd == NULL) {
+ fprintf(stderr, "realloc() failed\n");
+ exit (1);
+ }
+#endif
+ if (!*cwd || cwd[strlen(cwd)-1] != '/')
+ strcat(cwd,"/");
+
+ while (--argc) {
+ p = *++argv;
+ if (*p == '-') {
+ if (*++p == '\0')
+ usage_error();
+ while ((c = *p++)) {
+ if (c == 'c') fix_links = 1;
+ else if (c == 'd') delete = 1;
+ else if (c == 'o') single_fs = 0;
+ else if (c == 'r') recurse = 1;
+ else if (c == 's') shorten = 1;
+ else if (c == 't') testing = 1;
+ else if (c == 'v') verbose = 1;
+ else usage_error();
+ }
+ } else {
+ struct stat st;
+ if (*p == '/')
+ *path = '\0';
+ else
+ strcpy(path,cwd);
+ tidy_path(strcat(path, p));
+ if (lstat(path, &st) == -1)
+ perror(path);
+ else if (S_ISLNK(st.st_mode))
+ fix_symlink(path, st.st_dev);
+ else
+ dirwalk(path, strlen(path), st.st_dev);
+ ++dircount;
+ }
+ }
+ if (dircount == 0)
+ usage_error();
+ exit (0);
+}
diff --git a/version.h b/version.h
index f7ef7b60..89d713bc 100644
--- a/version.h
+++ b/version.h
@@ -7,5 +7,5 @@
* file may be redistributed under the GNU Public License v2.
*/
-#define E2FSPROGS_VERSION "1.42.2"
-#define E2FSPROGS_DATE "27-Mar-2012"
+#define E2FSPROGS_VERSION "1.42.10"
+#define E2FSPROGS_DATE "18-May-2014"
diff --git a/wordwrap.pl b/wordwrap.pl
index 646bbc35..807c6288 100644
--- a/wordwrap.pl
+++ b/wordwrap.pl
@@ -9,8 +9,8 @@ while (<>) {
}
next if (/^$/); # skip blank lines
$linelen = 0;
- split;
- while (defined($word = shift @_)) {
+ @words = split;
+ while (defined($word = shift @words)) {
$word =~ s#\$\(srcdir\)/\.\./version.h#\$\(top_srcdir\)/version.h#;
$word =~ s#\$\(srcdir\)/.\.\/\.\./version.h#\$\(top_srcdir\)/version.h#;
$word =~ s#\$\(srcdir\)/.\.\/et/com_err.h#\$\(top_srcdir\)/lib/et/com_err.h#;