base_ver=`echo $E2FSPROGS_VERSION | \
sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
-pre_vers=`echo $base_ver 0.01 - p | dc`
date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
case $E2FSPROGS_VERSION in
*-WIP|pre-*)
+ pre_vers=`echo $base_ver 0.01 - p | dc`
E2FSPROGS_PKGVER="$pre_vers+${base_ver}_WIP_$date_spec"
;;
*)
-for ac_header in stdlib.h unistd.h stdarg.h stdint.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h signal.h termios.h linux/fd.h linux/major.h sys/disklabel.h sys/ioctl.h sys/mman.h sys/mkdev.h sys/prctl.h sys/queue.h sys/sockio.h sys/socket.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h sys/wait.h sys/resource.h sys/syscall.h net/if_dl.h netinet/in.h utime.h
+
+
+for ac_header in dirent.h errno.h getopt.h malloc.h mntent.h paths.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.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=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
base_ver=`echo $E2FSPROGS_VERSION | \
sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
-pre_vers=`echo $base_ver 0.01 - p | dc`
date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
case $E2FSPROGS_VERSION in
*-WIP|pre-*)
+ pre_vers=`echo $base_ver 0.01 - p | dc`
E2FSPROGS_PKGVER="$pre_vers+${base_ver}_WIP_$date_spec"
;;
*)
else
AC_CHECK_PROGS(BUILD_CC, gcc cc)
fi
-AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h stdint.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h signal.h termios.h linux/fd.h linux/major.h sys/disklabel.h sys/ioctl.h sys/mman.h sys/mkdev.h sys/prctl.h sys/queue.h sys/sockio.h sys/socket.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h sys/wait.h sys/resource.h sys/syscall.h net/if_dl.h netinet/in.h utime.h)
+AC_CHECK_HEADERS(dirent.h errno.h getopt.h malloc.h mntent.h paths.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.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)
AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
[[
#if HAVE_SYS_QUEUE_H
-/*
-URL: svn://svnanon.samba.org/samba/branches/SAMBA_4_0/source/lib/tdb
-Rev: 22080
-Last Changed: 2007-04-03 05:08:18 -0400
+/*
+URL: svn://svnanon.samba.org/samba/branches/SAMBA_4_0/source/lib/tdb/common
+Rev: 23590
+Last Changed Date: 2007-06-22 13:36:10 -0400 (Fri, 22 Jun 2007)
*/
/*
trivial database library - standalone version
#include <stddef.h>
#include <errno.h>
#include <string.h>
+#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
+#endif
#include <sys/time.h>
#include <sys/types.h>
#include <time.h>
#endif
#endif
+typedef int bool;
+
#include "tdb.h"
#ifndef u32
struct tdb_transaction *transaction;
int page_size;
int max_dead_records;
+ bool have_transaction_lock;
};
static int tdb_lock(struct tdb_context *tdb, int list, int ltype);
static int tdb_unlock(struct tdb_context *tdb, int list, int ltype);
static int tdb_brlock(struct tdb_context *tdb, tdb_off_t offset, int rw_type, int lck_type, int probe, size_t len);
+static int tdb_transaction_lock(struct tdb_context *tdb, int ltype);
+static int tdb_transaction_unlock(struct tdb_context *tdb);
static int tdb_brlock_upgrade(struct tdb_context *tdb, tdb_off_t offset, size_t len);
static int tdb_write_lock_record(struct tdb_context *tdb, tdb_off_t off);
static int tdb_write_unlock_record(struct tdb_context *tdb, tdb_off_t off);
struct list_struct *rec);
static void tdb_io_init(struct tdb_context *tdb);
static int tdb_expand(struct tdb_context *tdb, tdb_off_t size);
+static int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off,
+ struct list_struct *rec);
/* file: error.c */
/* file: lock.c */
+#define TDB_MARK_LOCK 0x80000000
+
/* a byte range locking function - return 0 on success
this functions locks/unlocks 1 byte at the specified offset.
/* lock a list in the database. list -1 is the alloc list */
-int tdb_lock(struct tdb_context *tdb, int list, int ltype)
+static int _tdb_lock(struct tdb_context *tdb, int list, int ltype, int op)
{
struct tdb_lock_type *new_lck;
int i;
+ bool mark_lock = ((ltype & TDB_MARK_LOCK) == TDB_MARK_LOCK);
+
+ ltype &= ~TDB_MARK_LOCK;
/* a global lock allows us to avoid per chain locks */
if (tdb->global_lock.count &&
/* Since fcntl locks don't nest, we do a lock for the first one,
and simply bump the count for future ones */
- if (tdb->methods->tdb_brlock(tdb,FREELIST_TOP+4*list,ltype,F_SETLKW,
+ if (!mark_lock &&
+ tdb->methods->tdb_brlock(tdb,FREELIST_TOP+4*list, ltype, op,
0, 1)) {
- TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lock failed on list %d "
- "ltype=%d (%s)\n", list, ltype, strerror(errno)));
return -1;
}
return 0;
}
+/* lock a list in the database. list -1 is the alloc list */
+int tdb_lock(struct tdb_context *tdb, int list, int ltype)
+{
+ int ret;
+ ret = _tdb_lock(tdb, list, ltype, F_SETLKW);
+ if (ret) {
+ TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lock failed on list %d "
+ "ltype=%d (%s)\n", list, ltype, strerror(errno)));
+ }
+ return ret;
+}
+
+/* lock a list in the database. list -1 is the alloc list. non-blocking lock */
+int tdb_lock_nonblock(struct tdb_context *tdb, int list, int ltype)
+{
+ return _tdb_lock(tdb, list, ltype, F_SETLK);
+}
+
+
/* unlock the database: returns void because it's too late for errors. */
/* changed to return int it may be interesting to know there
has been an error --simo */
int ret = -1;
int i;
struct tdb_lock_type *lck = NULL;
+ bool mark_lock = ((ltype & TDB_MARK_LOCK) == TDB_MARK_LOCK);
+
+ ltype &= ~TDB_MARK_LOCK;
/* a global lock allows us to avoid per chain locks */
if (tdb->global_lock.count &&
* anyway.
*/
- ret = tdb->methods->tdb_brlock(tdb, FREELIST_TOP+4*list, F_UNLCK,
- F_SETLKW, 0, 1);
+ if (mark_lock) {
+ ret = 0;
+ } else {
+ ret = tdb->methods->tdb_brlock(tdb, FREELIST_TOP+4*list, F_UNLCK,
+ F_SETLKW, 0, 1);
+ }
tdb->num_locks--;
/*
return ret;
}
+/*
+ get the transaction lock
+ */
+int tdb_transaction_lock(struct tdb_context *tdb, int ltype)
+{
+ if (tdb->have_transaction_lock || tdb->global_lock.count) {
+ return 0;
+ }
+ if (tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, ltype,
+ F_SETLKW, 0, 1) == -1) {
+ TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_lock: failed to get transaction lock\n"));
+ tdb->ecode = TDB_ERR_LOCK;
+ return -1;
+ }
+ tdb->have_transaction_lock = 1;
+ return 0;
+}
+
+/*
+ release the transaction lock
+ */
+int tdb_transaction_unlock(struct tdb_context *tdb)
+{
+ int ret;
+ if (!tdb->have_transaction_lock) {
+ return 0;
+ }
+ ret = tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, F_UNLCK, F_SETLKW, 0, 1);
+ if (ret == 0) {
+ tdb->have_transaction_lock = 0;
+ }
+ return ret;
+}
+
+
/* lock/unlock entire database */
-static int _tdb_lockall(struct tdb_context *tdb, int ltype)
+static int _tdb_lockall(struct tdb_context *tdb, int ltype, int op)
{
+ bool mark_lock = ((ltype & TDB_MARK_LOCK) == TDB_MARK_LOCK);
+
+ ltype &= ~TDB_MARK_LOCK;
+
/* There are no locks on read-only dbs */
if (tdb->read_only || tdb->traverse_read)
return TDB_ERRCODE(TDB_ERR_LOCK, -1);
return TDB_ERRCODE(TDB_ERR_LOCK, -1);
}
- if (tdb->methods->tdb_brlock(tdb, FREELIST_TOP, ltype, F_SETLKW,
+ if (!mark_lock &&
+ tdb->methods->tdb_brlock(tdb, FREELIST_TOP, ltype, op,
0, 4*tdb->header.hash_size)) {
- TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lockall failed (%s)\n", strerror(errno)));
+ if (op == F_SETLKW) {
+ TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lockall failed (%s)\n", strerror(errno)));
+ }
return -1;
}
return 0;
}
+
+
/* unlock entire db */
static int _tdb_unlockall(struct tdb_context *tdb, int ltype)
{
+ bool mark_lock = ((ltype & TDB_MARK_LOCK) == TDB_MARK_LOCK);
+
+ ltype &= ~TDB_MARK_LOCK;
+
/* There are no locks on read-only dbs */
if (tdb->read_only || tdb->traverse_read) {
return TDB_ERRCODE(TDB_ERR_LOCK, -1);
return 0;
}
- if (tdb->methods->tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW,
+ if (!mark_lock &&
+ tdb->methods->tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW,
0, 4*tdb->header.hash_size)) {
TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_unlockall failed (%s)\n", strerror(errno)));
return -1;
/* lock entire database with write lock */
int tdb_lockall(struct tdb_context *tdb)
{
- return _tdb_lockall(tdb, F_WRLCK);
+ return _tdb_lockall(tdb, F_WRLCK, F_SETLKW);
+}
+
+/* lock entire database with write lock - mark only */
+int tdb_lockall_mark(struct tdb_context *tdb)
+{
+ return _tdb_lockall(tdb, F_WRLCK | TDB_MARK_LOCK, F_SETLKW);
+}
+
+/* unlock entire database with write lock - unmark only */
+int tdb_lockall_unmark(struct tdb_context *tdb)
+{
+ return _tdb_unlockall(tdb, F_WRLCK | TDB_MARK_LOCK);
+}
+
+/* lock entire database with write lock - nonblocking varient */
+int tdb_lockall_nonblock(struct tdb_context *tdb)
+{
+ return _tdb_lockall(tdb, F_WRLCK, F_SETLK);
}
/* unlock entire database with write lock */
/* lock entire database with read lock */
int tdb_lockall_read(struct tdb_context *tdb)
{
- return _tdb_lockall(tdb, F_RDLCK);
+ return _tdb_lockall(tdb, F_RDLCK, F_SETLKW);
+}
+
+/* lock entire database with read lock - nonblock varient */
+int tdb_lockall_read_nonblock(struct tdb_context *tdb)
+{
+ return _tdb_lockall(tdb, F_RDLCK, F_SETLK);
}
/* unlock entire database with read lock */
return tdb_lock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK);
}
+/* lock/unlock one hash chain, non-blocking. This is meant to be used
+ to reduce contention - it cannot guarantee how many records will be
+ locked */
+int tdb_chainlock_nonblock(struct tdb_context *tdb, TDB_DATA key)
+{
+ return tdb_lock_nonblock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK);
+}
+
+/* mark a chain as locked without actually locking it. Warning! use with great caution! */
+int tdb_chainlock_mark(struct tdb_context *tdb, TDB_DATA key)
+{
+ return tdb_lock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK | TDB_MARK_LOCK);
+}
+
+/* unmark a chain as locked without actually locking it. Warning! use with great caution! */
+int tdb_chainlock_unmark(struct tdb_context *tdb, TDB_DATA key)
+{
+ return tdb_unlock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK | TDB_MARK_LOCK);
+}
+
int tdb_chainunlock(struct tdb_context *tdb, TDB_DATA key)
{
return tdb_unlock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK);
/*
brlock during a transaction - ignore them
*/
-static int transaction_brlock(struct tdb_context *tdb, tdb_off_t offset,
+static int transaction_brlock(struct tdb_context *tdb, tdb_off_t offset,
int rw_type, int lck_type, int probe, size_t len)
{
return 0;
/* get the transaction write lock. This is a blocking lock. As
discussed with Volker, there are a number of ways we could
make this async, which we will probably do in the future */
- if (tdb_brlock(tdb, TRANSACTION_LOCK, F_WRLCK, F_SETLKW, 0, 1) == -1) {
- TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_start: failed to get transaction lock\n"));
- tdb->ecode = TDB_ERR_LOCK;
+ if (tdb_transaction_lock(tdb, F_WRLCK) == -1) {
SAFE_FREE(tdb->transaction);
return -1;
}
TDB_HASHTABLE_SIZE(tdb)) != 0) {
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_start: failed to prime hash table\n"));
tdb->ecode = TDB_ERR_IO;
+ tdb->methods = tdb->transaction->io_methods;
goto fail;
}
fail:
tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW, 0, 0);
- tdb_brlock(tdb, TRANSACTION_LOCK, F_UNLCK, F_SETLKW, 0, 1);
+ tdb_transaction_unlock(tdb);
SAFE_FREE(tdb->transaction->hash_heads);
SAFE_FREE(tdb->transaction);
return -1;
F_UNLCK,F_SETLKW, 0, 1);
}
tdb->num_locks = 0;
+ tdb->num_lockrecs = 0;
+ SAFE_FREE(tdb->lockrecs);
}
/* restore the normal io methods */
tdb->methods = tdb->transaction->io_methods;
tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW, 0, 0);
- tdb_brlock(tdb, TRANSACTION_LOCK, F_UNLCK, F_SETLKW, 0, 1);
+ tdb_transaction_unlock(tdb);
SAFE_FREE(tdb->transaction->hash_heads);
SAFE_FREE(tdb->transaction);
/* file: freelist.c */
/* read a freelist record and check for simple errors */
-static int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
+static int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
{
if (tdb->methods->tdb_read(tdb, off, rec, sizeof(*rec),DOCONV()) == -1)
return -1;
if (rec->magic == TDB_MAGIC) {
/* this happens when a app is showdown while deleting a record - we should
not completely fail when this happens */
- TDB_LOG((tdb, TDB_DEBUG_WARNING, "rec_free_read non-free magic 0x%x at offset=%d - fixing\n",
+ TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_rec_free_read non-free magic 0x%x at offset=%d - fixing\n",
rec->magic, off));
rec->magic = TDB_FREE_MAGIC;
if (tdb->methods->tdb_write(tdb, off, rec, sizeof(*rec)) == -1)
if (rec->magic != TDB_FREE_MAGIC) {
/* Ensure ecode is set for log fn. */
tdb->ecode = TDB_ERR_CORRUPT;
- TDB_LOG((tdb, TDB_DEBUG_WARNING, "rec_free_read bad magic 0x%x at offset=%d\n",
+ TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_rec_free_read bad magic 0x%x at offset=%d\n",
rec->magic, off));
return TDB_ERRCODE(TDB_ERR_CORRUPT, -1);
}
issues when faced with a slowly increasing record size.
*/
while (rec_ptr) {
- if (rec_free_read(tdb, rec_ptr, rec) == -1) {
+ if (tdb_rec_free_read(tdb, rec_ptr, rec) == -1) {
goto fail;
}
}
if (bestfit.rec_ptr != 0) {
- if (rec_free_read(tdb, bestfit.rec_ptr, rec) == -1) {
+ if (tdb_rec_free_read(tdb, bestfit.rec_ptr, rec) == -1) {
goto fail;
}
goto fail;
}
- if (rec_free_read(tdb, rec_ptr, &rec) == -1) {
+ if (tdb_rec_free_read(tdb, rec_ptr, &rec) == -1) {
goto fail;
}
{
struct tdb_traverse_lock tl = { NULL, 0, 0, F_RDLCK };
int ret;
-
+
/* we need to get a read lock on the transaction lock here to
cope with the lock ordering semantics of solaris10 */
- if (tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, F_RDLCK, F_SETLKW, 0, 1) == -1) {
- TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_traverse_read: failed to get transaction lock\n"));
- tdb->ecode = TDB_ERR_LOCK;
+ if (tdb_transaction_lock(tdb, F_RDLCK)) {
return -1;
}
ret = tdb_traverse_internal(tdb, fn, private_data, &tl);
tdb->traverse_read--;
- tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, F_UNLCK, F_SETLKW, 0, 1);
+ tdb_transaction_unlock(tdb);
return ret;
}
return tdb_traverse_read(tdb, fn, private_data);
}
- if (tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, F_WRLCK, F_SETLKW, 0, 1) == -1) {
- TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_traverse: failed to get transaction lock\n"));
- tdb->ecode = TDB_ERR_LOCK;
+ if (tdb_transaction_lock(tdb, F_WRLCK)) {
return -1;
}
ret = tdb_traverse_internal(tdb, fn, private_data, &tl);
- tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, F_UNLCK, F_SETLKW, 0, 1);
+ tdb_transaction_unlock(tdb);
return ret;
}
tdb->travlocks.off = tdb->travlocks.hash = 0;
tdb->travlocks.lock_rw = F_RDLCK;
+ /* Grab first record: locks chain and returned record. */
if (tdb_next_lock(tdb, &tdb->travlocks, &rec) <= 0)
return tdb_null;
/* now read the key */
key.dsize = rec.key_len;
key.dptr =tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec),key.dsize);
- if (tdb_unlock(tdb, BUCKET(tdb->travlocks.hash), F_WRLCK) != 0)
+
+ /* Unlock the hash chain of the record we just read. */
+ if (tdb_unlock(tdb, tdb->travlocks.hash, tdb->travlocks.lock_rw) != 0)
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_firstkey: error occurred while tdb_unlocking!\n"));
return key;
}
/* Is locked key the old key? If so, traverse will be reliable. */
if (tdb->travlocks.off) {
- if (tdb_lock(tdb,tdb->travlocks.hash,F_WRLCK))
+ if (tdb_lock(tdb,tdb->travlocks.hash,tdb->travlocks.lock_rw))
return tdb_null;
if (tdb_rec_read(tdb, tdb->travlocks.off, &rec) == -1
|| !(k = tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec),
SAFE_FREE(k);
return tdb_null;
}
- if (tdb_unlock(tdb, tdb->travlocks.hash, F_WRLCK) != 0) {
+ if (tdb_unlock(tdb, tdb->travlocks.hash, tdb->travlocks.lock_rw) != 0) {
SAFE_FREE(k);
return tdb_null;
}
if (!tdb->travlocks.off) {
/* No previous element: do normal find, and lock record */
- tdb->travlocks.off = tdb_find_lock_hash(tdb, oldkey, tdb->hash_fn(&oldkey), F_WRLCK, &rec);
+ tdb->travlocks.off = tdb_find_lock_hash(tdb, oldkey, tdb->hash_fn(&oldkey), tdb->travlocks.lock_rw, &rec);
if (!tdb->travlocks.off)
return tdb_null;
tdb->travlocks.hash = BUCKET(rec.full_hash);
key.dptr = tdb_alloc_read(tdb, tdb->travlocks.off+sizeof(rec),
key.dsize);
/* Unlock the chain of this new record */
- if (tdb_unlock(tdb, tdb->travlocks.hash, F_WRLCK) != 0)
+ if (tdb_unlock(tdb, tdb->travlocks.hash, tdb->travlocks.lock_rw) != 0)
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_nextkey: WARNING tdb_unlock failed!\n"));
}
/* Unlock the chain of old record */
- if (tdb_unlock(tdb, BUCKET(oldhash), F_WRLCK) != 0)
+ if (tdb_unlock(tdb, BUCKET(oldhash), tdb->travlocks.lock_rw) != 0)
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_nextkey: WARNING tdb_unlock failed!\n"));
return key;
}
/* file: dump.c */
-static tdb_off_t tdb_dump_record(struct tdb_context *tdb, tdb_off_t offset)
+static tdb_off_t tdb_dump_record(struct tdb_context *tdb, int hash,
+ tdb_off_t offset)
{
struct list_struct rec;
tdb_off_t tailer_ofs, tailer;
return 0;
}
- printf(" rec: offset=0x%08x next=0x%08x rec_len=%d key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n",
- offset, rec.next, rec.rec_len, rec.key_len, rec.data_len, rec.full_hash, rec.magic);
+ printf(" rec: hash=%d offset=0x%08x next=0x%08x rec_len=%d "
+ "key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n",
+ hash, offset, rec.next, rec.rec_len, rec.key_len, rec.data_len,
+ rec.full_hash, rec.magic);
tailer_ofs = offset + sizeof(rec) + rec.rec_len - sizeof(tdb_off_t);
printf("hash=%d\n", i);
while (rec_ptr) {
- rec_ptr = tdb_dump_record(tdb, rec_ptr);
+ rec_ptr = tdb_dump_record(tdb, i, rec_ptr);
}
return tdb_unlock(tdb, i, F_WRLCK);
TDB_DATA tdb_null;
/*
- increment the tdb sequence number if the tdb has been opened using
+ non-blocking increment of the tdb sequence number if the tdb has been opened using
the TDB_SEQNUM flag
*/
-static void tdb_increment_seqnum(struct tdb_context *tdb)
+void tdb_increment_seqnum_nonblock(struct tdb_context *tdb)
{
tdb_off_t seqnum=0;
return;
}
- if (tdb_brlock(tdb, TDB_SEQNUM_OFS, F_WRLCK, F_SETLKW, 1, 1) != 0) {
- return;
- }
-
/* we ignore errors from this, as we have no sane way of
dealing with them.
*/
tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum);
seqnum++;
tdb_ofs_write(tdb, TDB_SEQNUM_OFS, &seqnum);
+}
+
+/*
+ increment the tdb sequence number if the tdb has been opened using
+ the TDB_SEQNUM flag
+*/
+static void tdb_increment_seqnum(struct tdb_context *tdb)
+{
+ if (!(tdb->flags & TDB_SEQNUM)) {
+ return;
+ }
+
+ if (tdb_brlock(tdb, TDB_SEQNUM_OFS, F_WRLCK, F_SETLKW, 1, 1) != 0) {
+ return;
+ }
+
+ tdb_increment_seqnum_nonblock(tdb);
tdb_brlock(tdb, TDB_SEQNUM_OFS, F_UNLCK, F_SETLKW, 1, 1);
}
if (dbuf.dptr == NULL) {
dbuf.dptr = (unsigned char *)malloc(new_dbuf.dsize);
} else {
- dbuf.dptr = (unsigned char *)realloc(dbuf.dptr,
+ unsigned char *new_dptr = (unsigned char *)realloc(dbuf.dptr,
dbuf.dsize + new_dbuf.dsize);
+ if (new_dptr == NULL) {
+ free(dbuf.dptr);
+ }
+ dbuf.dptr = new_dptr;
}
if (dbuf.dptr == NULL) {
return tdb->flags;
}
+
+/*
+ enable sequence number handling on an open tdb
+*/
+void tdb_enable_seqnum(struct tdb_context *tdb)
+{
+ tdb->flags |= TDB_SEQNUM;
+}
+
/* file: open.c */
/* all contexts, to ensure no double-opens (fcntl locks don't nest!) */
#define tdb_dump_all ext2fs_tdb_dump_all
#define tdb_printfreelist ext2fs_tdb_printfreelist
#define tdb_validate_freelist ext2fs_tdb_validate_freelist
-
+#define tdb_chainlock_mark ext2fs_tdb_chainlock_mark
+#define tdb_chainlock_nonblock ext2fs_tdb_chainlock_nonblock
+#define tdb_chainlock_unmark ext2fs_tdb_chainlock_unmark
+#define tdb_enable_seqnum ext2fs_tdb_enable_seqnum
+#define tdb_increment_seqnum_nonblock ext2fs_tdb_increment_seqnum_nonblock
+#define tdb_lock_nonblock ext2fs_tdb_lock_nonblock
+#define tdb_lockall_mark ext2fs_tdb_lockall_mark
+#define tdb_lockall_nonblock ext2fs_tdb_lockall_nonblock
+#define tdb_lockall_read_nonblock ext2fs_tdb_lockall_read_nonblock
+#define tdb_lockall_unmark ext2fs_tdb_lockall_unmark
/* this is the context structure that is returned from a db open */
typedef struct tdb_context TDB_CONTEXT;
int tdb_traverse_read(struct tdb_context *tdb, tdb_traverse_func fn, void *);
int tdb_exists(struct tdb_context *tdb, TDB_DATA key);
int tdb_lockall(struct tdb_context *tdb);
+int tdb_lockall_nonblock(struct tdb_context *tdb);
int tdb_unlockall(struct tdb_context *tdb);
int tdb_lockall_read(struct tdb_context *tdb);
+int tdb_lockall_read_nonblock(struct tdb_context *tdb);
int tdb_unlockall_read(struct tdb_context *tdb);
+int tdb_lockall_mark(struct tdb_context *tdb);
+int tdb_lockall_unmark(struct tdb_context *tdb);
const char *tdb_name(struct tdb_context *tdb);
int tdb_fd(struct tdb_context *tdb);
tdb_log_func tdb_log_fn(struct tdb_context *tdb);
int tdb_hash_size(struct tdb_context *tdb);
size_t tdb_map_size(struct tdb_context *tdb);
int tdb_get_flags(struct tdb_context *tdb);
+void tdb_enable_seqnum(struct tdb_context *tdb);
+void tdb_increment_seqnum_nonblock(struct tdb_context *tdb);
/* Low level locking functions: use with care */
int tdb_chainlock(struct tdb_context *tdb, TDB_DATA key);
+int tdb_chainlock_nonblock(struct tdb_context *tdb, TDB_DATA key);
int tdb_chainunlock(struct tdb_context *tdb, TDB_DATA key);
int tdb_chainlock_read(struct tdb_context *tdb, TDB_DATA key);
int tdb_chainunlock_read(struct tdb_context *tdb, TDB_DATA key);
+int tdb_chainlock_mark(struct tdb_context *tdb, TDB_DATA key);
+int tdb_chainlock_unmark(struct tdb_context *tdb, TDB_DATA key);
/* Debug functions. Not used in production. */
void tdb_dump_all(struct tdb_context *tdb);
#BASE_DIR=/usr/projects/samba/samba-4.0.0tp4/source/lib/tdb
BASE_DIR=/usr/projects/samba/tdb
+rm -rf .pc
+
FILES="error.c lock.c io.c transaction.c freelist.c \
freelistcheck.c traverse.c dump.c tdb.c open.c"
-cp $BASE_DIR/common/tdb_private.h tdb.c
+(cd $BASE_DIR/common; svn info ) > .svninfo
+echo "/*" > tdb.c
+grep ^URL .svninfo >> tdb.c
+grep "^Last Changed Rev" .svninfo | sed -e 's/Last Changed //' >> tdb.c
+grep "^Last Changed Date" .svninfo >> tdb.c
+echo "*/" >> tdb.c
+
+cat $BASE_DIR/common/tdb_private.h >> tdb.c
for i in $FILES; do
if [ `tail -n 1 tdb.c | wc -c` -gt 1 ]; then
printf "\n" >> tdb.c
cp $BASE_DIR/include/tdb.h .
cp $BASE_DIR/tools/tdbtool.c .
+quilt push -a
+
-Index: tdb-sa/tdb.c
+Index: tdbsa/tdb.c
===================================================================
---- tdb-sa.orig/tdb.c 2007-04-04 12:16:26.000000000 -0400
-+++ tdb-sa/tdb.c 2007-04-04 12:16:53.000000000 -0400
-@@ -1,9 +1,9 @@
+--- tdbsa.orig/tdb.c
++++ tdbsa/tdb.c
+@@ -4,11 +4,11 @@ Rev: 23371
+ Last Changed Date: 2007-06-06 20:14:06 -0400 (Wed, 06 Jun 2007)
+ */
/*
- Unix SMB/CIFS implementation.
+ trivial database library - standalone version
Index: tdb/tdb.h
===================================================================
---- tdb.orig/tdb.h 2007-04-04 20:39:26.000000000 -0400
-+++ tdb/tdb.h 2007-04-04 20:40:13.000000000 -0400
-@@ -76,6 +76,51 @@
+--- tdb.orig/tdb.h
++++ tdb/tdb.h
+@@ -76,6 +76,60 @@ typedef struct TDB_DATA {
#endif
#endif
+#define tdb_dump_all ext2fs_tdb_dump_all
+#define tdb_printfreelist ext2fs_tdb_printfreelist
+#define tdb_validate_freelist ext2fs_tdb_validate_freelist
-+
++#define tdb_chainlock_mark ext2fs_tdb_chainlock_mark
++#define tdb_chainlock_nonblock ext2fs_tdb_chainlock_nonblock
++#define tdb_chainlock_unmark ext2fs_tdb_chainlock_unmark
++#define tdb_enable_seqnum ext2fs_tdb_enable_seqnum
++#define tdb_increment_seqnum_nonblock ext2fs_tdb_increment_seqnum_nonblock
++#define tdb_lock_nonblock ext2fs_tdb_lock_nonblock
++#define tdb_lockall_mark ext2fs_tdb_lockall_mark
++#define tdb_lockall_nonblock ext2fs_tdb_lockall_nonblock
++#define tdb_lockall_read_nonblock ext2fs_tdb_lockall_read_nonblock
++#define tdb_lockall_unmark ext2fs_tdb_lockall_unmark
+
/* this is the context structure that is returned from a db open */
typedef struct tdb_context TDB_CONTEXT;
Index: tdb/tdb.c
===================================================================
---- tdb.orig/tdb.c 2007-04-04 20:26:11.000000000 -0400
-+++ tdb/tdb.c 2007-04-04 20:39:58.000000000 -0400
-@@ -24,11 +24,78 @@
+--- tdb.orig/tdb.c
++++ tdb/tdb.c
+@@ -29,11 +29,82 @@ Last Changed Date: 2007-06-22 13:36:10 -
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <stddef.h>
+#include <errno.h>
+#include <string.h>
++#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
++#endif
+#include <sys/time.h>
+#include <sys/types.h>
+#include <time.h>
+#endif
+#endif
+
++typedef int bool;
++
#include "tdb.h"
#ifndef u32
-Index: tdb/tdb.c
+Index: tdbsa/tdb.c
===================================================================
---- tdb.orig/tdb.c 2007-04-04 20:40:06.000000000 -0400
-+++ tdb/tdb.c 2007-04-04 20:40:08.000000000 -0400
-@@ -1423,8 +1423,8 @@
- /*
- brlock during a transaction - ignore them
- */
--int transaction_brlock(struct tdb_context *tdb, tdb_off_t offset,
-- int rw_type, int lck_type, int probe, size_t len)
-+static int transaction_brlock(struct tdb_context *tdb, tdb_off_t offset,
-+ int rw_type, int lck_type, int probe, size_t len)
- {
- return 0;
- }
-@@ -2118,7 +2118,7 @@
+--- tdbsa.orig/tdb.c
++++ tdbsa/tdb.c
+@@ -2254,7 +2254,7 @@ int tdb_transaction_recover(struct tdb_c
/* file: freelist.c */
/* read a freelist record and check for simple errors */
--int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
-+static int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
+-int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
++static int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
{
if (tdb->methods->tdb_read(tdb, off, rec, sizeof(*rec),DOCONV()) == -1)
return -1;
-Index: tdb/tdb.c
+Index: tdbsa/tdb.c
===================================================================
---- tdb.orig/tdb.c 2007-04-04 20:39:58.000000000 -0400
-+++ tdb/tdb.c 2007-04-04 20:40:06.000000000 -0400
-@@ -243,36 +243,36 @@
+--- tdbsa.orig/tdb.c
++++ tdbsa/tdb.c
+@@ -251,39 +251,39 @@ struct tdb_context {
/*
internal prototypes
*/
-int tdb_lock(struct tdb_context *tdb, int list, int ltype);
-int tdb_unlock(struct tdb_context *tdb, int list, int ltype);
-int tdb_brlock(struct tdb_context *tdb, tdb_off_t offset, int rw_type, int lck_type, int probe, size_t len);
+-int tdb_transaction_lock(struct tdb_context *tdb, int ltype);
+-int tdb_transaction_unlock(struct tdb_context *tdb);
-int tdb_brlock_upgrade(struct tdb_context *tdb, tdb_off_t offset, size_t len);
-int tdb_write_lock_record(struct tdb_context *tdb, tdb_off_t off);
-int tdb_write_unlock_record(struct tdb_context *tdb, tdb_off_t off);
+static int tdb_lock(struct tdb_context *tdb, int list, int ltype);
+static int tdb_unlock(struct tdb_context *tdb, int list, int ltype);
+static int tdb_brlock(struct tdb_context *tdb, tdb_off_t offset, int rw_type, int lck_type, int probe, size_t len);
++static int tdb_transaction_lock(struct tdb_context *tdb, int ltype);
++static int tdb_transaction_unlock(struct tdb_context *tdb);
+static int tdb_brlock_upgrade(struct tdb_context *tdb, tdb_off_t offset, size_t len);
+static int tdb_write_lock_record(struct tdb_context *tdb, tdb_off_t off);
+static int tdb_write_unlock_record(struct tdb_context *tdb, tdb_off_t off);
struct list_struct *rec);
-void tdb_io_init(struct tdb_context *tdb);
-int tdb_expand(struct tdb_context *tdb, tdb_off_t size);
+-int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off,
+static void tdb_io_init(struct tdb_context *tdb);
+static int tdb_expand(struct tdb_context *tdb, tdb_off_t size);
++static int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off,
+ struct list_struct *rec);
- /* file: error.c */
-Index: tdb/tdbtool.c
+Index: tdbsa/tdbtool.c
===================================================================
---- tdb.orig/tdbtool.c 2007-04-04 20:39:28.000000000 -0400
-+++ tdb/tdbtool.c 2007-04-04 20:40:10.000000000 -0400
+--- tdbsa.orig/tdbtool.c
++++ tdbsa/tdbtool.c
@@ -21,10 +21,21 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
+#ifdef HAVE_SYS_UN_H
#include <sys/un.h>
+#endif
#ifdef HAVE_SYS_SOCKIO_H
#include <sys/sockio.h>
#endif
THREAD_LOCAL FILE *state_f;
THREAD_LOCAL uint16_t clock_seq;
struct timeval tv;
+ struct flock fl;
unsigned long long clock_reg;
mode_t save_umask;
state_fd = -1;
}
}
+ fl.l_type = F_WRLCK;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 0;
+ fl.l_pid = 0;
if (state_fd >= 0) {
rewind(state_f);
- while (lockf(state_fd, F_LOCK, 0) < 0) {
+ while (fcntl(state_fd, F_SETLKW, &fl) < 0) {
if ((errno == EAGAIN) || (errno == EINTR))
continue;
fclose(state_f);
close(state_fd);
state_fd = -1;
+ break;
}
}
if (state_fd >= 0) {
clock_seq, last.tv_sec, last.tv_usec, adjustment);
fflush(state_f);
rewind(state_f);
- lockf(state_fd, F_ULOCK, 0);
+ fl.l_type = F_UNLCK;
+ fcntl(state_fd, F_SETLK, &fl);
}
*clock_high = clock_reg >> 32;
*/
static int get_uuid_via_daemon(int op, uuid_t out, int *num)
{
-#ifdef USE_UUIDD
+#if defined(USE_UUIDD) && defined(HAVE_SYS_UN_H)
char op_buf[64];
int op_len;
int s;
DUMPE2FS_OBJS= dumpe2fs.o
BADBLOCKS_OBJS= badblocks.o
E2IMAGE_OBJS= e2image.o
-FSCK_OBJS= fsck.o base_device.o
+FSCK_OBJS= fsck.o base_device.o ismounted.o
BLKID_OBJS= blkid.o
FILEFRAG_OBJS= filefrag.o
$(srcdir)/badblocks.c $(srcdir)/fsck.c $(srcdir)/util.c \
$(srcdir)/uuidgen.c $(srcdir)/blkid.c $(srcdir)/logsave.c \
$(srcdir)/filefrag.c $(srcdir)/base_device.c \
- $(srcdir)/../e2fsck/profile.c
+ $(srcdir)/ismounted.c $(srcdir)/../e2fsck/profile.c
LIBS= $(LIBEXT2FS) $(LIBCOM_ERR)
DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR)
@echo " LD $@"
@$(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS)
+tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS)
+ @echo " LD $@"
+ $(CC) -o tst_ismounted $(srcdir)/ismounted.c -DDEBUG $(ALL_CFLAGS) $(LIBCOM_ERR)
+
tune2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/tune2fs.8.in
@echo " SUBST $@"
@$(SUBSTITUTE_UPTIME) $(srcdir)/tune2fs.8.in tune2fs.8
$(FMANPAGES) \
base_device base_device.out mke2fs.static filefrag \
e2initrd_helper partinfo prof_err.[ch] default_profile.c \
- uuidd e2image \#* *.s *.o *.a *~ core
+ uuidd e2image tst_ismounted \#* *.s *.o *.a *~ core
mostlyclean: clean
distclean: clean
logsave.o: $(srcdir)/logsave.c
filefrag.o: $(srcdir)/filefrag.c
base_device.o: $(srcdir)/base_device.c $(srcdir)/fsck.h
+ismounted.o: $(srcdir)/ismounted.c $(top_srcdir)/lib/et/com_err.h
profile.o: $(srcdir)/../e2fsck/profile.c $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/../e2fsck/profile.h prof_err.h
.SH SYNOPSIS
.B fsck
[
-.B \-sAVRTNP
+.B \-sAVRTMNP
]
[
.B \-C
.IR fd ,
in which case the progress bar information will be sent to that file descriptor.
.TP
+.B \-M
+Do not check mounted filesystems and return an exit code of 0
+for mounted filesystems.
+.TP
.B \-N
Don't execute, just show what would be done.
.TP
int noexecute = 0;
int serialize = 0;
int skip_root = 0;
-int like_mount = 0;
+int ignore_mounted = 0;
int notitle = 0;
int parallel_root = 0;
int progress = 0;
break;
}
if (fs) {
- if (!skip_root && !ignore(fs)) {
+ if (!skip_root && !ignore(fs) &&
+ !(ignore_mounted && is_mounted(fs->device))) {
fsck_device(fs, 1);
status |= wait_many(FLAG_WAIT_ALL);
if (status > EXIT_NONDESTRUCT)
not_done_yet++;
continue;
}
+ if (ignore_mounted && is_mounted(fs->device)) {
+ fs->flags |= FLAG_DONE;
+ continue;
+ }
/*
* If a filesystem on a particular device has
* already been spawned, then we need to defer
static void usage(NOARGS)
{
- fputs(_("Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"), stderr);
+ fputs(_("Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"), stderr);
exit(EXIT_USAGE);
}
notitle++;
break;
case 'M':
- like_mount++;
+ ignore_mounted++;
break;
case 'P':
parallel_root++;
if (!fs)
continue;
}
+ if (ignore_mounted && is_mounted(fs->device))
+ continue;
fsck_device(fs, interactive);
if (serialize ||
(max_running && (num_running >= max_running))) {
--- /dev/null
+/*
+ * ismounted.c --- Check to see if the filesystem was mounted
+ *
+ * Copyright (C) 1995,1996,1997,1998,1999,2000,2008 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+#include <stdio.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <fcntl.h>
+#ifdef HAVE_LINUX_FD_H
+#include <linux/fd.h>
+#endif
+#ifdef HAVE_MNTENT_H
+#include <mntent.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+/*
+ * ext2fs_check_if_mounted flags
+ */
+#define MF_MOUNTED 1
+
+#include "et/com_err.h"
+
+static char *skip_over_blank(char *cp)
+{
+ while (*cp && isspace(*cp))
+ cp++;
+ return cp;
+}
+
+static char *skip_over_word(char *cp)
+{
+ while (*cp && !isspace(*cp))
+ cp++;
+ return cp;
+}
+
+static char *parse_word(char **buf)
+{
+ char *word, *next;
+
+ word = *buf;
+ if (*word == 0)
+ return 0;
+
+ word = skip_over_blank(word);
+ next = skip_over_word(word);
+ if (*next)
+ *next++ = 0;
+ *buf = next;
+ return word;
+}
+
+/*
+ * 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
+ * or can't be opened.
+ */
+static errcode_t check_mntent_file(const char *mtab_file, const char *file,
+ int *mount_flags)
+{
+ struct stat st_buf;
+ errcode_t retval = 0;
+ dev_t file_dev=0, file_rdev=0;
+ ino_t file_ino=0;
+ FILE *f;
+ char buf[1024], *device = 0, *mnt_dir = 0, *cp;
+ int fd;
+
+ *mount_flags = 0;
+ if ((f = fopen(mtab_file, "r")) == NULL)
+ return errno;
+
+ if ((f = setmntent (mtab_file, "r")) == NULL)
+ 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 */
+ file_rdev = st_buf.st_rdev;
+#endif /* __GNU__ */
+ } else {
+ file_dev = st_buf.st_dev;
+ file_ino = st_buf.st_ino;
+ }
+ }
+ while (1) {
+ if (!fgets(buf, sizeof(buf), f)) {
+ device = mnt_dir = 0;
+ break;
+ }
+ buf[sizeof(buf)-1] = 0;
+
+ cp = buf;
+ device = parse_word(&cp);
+ if (!device || *device == '#')
+ return 0; /* Ignore blank lines and comments */
+ mnt_dir = parse_word(&cp);
+
+ if (device[0] != '/')
+ continue;
+
+ if (strcmp(file, device) == 0)
+ break;
+ if (stat(device, &st_buf) == 0) {
+ if (S_ISBLK(st_buf.st_mode)) {
+#ifndef __GNU__
+ if (file_rdev && (file_rdev == st_buf.st_rdev))
+ break;
+#endif /* __GNU__ */
+ } else {
+ if (file_dev && ((file_dev == st_buf.st_dev) &&
+ (file_ino == st_buf.st_ino)))
+ break;
+ }
+ }
+ }
+
+ if (mnt_dir == 0) {
+#ifndef __GNU__ /* The GNU hurd is broken with respect to stat devices */
+ /*
+ * Do an extra check to see if this is the root device. We
+ * can't trust /etc/mtab, and /proc/mounts will only list
+ * /dev/root for the root filesystem. Argh. Instead we
+ * check if the given device has the same major/minor number
+ * as the device that the root directory is on.
+ */
+ if (file_rdev && (stat("/", &st_buf) == 0) &&
+ (st_buf.st_dev == file_rdev))
+ *mount_flags = MF_MOUNTED;
+#endif /* __GNU__ */
+ goto errout;
+ }
+#ifndef __GNU__ /* The GNU hurd is deficient; what else is new? */
+ /* Validate the entry in case /etc/mtab is out of date */
+ /*
+ * We need to be paranoid, because some broken distributions
+ * (read: Slackware) don't initialize /etc/mtab before checking
+ * all of the non-root filesystems on the disk.
+ */
+ if (stat(mnt_dir, &st_buf) < 0) {
+ retval = errno;
+ if (retval == ENOENT) {
+#ifdef DEBUG
+ printf("Bogus entry in %s! (%s does not exist)\n",
+ mtab_file, mnt_dir);
+#endif /* DEBUG */
+ retval = 0;
+ }
+ goto errout;
+ }
+ if (file_rdev && (st_buf.st_dev != file_rdev)) {
+#ifdef DEBUG
+ printf("Bogus entry in %s! (%s not mounted on %s)\n",
+ mtab_file, file, mnt_dir);
+#endif /* DEBUG */
+ goto errout;
+ }
+#endif /* __GNU__ */
+ *mount_flags = MF_MOUNTED;
+
+ retval = 0;
+errout:
+ endmntent (f);
+ return retval;
+}
+
+int is_mounted(const char *file)
+{
+ errcode_t retval;
+ int mount_flags = 0;
+
+#ifdef __linux__
+ retval = check_mntent_file("/proc/mounts", file, &mount_flags);
+ if (retval)
+ return 0;
+ if (mount_flags)
+ return 1;
+#endif /* __linux__ */
+ retval = check_mntent_file("/etc/mtab", file, &mount_flags);
+ if (retval)
+ return 0;
+ return (mount_flags);
+}
+
+#ifdef DEBUG
+int main(int argc, char **argv)
+{
+ if (argc < 2) {
+ fprintf(stderr, "Usage: %s device\n", argv[0]);
+ exit(1);
+ }
+
+ if (is_mounted(argv[1]))
+ printf("\t%s is mounted.\n", argv[1]);
+ exit(0);
+}
+#endif /* DEBUG */
#include <sys/un.h>
#include <fcntl.h>
#include <signal.h>
+#include <string.h>
#ifdef HAVE_GETOPT_H
#include <getopt.h>
#else
exit(0);
}
-static void server_loop(const char *socket_path, int debug,
- int fd_pidfile, int timeout, int quiet)
+static int call_daemon(const char *socket_path, int op, char *buf,
+ int buflen, int *num, const char **err_context)
+{
+ char op_buf[8];
+ int op_len;
+ int s;
+ ssize_t ret;
+ int32_t reply_len = 0;
+ struct sockaddr_un srv_addr;
+
+ if (((op == 4) || (op == 5)) && !num) {
+ if (err_context)
+ *err_context = _("bad arguments");
+ errno = EINVAL;
+ return -1;
+ }
+
+ if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
+ if (err_context)
+ *err_context = _("socket");
+ return -1;
+ }
+
+ srv_addr.sun_family = AF_UNIX;
+ strcpy(srv_addr.sun_path, socket_path);
+
+ if (connect(s, (const struct sockaddr *) &srv_addr,
+ sizeof(struct sockaddr_un)) < 0) {
+ if (err_context)
+ *err_context = _("connect");
+ close(s);
+ return -1;
+ }
+
+ if (op == 5) {
+ if ((*num)*16 > buflen-4)
+ *num = (buflen-4) / 16;
+ }
+ op_buf[0] = op;
+ op_len = 1;
+ if ((op == 4) || (op == 5)) {
+ memcpy(op_buf+1, num, sizeof(int));
+ op_len += sizeof(int);
+ }
+
+ ret = write(s, op_buf, op_len);
+ if (ret < op_len) {
+ if (err_context)
+ *err_context = _("write");
+ close(s);
+ return -1;
+ }
+
+ ret = read_all(s, (char *) &reply_len, sizeof(reply_len));
+ if (ret < 0) {
+ if (err_context)
+ *err_context = _("read count");
+ close(s);
+ return -1;
+ }
+ if (reply_len < 0 || reply_len > buflen) {
+ if (err_context)
+ *err_context = _("bad response length");
+ close(s);
+ return -1;
+ }
+ ret = read_all(s, (char *) buf, reply_len);
+
+ if ((ret > 0) && (op == 4)) {
+ if (reply_len >= (int) (16+sizeof(int)))
+ memcpy(buf+16, num, sizeof(int));
+ else
+ *num = -1;
+ }
+ if ((ret > 0) && (op == 5)) {
+ if (*num >= (int) sizeof(int))
+ memcpy(buf, num, sizeof(int));
+ else
+ *num = -1;
+ }
+
+ close(s);
+
+ return ret;
+}
+
+static void server_loop(const char *socket_path, const char *pidfile_path,
+ int debug, int timeout, int quiet)
{
struct sockaddr_un my_addr, from_addr;
unsigned char reply_buf[1024], *cp;
+ struct flock fl;
socklen_t fromlen;
int32_t reply_len = 0;
uuid_t uu;
mode_t save_umask;
char op, str[37];
int i, s, ns, len, num;
+ int fd_pidfile, ret;
+
+ fd_pidfile = open(pidfile_path, O_CREAT | O_RDWR, 0664);
+ if (fd_pidfile < 0) {
+ if (!quiet)
+ fprintf(stderr, "Failed to open/create %s: %s\n",
+ pidfile_path, strerror(errno));
+ exit(1);
+ }
+ cleanup_pidfile = pidfile_path;
+ cleanup_socket = 0;
+ signal(SIGALRM, terminate_intr);
+ alarm(30);
+ fl.l_type = F_WRLCK;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 0;
+ fl.l_pid = 0;
+ while (fcntl(fd_pidfile, F_SETLKW, &fl) < 0) {
+ if ((errno == EAGAIN) || (errno == EINTR))
+ continue;
+ if (!quiet)
+ fprintf(stderr, "Failed to lock %s: %s\n",
+ pidfile_path, strerror(errno));
+ exit(1);
+ }
+ ret = call_daemon(socket_path, 0, reply_buf, sizeof(reply_buf), 0, 0);
+ if (ret > 0) {
+ if (!quiet)
+ printf(_("uuidd daemon already running at pid %s\n"),
+ reply_buf);
+ exit(1);
+ }
+ alarm(0);
if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
if (!quiet)
exit(1);
}
- if (fd_pidfile > 1)
- close(fd_pidfile); /* Unlock the pid file */
cleanup_socket = socket_path;
if (!debug)
create_daemon();
signal(SIGALRM, terminate_intr);
signal(SIGPIPE, SIG_IGN);
+ sprintf(reply_buf, "%d\n", getpid());
+ ftruncate(fd_pidfile, 0);
+ write(fd_pidfile, reply_buf, strlen(reply_buf));
+ if (fd_pidfile > 1)
+ close(fd_pidfile); /* Unlock the pid file */
+
while (1) {
fromlen = sizeof(from_addr);
if (timeout > 0)
}
}
-static int call_daemon(const char *socket_path, int op, char *buf,
- int buflen, int *num, const char **err_context)
-{
- char op_buf[8];
- int op_len;
- int s;
- ssize_t ret;
- int32_t reply_len = 0;
- struct sockaddr_un srv_addr;
-
- if (((op == 4) || (op == 5)) && !num) {
- if (err_context)
- *err_context = _("bad arguments");
- errno = EINVAL;
- return -1;
- }
-
- if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
- if (err_context)
- *err_context = _("socket");
- return -1;
- }
-
- srv_addr.sun_family = AF_UNIX;
- strcpy(srv_addr.sun_path, socket_path);
-
- if (connect(s, (const struct sockaddr *) &srv_addr,
- sizeof(struct sockaddr_un)) < 0) {
- if (err_context)
- *err_context = _("connect");
- close(s);
- return -1;
- }
-
- if (op == 5) {
- if ((*num)*16 > buflen-4)
- *num = (buflen-4) / 16;
- }
- op_buf[0] = op;
- op_len = 1;
- if ((op == 4) || (op == 5)) {
- memcpy(op_buf+1, num, sizeof(int));
- op_len += sizeof(int);
- }
-
- ret = write(s, op_buf, op_len);
- if (ret < op_len) {
- if (err_context)
- *err_context = _("write");
- close(s);
- return -1;
- }
-
- ret = read_all(s, (char *) &reply_len, sizeof(reply_len));
- if (ret < 0) {
- if (err_context)
- *err_context = _("read count");
- close(s);
- return -1;
- }
- if (reply_len < 0 || reply_len > buflen) {
- if (err_context)
- *err_context = _("bad response length");
- close(s);
- return -1;
- }
- ret = read_all(s, (char *) buf, reply_len);
-
- if ((ret > 0) && (op == 4)) {
- if (reply_len >= (int) (16+sizeof(int)))
- memcpy(buf+16, num, sizeof(int));
- else
- *num = -1;
- }
- if ((ret > 0) && (op == 5)) {
- if (*num >= (int) sizeof(int))
- memcpy(buf, num, sizeof(int));
- else
- *num = -1;
- }
-
- close(s);
-
- return ret;
-}
-
-static int create_pidfile(const char *socket_path, const char *pidfile_path,
- int quiet)
-{
- int fd, ret;
- char buf[20];
-
- fd = open(pidfile_path, O_CREAT | O_RDWR, 0664);
- if (fd < 0) {
- if (!quiet)
- fprintf(stderr, "Failed to open/create %s: %s\n",
- pidfile_path, strerror(errno));
- exit(1);
- }
- cleanup_pidfile = pidfile_path;
- cleanup_socket = 0;
- signal(SIGALRM, terminate_intr);
- alarm(30);
- if (lockf(fd, F_LOCK, 0) < 0) {
- if (!quiet)
- fprintf(stderr, "Failed to lock %s: %s\n",
- pidfile_path, strerror(errno));
- exit(1);
- }
- ret = call_daemon(socket_path, 0, buf, sizeof(buf), 0, 0);
- if (ret > 0) {
- if (!quiet)
- printf(_("uuidd daemon already running at pid %s\n"),
- buf);
- exit(1);
- }
- alarm(0);
-
- sprintf(buf, "%d\n", getpid());
- ftruncate(fd, 0);
- write(fd, buf, strlen(buf));
- return(fd);
-}
-
int main(int argc, char **argv)
{
const char *socket_path = UUIDD_SOCKET_PATH;
uuid_t uu;
uid_t uid;
gid_t gid;
- int i, c, ret, fd_pidfile = -1;
+ int i, c, ret;
int debug = 0, do_type = 0, do_kill = 0, num = 0;
int timeout = 0, quiet = 0, drop_privs = 0;
exit(0);
}
- fd_pidfile = create_pidfile(socket_path, pidfile_path, quiet);
-
- server_loop(socket_path, debug, fd_pidfile, timeout, quiet);
+ server_loop(socket_path, pidfile_path, debug, timeout, quiet);
return 0;
}
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.40.4\n"
+"Project-Id-Version: e2fsprogs 1.40.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
"POT-Creation-Date: 2008-02-09 23:16-0500\n"
-"PO-Revision-Date: 2008-01-04 18:58+0100\n"
+"PO-Revision-Date: 2008-02-12 13:44+0100\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
#: e2fsck/badblocks.c:129
#, 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:53
#, c-format
#: e2fsck/problem.c:212
msgid ""
"Ext3 @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"Superblok žurnálu ext3 má neznámý typ %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: Ext3 journal superblock is corrupt.\n
#. @-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 ""
-"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: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
#: e2fsck/problem.c:255
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
#: e2fsck/problem.c:280 e2fsck/problem.c:613
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: Ext3 journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:285
msgid "Ext3 @j @S has an unknown read-only feature flag set.\n"
-msgstr ""
-"Superblok žurnálu ext3 má nastaven příznak neznámé vlastnosti jen pro "
-"čtení.\n"
+msgstr "Superblok žurnálu ext3 má nastaven příznak neznámé vlastnosti jen pro čtení.\n"
#. @-expanded: Ext3 journal superblock has an unknown incompatible feature flag set.\n
#: e2fsck/problem.c:290
msgid "Ext3 @j @S has an unknown incompatible feature flag set.\n"
-msgstr ""
-"Superblok žurnálu ext3 má nastaven příznak neznámé nekompatibilní "
-"vlastnosti.\n"
+msgstr "Superblok žurnálu ext3 má nastaven příznak neznámé nekompatibilní vlastnosti.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
#: e2fsck/problem.c:295
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:392
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:397
msgid "@g %g's @i @B at %b @C.\n"
-msgstr ""
-"Bitmapa inode skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr "Bitmapa inode 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:402
msgid "@g %g's @i table at %b @C.\n"
-msgstr ""
-"Tabulka inode skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr "Tabulka inode 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:407
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:490
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:496
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:501
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:507
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:513
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:578
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 (inode=%i, blok=%b, čís=%N): %"
-"m\n"
+msgstr "Chyba při ukládání informace o bloku adresáře (inode=%i, blok=%b, čís=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
#: e2fsck/problem.c:584
"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 (inode %i) má "
-"nastaven\n"
+"Speciální (zařízení/socket/fifo/symbolický odkaz) soubor (inode %i) má nastaven\n"
"příznak immutable nebo append-only. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
#: e2fsck/problem.c:603
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr ""
-"Inode %i má nastaven příznak komprimace na systému souborů bez podpory "
-"komprimace. "
+msgstr "Inode %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:608
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
#: e2fsck/problem.c:634
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr ""
-"Nalezeny inode, které byly součástí poškozeného spojového seznamu osiřelých. "
+msgstr "Nalezeny inode, které byly součástí poškozeného spojového seznamu osiřelých. "
#. @-expanded: error allocating refcount structure (%N): %m\n
#: e2fsck/problem.c:639
#: e2fsck/problem.c:713
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr ""
-"Inode %i má nastaven příznak INDEX_FL na systému souborů bez podpory htree.\n"
+msgstr "Inode %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:718
#: e2fsck/problem.c:733
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr ""
-"Inode HTREE adresáře %i používá nekompatibilní příznak kořenového uzlu "
-"htree.\n"
+msgstr "Inode 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:738
msgid "@h %i has a tree depth (%N) which is too big\n"
-msgstr ""
-"Inode HTREE adresáře %i má hloubku stromu (%N), která je příliš velká\n"
+msgstr "Inode 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.
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
#: e2fsck/problem.c:764
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 value offset (%N) which is invalid\n
#: e2fsck/problem.c:769
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:774
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 hash (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:779
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"
+msgstr "Rozšířený atribut v iuzlu %i má hash (%N), který není platný (musí být 0)\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
#: e2fsck/problem.c:784
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:827 e2fsck/problem.c:1143
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:833
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
#: e2fsck/problem.c:909
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr ""
-"Položka „%Dn“ v %p (%i) ukazuje na inode (%Di) umístěnou ve špatném bloku.\n"
+msgstr "Položka „%Dn“ v %p (%i) ukazuje na inode (%Di) umístěnou ve špatném bloku.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
#: e2fsck/problem.c:914
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
#: e2fsck/problem.c:939
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr ""
-"První položka „%Dn“ (inode=%Di) v iuzlu adresáře %i (%p) by měla být „.“\n"
+msgstr "První položka „%Dn“ (inode=%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:944
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1109
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: node (%B) not referenced\n
#: e2fsck/problem.c:1114
#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
#: e2fsck/problem.c:1163
msgid "@p @h %d: node (%B) has an unordered hash table\n"
-msgstr ""
-"Problém v inode HTREE adresáře %d: uzel (%B) má nesetříděnou hash tabulku\n"
+msgstr "Problém v inode HTREE adresáře %d: uzel (%B) má nesetříděnou hash tabulku\n"
#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth\n
#: e2fsck/problem.c:1168
#: e2fsck/problem.c:1255
#, 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:1260
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1458
-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"
+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:1464
msgid "Internal error: fudging end of bitmap (%N)\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"
" -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:86
#, c-format
#: e2fsck/unix.c:552
#, c-format
msgid "Unknown extended option: %s\n"
-msgstr "Neznamý rozšířený přepínač: %s\n"
+msgstr "Neznámý rozšířený přepínač: %s\n"
#: e2fsck/unix.c:572
#, c-format
#: e2fsck/unix.c:1110
#, c-format
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
msgstr ""
"Varování: přeskakuji obnovu žurnálu, protože provádím kontrolu systému\n"
"souborů jen pro čtení.\n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern "
-"[...]]]\n"
+" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [start_block]]\n"
msgstr ""
"Použití: %s [-b velikost_bloku] [-i vstupní_soubor] [-o výstupní_soubor]\n"
#: misc/fsck.c:872
#, 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"
msgstr "--čekám-- (průchod %d)\n"
#: misc/fsck.c:1061
-msgid ""
-"Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Použití: fsck [-ANPRTV] [-C [fd]] [-t typss] [přepínače-ss] "
-"[systémsouborů…]\n"
+msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Použití: fsck [-ANPRTV] [-C [fd]] [-t typss] [přepínače-ss] [systémsouborů…]\n"
#: misc/fsck.c:1103
#, c-format
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]] [-qvSV]\n"
"\tdevice [blocks-count]\n"
msgstr ""
-"Použití: %s [-c|-t|-l názevsouboru] [-b velikost-bloku] [-f velkost-"
-"fragmentu]\n"
+"Použití: %s [-c|-t|-l názevsouboru] [-b velikost-bloku] [-f velkost-fragmentu]\n"
"\t[-i bajtů-na-iuzel] [-I velikost-iuzlu] [-j] [-J přepínače-žurnálu]\n"
"\t[-N počet-iuzlů] [-m procenta-rezervovaných-bloků] [-o tvořící-os]\n"
-"\t[-g bloků-ve-skupině] [-L jmenovka-svazku] [-M adresář-posledního-"
-"připojení]\n"
-"\t[-O vlastnost[,…]] [-r revize-ss] [-E rozšířené-přepínače[,…]] [-qvSV]\n"
-"\tzařízení [počet-bloků]\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če[,…]] [-qvSV] zařízení [počet-bloků]\n"
#: misc/mke2fs.c:197
#, c-format
#: misc/mke2fs.c:689
#, c-format
msgid "%u blocks (%2.2f%%) reserved for the super user\n"
-msgstr "%u bloků (%2.2f%%) rezervováno pro superuživatele\n"
+msgstr "%u bloků (%2.2f %%) rezervováno pro superuživatele\n"
#: misc/mke2fs.c:692
#, c-format
#: misc/mke2fs.c:704
#, c-format
msgid "%u inodes per group\n"
-msgstr "%u inode ve skupině\n"
+msgstr "%u iuzlů ve skupině\n"
#: misc/mke2fs.c:711
#, c-format
msgstr "Revize 0 souborového systému nepodporuje změnu velikosti za běhu\n"
#: misc/mke2fs.c:858
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"Platné přepínače jsou:\n"
"\tstride=<délka kroku (stride) v blocích>\n"
"\tresize=<maximální velikost změny velikosti v blocích>\n"
-"\n"
+"\ttest_fs\n"
#: misc/mke2fs.c:888
#, c-format
#: misc/mke2fs.c:1197
#, 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:1211
#, c-format
#: misc/mke2fs.c:1215
#, 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:1233
msgid "filesystem"
msgstr "Spusťte prosím na tomto systému souborů e2fsck.\n"
#: misc/tune2fs.c:96
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options]\n"
"\t[-o [^]přepínače_připojení[,…]] [-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[-T čas_poslední_kontroly] [-U UUID] zařízení\n"
+"\t[-E rozšířený-přepínač[,…]] [-T čas_poslední_kontroly] [-U UUID] zařízení\n"
#: misc/tune2fs.c:153
msgid "while trying to open external journal"
msgstr "špatné uid/jméno uživatele - %s"
#: misc/tune2fs.c:804
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"Rozšířené přepínače jsou odděleny čárkami a mohou mít argument, který je\n"
"\toddělen znaménkem rovná se („=“).\n"
"\n"
-"Platné přepínače jsou:\n"
-"\tstride=<délka kroku (stride) v blocích>\n"
-"\tresize=<maximální velikost změny velikosti v blocích>\n"
-"\n"
+"Platné rozšířené přepínače jsou:\n"
+"\ttest_fs\n"
+"\t^test_fs\n"
#: misc/tune2fs.c:862
-#, fuzzy, c-format
+#, c-format
msgid "Filesystem %s has unsupported features enabled.\n"
-msgstr "Vlastnosti systému souborů nejsou v revizi 0 podporovány\n"
+msgstr "Systém souborů %s má zapnuté nepodporované vlastnosti.\n"
#: misc/tune2fs.c:886
#, c-format
#: resize/resize2fs.c:1534
#, c-format
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"
#~ msgid "Clone duplicate/bad blocks"
#~ msgstr "Klonovat duplikátní/špatné bloky"
#~ 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 ""
#~ "\n"
#~ msgid "Usage: findsuper device [skipbytes [startkb]]\n"
#~ msgstr "Použití: findsuper zařízení [přeskakovatbajtů [startkb]]\n"
-#, fuzzy
#~ msgid "skipbytes should be a number, not %s\n"
-#~ msgstr "startkb by mělo být číslo, ne %s\n"
+#~ msgstr "přeskakovatbajtů by mělo být číslo, ne %s\n"
#~ msgid "skipbytes must be a multiple of the sector size\n"
#~ msgstr "přeskakovatbajtů musí být násobek velikosti sektoru\n"
-# Translation of e2fsprogs-1.40.3 to Dutch.
-# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
-# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007.
+# Dutch translations for e2fsprogs.
+# Copyright (C) 2008 Theodore Tso (msgids)
+# This file is distributed under the same license as the e2fsprogs package.
+# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008.
#
#. 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,
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.40.3\n"
+"Project-Id-Version: e2fsprogs-1.40.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
"POT-Creation-Date: 2008-02-09 23:16-0500\n"
-"PO-Revision-Date: 2007-12-11 16:54+0100\n"
+"PO-Revision-Date: 2008-02-13 12:15+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"MIME-Version: 1.0\n"
#: e2fsck/badblocks.c:129
#, 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:53
#, c-format
#: e2fsck/flushb.c:63
#, 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:46
#, c-format
#: e2fsck/problem.c:212
msgid ""
"Ext3 @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"Superblok van ext3-journal is van onbekend en niet-ondersteund type %N.\n"
-"Waarschijnlijk gebruikt u een ouder e2fsck-programma dat deze journal-"
-"indeling\n"
-"niet ondersteunt. Het kan ook zijn dat het journal-superblok beschadigd "
-"is.\n"
+"Waarschijnlijk 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: Ext3 journal superblock is corrupt.\n
#: e2fsck/problem.c:220
#: e2fsck/problem.c:225
#, c-format
msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
-msgstr ""
-"Superblok heeft geen journalvlag gezet, maar heeft wel een ext3-journal %s.\n"
+msgstr "Superblok heeft geen journalvlag gezet, maar heeft wel een ext3-journal %s.\n"
#. @-expanded: superblock has ext3 needs_recovery flag set, but no journal.\n
#: e2fsck/problem.c:230
#. @-expanded: Ext3 journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:285
msgid "Ext3 @j @S has an unknown read-only feature flag set.\n"
-msgstr ""
-"Journal-superblok heeft een onbekende alleen-lezen-functievlag gezet.\n"
+msgstr "Journal-superblok heeft een onbekende alleen-lezen-functievlag gezet.\n"
#. @-expanded: Ext3 journal superblock has an unknown incompatible feature flag set.\n
#: e2fsck/problem.c:290
msgid "Ext3 @j @S has an unknown incompatible feature flag set.\n"
-msgstr ""
-"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:295
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:327
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"'Resize_inode'-vlag is niet gezet, maar de 'resize'-inode is niet nul. "
+msgstr "'Resize_inode'-vlag is niet gezet, maar de 'resize'-inode is niet nul. "
#. @-expanded: Resize inode not valid.
#: e2fsck/problem.c:332
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
#: e2fsck/problem.c:367
msgid "@r has dtime set (probably due to old mke2fs). "
-msgstr ""
-"De verwijderingstijd van de root-inode is niet nul (waarschijnlijk "
-"veroorzaakt door een oude mke2fs). "
+msgstr "De verwijderingstijd van de root-inode is niet nul (waarschijnlijk veroorzaakt door een oude mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
#: e2fsck/problem.c:372
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:392
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:397
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:402
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:462
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr ""
-"Slecht blok %b is in gebruik als indirect blok voor de slechte-blokken-"
-"inode. "
+msgstr "Slecht blok %b is in gebruik als indirect blok voor de slechte-blokken-inode. "
#. @-expanded: \n
#. @-expanded: The bad block inode has probably been corrupted. You probably\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: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:490
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:496
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:501
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:507
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:513
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:518
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:578
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:584
#: e2fsck/problem.c:603
#, 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:608
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
#: e2fsck/problem.c:634
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:639
#. @-expanded: Error reading extended attribute block %b for inode %i.
#: e2fsck/problem.c:644
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:649
#. @-expanded: extended attribute block %b has reference count %B, should be %N.
#: e2fsck/problem.c:659
msgid "@a @b %b has reference count %B, @s %N. "
-msgstr ""
-"Blok %b met uitgebreide kenmerken heeft verwijzingstal %B, zou %N moeten "
-"zijn. "
+msgstr "Blok %b met uitgebreide kenmerken heeft verwijzingstal %B, zou %N moeten zijn. "
#. @-expanded: Error writing extended attribute block %b (%m).
#: e2fsck/problem.c:664
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
#: e2fsck/problem.c:679
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:684
#: e2fsck/problem.c:713
#, 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:718
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
#: e2fsck/problem.c:728
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:733
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
#: e2fsck/problem.c:759
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 size (%N) which is invalid\n
#: e2fsck/problem.c:764
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 value offset (%N) which is invalid\n
#: e2fsck/problem.c:769
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:774
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 hash (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:779
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"
+msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige hashwaarde (%N, moet 0 zijn).\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
#: e2fsck/problem.c:784
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: \n
#. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:827 e2fsck/problem.c:1143
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:833
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:839
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1109
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: node (%B) not referenced\n
#: e2fsck/problem.c:1114
#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad min hash\n
#: e2fsck/problem.c:1124
msgid "@p @h %d: node (%B) has bad min hash\n"
-msgstr ""
-"Probleem in 'htree'-map %d: node %B heeft een ongeldige minimum hash.\n"
+msgstr "Probleem in 'htree'-map %d: node %B heeft een ongeldige minimum hash.\n"
#. @-expanded: problem in HTREE directory inode %d: node (%B) has bad max hash\n
#: e2fsck/problem.c:1129
msgid "@p @h %d: node (%B) has bad max hash\n"
-msgstr ""
-"Probleem in 'htree'-map %d: node %B heeft een ongeldige maximum hash.\n"
+msgstr "Probleem in 'htree'-map %d: node %B heeft een ongeldige maximum hash.\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
#: e2fsck/problem.c:1134
#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
#: e2fsck/problem.c:1163
msgid "@p @h %d: node (%B) has an unordered hash table\n"
-msgstr ""
-"Probleem in 'htree'-map %d: node %B heeft een ongeordende hash-tabel.\n"
+msgstr "Probleem in 'htree'-map %d: node %B heeft een ongeordende hash-tabel.\n"
#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth\n
#: e2fsck/problem.c:1168
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
#: e2fsck/problem.c:1225
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:1230
#: e2fsck/problem.c:1260
#, 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:1265
"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
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1458
-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"
+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:1464
msgid "Internal error: fudging end of bitmap (%N)\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"
" -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:121
#: e2fsck/unix.c:284
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:288
#, c-format
#: e2fsck/unix.c:747
#, c-format
msgid "Byte-swapping filesystems not compiled in this version of e2fsck\n"
-msgstr ""
-"Byte-verwisseling wordt niet ondersteund door deze versie van e2fsck.\n"
+msgstr "Byte-verwisseling wordt niet ondersteund door deze versie van e2fsck.\n"
#: e2fsck/unix.c:770 misc/tune2fs.c:470 misc/tune2fs.c:735 misc/tune2fs.c:752
#, c-format
#: e2fsck/unix.c:1003
#, 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:1008
#, c-format
#: e2fsck/unix.c:1010
#, c-format
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr ""
-"Bestandssysteem exclusief aangekoppeld of geopend door een ander programma?\n"
+msgstr "Bestandssysteem exclusief aangekoppeld of geopend door een ander programma?\n"
#: e2fsck/unix.c:1014
#, c-format
#: e2fsck/unix.c:1110
#, c-format
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
msgstr ""
"Waarschuwing: afspelen van journal wordt overgeslagen\n"
"omdat een alleen-lezencontrole uitgevoerd wordt.\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:1281
#, c-format
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern "
-"[...]]]\n"
+" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [start_block]]\n"
msgstr ""
"Gebruik: %s [-b blokgrootte] [-i invoerbestand] [-o uitvoerbestand]\n"
#: misc/badblocks.c:343 misc/badblocks.c:581
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:357 misc/badblocks.c:447 misc/badblocks.c:591
msgid "while allocating buffers"
#: misc/badblocks.c:603
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:607
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:614
msgid ""
#: misc/fsck.c:872
#, 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"
msgstr "--wachten-- (volgnummer %d)\n"
#: misc/fsck.c:1061
-msgid ""
-"Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
"Gebruik: fsck [-ANPRTV] [-C [descriptor]] [-t bestandssysteemsoort]\n"
" [bestandssysteemopties] [bestandssysteem...]\n"
#: misc/mke2fs.c:235
#, 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:237
#, c-format
#: misc/mke2fs.c:819
#, c-format
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:843
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
-msgstr ""
-"Vergroten en verkleinen zijn niet mogelijk op een bestandssysteem van versie "
-"0.\n"
+msgstr "Vergroten en verkleinen zijn niet mogelijk op een bestandssysteem van versie 0.\n"
#: misc/mke2fs.c:858
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"Geldige uitgebreide opties zijn:\n"
" stride=<aantal blokken per stripe, als voorbereiding op RAID>\n"
" resize=<maximum grootte van bestandssysteem in blokken>\n"
+" test_fs\n"
"\n"
#: misc/mke2fs.c:888
#: misc/mke2fs.c:1012
#, 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:1029
#, c-format
#: misc/mke2fs.c:1035
#, c-format
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"
#: misc/mke2fs.c:1042
msgid "Illegal number for blocks per group"
#: misc/mke2fs.c:1197
#, 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:1211
#, c-format
#: misc/mke2fs.c:1215
#, 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:1335
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
-msgstr ""
-"Sommige functies worden niet ondersteund op een bestandssysteem van versie "
-"0.\n"
+msgstr "Sommige functies worden niet ondersteund op een bestandssysteem van versie 0.\n"
#: misc/mke2fs.c:1342
#, c-format
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:1354
#, c-format
#: misc/mke2fs.c:1432
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:1441
msgid "blocks per group count out of range"
#: misc/mke2fs.c:1478
#, c-format
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"
#: misc/mke2fs.c:1490
#, c-format
msgstr "Controleer het bestandssysteem met 'e2fsck'.\n"
#: misc/tune2fs.c:96
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID] device\n"
msgstr ""
-"Gebruik: %s [-c maximum_aankoppelingsaantal] [-C aankoppelingsaantal]\n"
-" [-e gedrag_bij_fouten] [-f] [-g groep] [-i interval[d|w|m]] [-j]\n"
-" [-J journal-opties] [-l] [-L label] [-M laatst_aangekoppelde_map]\n"
-" [-m percentage_gereserveerde_blokken] [-O [^]functie[,...]]\n"
-" [-o [^]aankoppelingsopties[,...]] [-r "
-"aantal_gereserveerde_blokken]\n"
-" [-s schaarsheidsvlag] [-T tijdstip_van_laatste_controle]\n"
-" [-u gebruiker] [-U UUID] apparaat\n"
+"Gebruik: %s [-c maximum_aantal_aankoppelingen] [-C aankoppelingental]\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 laatst_aangekoppelde_map]\n"
+" [-o [^]aankoppelingsopties[,...]] [-O [^]functie[,...]]\n"
+" [-r aantal_gereserveerde_blokken] [-s schaarsheidsvlag]\n"
+" [-T tijdstip_van_laatste_controle] [-u gebruiker] [-U UUID] apparaat\n"
#: misc/tune2fs.c:153
msgid "while trying to open external journal"
#: misc/tune2fs.c:529 misc/tune2fs.c:542
#, c-format
msgid "bad mounts count - %s"
-msgstr "onjuist aankoppelingsaantal: %s"
+msgstr "onjuist aankoppelingenaantal: %s"
#: misc/tune2fs.c:558
#, c-format
msgstr "onjuiste UID of gebruikersnaam: %s"
#: misc/tune2fs.c:804
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"\n"
"Ongeldige opties opgegeven.\n"
"\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 per stripe, als voorbereiding op RAID>\n"
-" resize=<maximum grootte van bestandssysteem in blokken>\n"
+" test_fs\n"
+" ^test_fs\n"
"\n"
#: misc/tune2fs.c:862
-#, fuzzy, c-format
+#, c-format
msgid "Filesystem %s has unsupported features enabled.\n"
-msgstr ""
-"Sommige functies worden niet ondersteund op een bestandssysteem van versie "
-"0.\n"
+msgstr "Bestandssysteem %s heeft functies ingeschakeld die niet ondersteund worden.\n"
#: misc/tune2fs.c:886
#, c-format
# Polish translation for e2fsprogs.
-# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the e2fsprogs package.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2007.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2008.
#
#. 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,
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.40.3\n"
+"Project-Id-Version: e2fsprogs 1.40.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
"POT-Creation-Date: 2008-02-09 23:16-0500\n"
-"PO-Revision-Date: 2007-12-11 17:50+0100\n"
+"PO-Revision-Date: 2008-02-11 18:30+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\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:22 misc/mke2fs.c:156
#, c-format
#: e2fsck/badblocks.c:129
#, 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:53
#, c-format
#: e2fsck/journal.c:843
#, 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:864
#, c-format
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
#: e2fsck/problem.c:192
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:197
#: e2fsck/problem.c:212
msgid ""
"Ext3 @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"@S kroniki ext3 ma nieznany typ %N (nie obs³ugiwany).\n"
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:327
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"Resize_inode 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:332
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:462
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: Error storing inode count information (inode=%i, count=%N): %m\n
#: e2fsck/problem.c:573
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:578
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:584
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
#: e2fsck/problem.c:679
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:684
#: e2fsck/problem.c:713
#, 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:718
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:827 e2fsck/problem.c:1143
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:833
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:839
#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
#: e2fsck/problem.c:1163
msgid "@p @h %d: node (%B) has an unordered hash table\n"
-msgstr ""
-"@p i-wê¼le @du HTREE %d: wêze³ (%B) ma nie uporz±dkowan± tablicê haszuj±c±\n"
+msgstr "@p i-wê¼le @du HTREE %d: wêze³ (%B) ma nie uporz±dkowan± tablicê haszuj±c±\n"
#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth\n
#: e2fsck/problem.c:1168
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1458
-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"
+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:1464
msgid "Internal error: fudging end of bitmap (%N)\n"
#: e2fsck/problem.c:1499
msgid "Recreate journal to make the filesystem ext3 again?\n"
-msgstr ""
-"Utworzyæ ponownie kronikê, aby uzyskaæ z powrotem system plików ext3?\n"
+msgstr "Utworzyæ ponownie kronikê, aby uzyskaæ z powrotem system plików ext3?\n"
#: e2fsck/problem.c:1617
#, c-format
" -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 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"
+" -f Wymuszenie sprawdzenia nawet \"czystego\" systemu plików\n"
#: e2fsck/unix.c:86
#, c-format
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"
+" -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:1010
#, c-format
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr ""
-"System plików podmontowany lub otwarty na wy³±czno¶æ przez inny program?\n"
+msgstr "System plików podmontowany lub otwarty na wy³±czno¶æ przez inny program?\n"
#: e2fsck/unix.c:1014
#, c-format
#: e2fsck/unix.c:1110
#, c-format
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
msgstr ""
"Uwaga: pominiêto odtwarzanie z kroniki z powodu sprawdzania w trybie tylko\n"
"do odczytu.\n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern "
-"[...]]]\n"
+" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [start_block]]\n"
msgstr ""
"Sk³adnia: %s [-b rozm_bloku] [-i plik_wej] [-o plik_wyj] [-svwnf]\n"
-" [-c bloków_naraz] [-p przebiegów] [-t wzór_testowy [-t wzór_testowy "
-"[...]]]\n"
+" [-c bloków_naraz] [-p przebiegów] [-t wzór_testowy [-t wzór_testowy [...]]]\n"
" urz±dzenie [ostatni_blok [pocz±tek]]\n"
#: misc/badblocks.c:88
#: misc/fsck.c:872
#, 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:899
#, c-format
msgstr "--oczekiwanie-- (przebieg %d)\n"
#: misc/fsck.c:1061
-msgid ""
-"Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Sk³adnia: fsck [-ANPRTV] [ -C [ deskryptor ] ] [-t rodzaj-fs] [opcje-fs] "
-"[system-plików ...]\n"
+msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Sk³adnia: fsck [-ANPRTV] [ -C [ deskryptor ] ] [-t rodzaj-fs] [opcje-fs] [system-plików ...]\n"
#: misc/fsck.c:1103
#, c-format
#: misc/mke2fs.c:819
#, c-format
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:843
#, c-format
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:858
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"Poprawne opcje to:\n"
"\tstride=<d³ugo¶æ stride w blokach>\n"
"\tresize=<maksymalny rozmiar powiêkszenia w blokach>\n"
-"\n"
+"\ttest_fs\n"
#: misc/mke2fs.c:888
#, c-format
#: misc/mke2fs.c:1215
#, 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:1233
msgid "filesystem"
#: misc/mke2fs.c:1342
#, c-format
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:1354
#, c-format
#: misc/mke2fs.c:1432
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:1441
msgid "blocks per group count out of range"
msgstr "Proszê uruchomiæ e2fsck na systemie plików.\n"
#: misc/tune2fs.c:96
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options]\n"
"\t[-o [^]opcje-montowania[,...]] [-r liczba-zarez.-bloków]\n"
"\t[-u u¿ytkownik] [-C licznik-montowañ] [-L etykieta-wolumenu]\n"
"\t[-M ostatnio-mont.-katalog] [-O [^]cecha[,...]]\n"
-"\t[-T czas-ost.-sprawdz.] [-U UUID] urz±dzenie\n"
+"\t[-E opcja-rozszerzona[,...]] [-T czas-ost.-sprawdz.] [-U UUID] urz±dzenie\n"
#: misc/tune2fs.c:153
msgid "while trying to open external journal"
msgstr "b³êdny uid/nazwa u¿ytkownika - %s"
#: misc/tune2fs.c:804
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"Poprawne opcje to:\n"
"\tstride=<d³ugo¶æ stride w blokach>\n"
"\tresize=<maksymalny rozmiar powiêkszenia w blokach>\n"
-"\n"
+"\ttest_fs\n"
+"\t^test_fs\n"
#: misc/tune2fs.c:862
-#, fuzzy, c-format
+#, c-format
msgid "Filesystem %s has unsupported features enabled.\n"
-msgstr "Cechy systemu plików nie obs³ugiwane przez systemy plików w wersji 0\n"
+msgstr "System plików %s ma w³±czone nie obs³ugiwane cechy.\n"
#: misc/tune2fs.c:886
#, c-format
# This file is distributed under the same license as the e2fsprogs package.
# Göran Uddeborg <goeran@uddeborg.se>, 2003, 2005, 2006, 2008.
#
-# $Revision: 1.34 $
+# $Revision: 1.36 $
#
#. 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,
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.40.4\n"
+"Project-Id-Version: e2fsprogs 1.40.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
"POT-Creation-Date: 2008-02-09 23:16-0500\n"
-"PO-Revision-Date: 2008-01-20 15:15+0100\n"
+"PO-Revision-Date: 2008-02-12 13:01+0100\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
#: e2fsck/problem.c:212
msgid ""
"Ext3 @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is 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-journalsuperblock är av okänd typ %N (ej stött).\n"
#. @-expanded: superblock has ext3 needs_recovery flag set, but no journal.\n
#: e2fsck/problem.c:230
msgid "@S has ext3 needs_recovery flag set, but no @j.\n"
-msgstr ""
-"superblock har ext3-behöver-rättas-flagga satt, men har ext3-journal %s.\n"
+msgstr "superblock har ext3-behöver-rättas-flagga satt, men har ext3-journal %s.\n"
#. @-expanded: ext3 recovery flag is clear, but journal has data.\n
#: e2fsck/problem.c:235
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
#: e2fsck/problem.c:255
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
-msgstr ""
-"%s 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 block #%B (%b) found in orphaned inode %i.\n
#: e2fsck/problem.c:260
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
#: e2fsck/problem.c:280 e2fsck/problem.c:613
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: Ext3 journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:285
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:327
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"Resize_inode ä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:332
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:392
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:397
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:402
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:407
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:462
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: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:490
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:496
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:501
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:507
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:513
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:518
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:578
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:584
#: e2fsck/problem.c:603
#, 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:608
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:774
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 hash (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:779
msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
-msgstr ""
-"Utökat attribut i inod %i har en kontrollsumma (%N) som är ogiltig (måste "
-"vara 0)\n"
+msgstr "Utökat attribut i inod %i har en kontrollsumma (%N) som är ogiltig (måste vara 0)\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
#: e2fsck/problem.c:784
"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"
+"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:
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:827 e2fsck/problem.c:1143
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:833
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:839
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
#: e2fsck/problem.c:909
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:914
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
#: e2fsck/problem.c:939
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:944
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
#: e2fsck/problem.c:1084
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:1089
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1109
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: node (%B) not referenced\n
#: e2fsck/problem.c:1114
#. @-expanded: problem in HTREE directory inode %d: node (%B) has an unordered hash table\n
#: e2fsck/problem.c:1163
msgid "@p @h %d: node (%B) has an unordered hash table\n"
-msgstr ""
-"Problem i HTREE-katalognod %d (%q): not (%B) har en oordnat hash-tabell\n"
+msgstr "Problem i HTREE-katalognod %d (%q): not (%B) har en oordnat hash-tabell\n"
#. @-expanded: problem in HTREE directory inode %d: node (%B) has invalid depth\n
#: e2fsck/problem.c:1168
#: e2fsck/problem.c:1260
#, 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:1265
"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
"@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"
+" 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
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1458
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
+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"
" -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 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"
+" -f Framtvinga kontroll även om filsystemet är markerat rent\n"
#: e2fsck/unix.c:86
#, c-format
#: e2fsck/unix.c:747
#, c-format
msgid "Byte-swapping filesystems not compiled in this version of e2fsck\n"
-msgstr ""
-"Byteväxling av filsystem är inte inkompilerat i denna version av e2fsck\n"
+msgstr "Byteväxling av filsystem är inte inkompilerat i denna version av e2fsck\n"
#: e2fsck/unix.c:770 misc/tune2fs.c:470 misc/tune2fs.c:735 misc/tune2fs.c:752
#, c-format
#: e2fsck/unix.c:1110
#, 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"
+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:1123
#, c-format
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern "
-"[...]]]\n"
+" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [start_block]]\n"
msgstr ""
"Användning: %s [-b blockstorlek] [-i infil] [-o utfile] [-svwnf]\n"
-" [-c block_åt_gången] [-p antal_pass] [-t testmönster [-t testmönster "
-"[...]]]\n"
+" [-c block_åt_gången] [-p antal_pass] [-t testmönster [-t testmönster [...]]]\n"
" enhet [sista_block [start_block]]\n"
#: misc/badblocks.c:88
#: misc/fsck.c:872
#, 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:899
#, c-format
msgstr "--väntar-- (pass %d)\n"
#: misc/fsck.c:1061
-msgid ""
-"Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Användning: fsck [-ANPRTV] [ -C [ fh ] ] [-t fstyp] [fs-flaggor] "
-"[filsys ...]\n"
+msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Användning: fsck [-ANPRTV] [ -C [ fh ] ] [-t fstyp] [fs-flaggor] [filsys ...]\n"
#: misc/fsck.c:1103
#, c-format
#: misc/mke2fs.c:819
#, c-format
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:843
#, c-format
msgstr "Storleksändring under drift stöds inte med revision 0-filsystem\n"
#: misc/mke2fs.c:858
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"\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"
"\tstride=<stride-längd i block>\n"
"\tresize=<maximal storleksändring i block>\n"
-"\n"
+"\ttest_fs\n"
#: misc/mke2fs.c:888
#, c-format
#: misc/mke2fs.c:1215
#, 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"
# "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:1432
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:1441
msgid "blocks per group count out of range"
msgstr "Kör e2fsck på filsystemet.\n"
#: misc/tune2fs.c:96
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options]\n"
"\t[-o [^]monteringsflaggor[,...]] [-r antal_reserverade_block]\n"
"\t[-u användare] [-C antal_monteringar] [-L volymetikett]\n"
"\t[-M senast_monterad_katalog] [-O [^]funktion[,...]]\n"
-"\t[-T senaste_kontroll_tid] [-U UUID] enhet\n"
+"\t[-E utökad-flagga[,...]] [-T senaste_kontroll_tid] [-U UUID] enhet\n"
#: misc/tune2fs.c:153
msgid "while trying to open external journal"
msgstr "felagtigt uid/användarnamn - %s"
#: misc/tune2fs.c:804
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"\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"
-"\tstride=<stride-längd i block>\n"
-"\tresize=<maximal storleksändring i block>\n"
-"\n"
+"\ttest_fs\n"
+"\t^test_fs\n"
#: misc/tune2fs.c:862
-#, fuzzy, c-format
+#, c-format
msgid "Filesystem %s has unsupported features enabled.\n"
-msgstr "Filsystemsfunktioner som inte stöds med revision 0-filsystem\n"
+msgstr "Filsystem %s har funktioner som inte stöds aktiverade.\n"
#: misc/tune2fs.c:886
#, c-format
# Vietnamese translation for e2fsprogs.
-# Copyright © 2007 Free Software Foundation, Inc.
-# Clytie Siddall <clytie@riverland.net.au>, 2006-2007.
+# Copyright © 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the e2fsprogs-1.40.6 package.
+# Clytie Siddall <clytie@riverland.net.au>, 2006-2008.
#
#. 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,
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.40.4\n"
+"Project-Id-Version: e2fsprogs 1.40.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
"POT-Creation-Date: 2008-02-09 23:16-0500\n"
-"PO-Revision-Date: 2008-01-02 16:52+1030\n"
+"PO-Revision-Date: 2008-02-12 22:09+1030\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\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.7b1\n"
+"X-Generator: LocFactoryEditor 1.7b3\n"
#: e2fsck/badblocks.c:22 misc/mke2fs.c:156
#, c-format
#: e2fsck/badblocks.c:129
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr ""
-"Cảnh báo : tìm thấy khối cấm %u trong nút thông tin khối hỏng nên bị xoá.\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"
#: e2fsck/ehandler.c:53
#, c-format
#: e2fsck/problem.c:212
msgid ""
"Ext3 @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"@S @j ext3 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"
"It is also possible the @S @j is corrupt.\n"
#. @-expanded: Ext3 journal superblock is corrupt.\n
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:490
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:496
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
#: e2fsck/problem.c:507
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:513
#: e2fsck/problem.c:994
#, 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:999
#, 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:1004
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1458
-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"
+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:1464
msgid "Internal error: fudging end of bitmap (%N)\n"
#: e2fsck/super.c:187
#, 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
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount for inode %d"
msgstr ""
-"trong khi gọi hàm điều chỉnh số đếm tham chiếu « ext2fs_adjust_ea_refcount "
-"»\n"
+"trong khi gọi hàm điều chỉnh số đếm tham chiếu « ext2fs_adjust_ea_refcount »\n"
"cho nút thông tin %d"
#: e2fsck/super.c:268
" -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 Không thay đổi hệ thống tập tin\n"
" -y Giả sử trả lời « Có » mọi câu hỏi\n"
" -c Kiểm tra tìm khối 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:86
#, c-format
#: e2fsck/unix.c:808
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
-msgstr ""
-"Không cho phép sử dụng đồ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:856
#, c-format
#: e2fsck/unix.c:1003
#, 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 là người chủ (root)\n"
#: e2fsck/unix.c:1008
#, c-format
#: e2fsck/unix.c:1010
#, c-format
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr ""
-"Hệ thống tập tin đã được gắn kết hay mở hoàn toàn bởi chương trình khác ?\n"
+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:1014
#, c-format
#: e2fsck/unix.c:1110
#, 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"
+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:1123
#, c-format
#: e2fsck/unix.c:1234
#, 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"
+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"
#: e2fsck/unix.c:1260
msgid "Couldn't determine journal size"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern "
-"[...]]]\n"
+" [-c blocks_at_once] [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [start_block]]\n"
msgstr ""
"Cách sử dụng: %s [-b cỡ_khối] [-i tập_tin_nhập] [-o tập_tin_xuất] [-svwnf]\n"
-" [-c các_khối_cùng_lúc] [-p số_lần_qua] [-t mẫu_thử_ra [-t mẫu_thử_ra "
-"[...]]]\n"
+" [-c các_khối_cùng_lúc] [-p số_lần_qua] [-t mẫu_thử_ra [-t mẫu_thử_ra [...]]]\n"
" thiết_bị [khối_cuối [khối_đầu]]\n"
#: misc/badblocks.c:88
#: misc/badblocks.c:961
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ể xác định tối đa một mẫu thử (test_pattern)"
#: misc/badblocks.c:967
msgid "Random test_pattern is not allowed in read-only mode"
#: misc/fsck.c:872
#, 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:899
#, c-format
msgstr "--đang đợi-- (lần qua %d)\n"
#: misc/fsck.c:1061
-msgid ""
-"Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgid "Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
"Cách sử dụng: fsck [-ANPRTV] [ -C [ fd ] ] [-t kiểu_HTT]\n"
"[tùy_chọn_HTT] [HTT ...]\n"
#: misc/mke2fs.c:819
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr ""
-"Số thay đổi kích cỡ tối đa phải lớ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:843
#, c-format
"trên hệ thống tập tin bản sửa đổi 0\n"
#: misc/mke2fs.c:858
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"\ttest_fs\n"
msgstr ""
"\n"
-"Tùy chọn sai đã xác định.\n"
+"Sai xác định tùy chọn.\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"
"\n"
"Tùy chọn đã mở rộng hợp lệ:\n"
-"\tstride=<độ dài stride theo khối>\n"
+"\tstride=<chiều dài stride theo khối>\n"
"\tresize=<kích cỡ thay đổi kích cỡ tối đa theo khối>\n"
-"\n"
+"\ttest_fs\n"
#: misc/mke2fs.c:888
#, c-format
#: misc/mke2fs.c:1215
#, 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"
msgstr "Hãy chạy tiến trình e2fsck trên hệ thống tập tin.\n"
#: misc/tune2fs.c:96
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID] device\n"
msgstr ""
-"Cách sử dụng: %s [-c số_đếm_lắp_tối_đa] [-e ứng_xử_lỗi] [-g nhóm]\n"
+"Sử 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ý]\n"
"\t[-l] [-s cờ_thưa_thớt] [-m phần_trăm_khối_dành_riêng]\n"
"\t[-o [^]tùy_chọn_lắp[,...]] [-r số_đếm_khối_dành_riêng]\n"
-"\t[-u người_dùng] [-C số_đếm_lắp] [-L nhãn_khối_tin] [-M thư_mục_lắp_cuối]\n"
-"\t[-O [^]tính_năng[,...]] [-T giờ_kiểm_tra_cuối] [-U UUID] thiết_bị\n"
+"\t[-u người_dùng] [-C số_đếm_lắp] [-L nhãn_khối_tin]\n"
+"\t[-M thư_mục_lắp_cuối] [-O [^]tính_năng[,...]]\n"
+"\t[-E tùy_chọn_đã_mở_rộng[,...] [-T giờ_kiểm_tra_cuối] [-U UUID] thiết_bị\n"
#: misc/tune2fs.c:153
msgid "while trying to open external journal"
msgstr "UID/tên người dùng sai — %s"
#: misc/tune2fs.c:804
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"Bad options specified.\n"
"\t^test_fs\n"
msgstr ""
"\n"
-"Tùy chọn sai đã xác định.\n"
+"Sai xác định tùy chọn.\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"
"\n"
"Tùy chọn đã mở rộng hợp lệ:\n"
-"\tstride=<độ dài stride theo khối>\n"
-"\tresize=<kích cỡ thay đổi kích cỡ tối đa theo khối>\n"
-"\n"
+"\ttest_fs\n"
+"\t^test_fs\n"
#: misc/tune2fs.c:862
-#, fuzzy, c-format
+#, c-format
msgid "Filesystem %s has unsupported features enabled.\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"
+msgstr "Hệ thống tập tin %s đã hiệu lực tính năng không được hỗ trợ.\n"
#: misc/tune2fs.c:886
#, c-format