mirror of https://github.com/vitalif/e2fsprogs
commit
b689b8dd14
|
@ -2600,3 +2600,52 @@ AC_DEFUN([gl_XSIZE],
|
|||
AC_REQUIRE([gl_SIZE_MAX])
|
||||
AC_CHECK_HEADERS(stdint.h)
|
||||
])
|
||||
|
||||
# from http://autoconf-archive.cryp.to/ax_tls.html
|
||||
#
|
||||
# This was licensed under the GPL with the following exception:
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright
|
||||
# owner gives unlimited permission to copy, distribute and modify the
|
||||
# configure scripts that are the output of Autoconf when processing
|
||||
# the Macro. You need not follow the terms of the GNU General Public
|
||||
# License when using or distributing such scripts, even though
|
||||
# portions of the text of the Macro appear in them. The GNU General
|
||||
# Public License (GPL) does govern all other use of the material that
|
||||
# constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the
|
||||
# Autoconf Macro released by the Autoconf Macro Archive. When you make
|
||||
# and distribute a modified version of the Autoconf Macro, you may
|
||||
# extend this special exception to the GPL to apply to your modified
|
||||
# version as well.
|
||||
#
|
||||
AC_DEFUN([AX_TLS], [
|
||||
AC_MSG_CHECKING(for thread local storage (TLS) class)
|
||||
AC_CACHE_VAL(ac_cv_tls, [
|
||||
ax_tls_keywords="__thread __declspec(thread) none"
|
||||
for ax_tls_keyword in $ax_tls_keywords; do
|
||||
case $ax_tls_keyword in
|
||||
none) ac_cv_tls=none ; break ;;
|
||||
*)
|
||||
AC_TRY_COMPILE(
|
||||
[#include <stdlib.h>
|
||||
static void
|
||||
foo(void) {
|
||||
static ] $ax_tls_keyword [ int bar;
|
||||
exit(1);
|
||||
}],
|
||||
[],
|
||||
[ac_cv_tls=$ax_tls_keyword ; break],
|
||||
ac_cv_tls=none
|
||||
)
|
||||
esac
|
||||
done
|
||||
])
|
||||
|
||||
if test "$ac_cv_tls" != "none"; then
|
||||
dnl AC_DEFINE([TLS], [], [If the compiler supports a TLS storage class define it to that here])
|
||||
AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here])
|
||||
fi
|
||||
AC_MSG_RESULT($ac_cv_tls)
|
||||
])
|
||||
|
|
|
@ -11406,6 +11406,81 @@ done
|
|||
|
||||
fi
|
||||
|
||||
{ echo "$as_me:$LINENO: checking for thread local storage (TLS) class" >&5
|
||||
echo $ECHO_N "checking for thread local storage (TLS) class... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_tls+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
|
||||
ax_tls_keywords="__thread __declspec(thread) none"
|
||||
for ax_tls_keyword in $ax_tls_keywords; do
|
||||
case $ax_tls_keyword in
|
||||
none) ac_cv_tls=none ; break ;;
|
||||
*)
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <stdlib.h>
|
||||
static void
|
||||
foo(void) {
|
||||
static $ax_tls_keyword int bar;
|
||||
exit(1);
|
||||
}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (ac_try="$ac_compile"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_compile") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } && {
|
||||
test -z "$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
} && test -s conftest.$ac_objext; then
|
||||
ac_cv_tls=$ax_tls_keyword ; break
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_tls=none
|
||||
|
||||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
esac
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
||||
if test "$ac_cv_tls" != "none"; then
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define TLS $ac_cv_tls
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: result: $ac_cv_tls" >&5
|
||||
echo "${ECHO_T}$ac_cv_tls" >&6; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -14490,7 +14565,9 @@ fi
|
|||
|
||||
|
||||
|
||||
for ac_func in chflags getrusage llseek lseek64 open64 fstat64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime
|
||||
|
||||
|
||||
for ac_func in chflags getrusage llseek lseek64 open64 fstat64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid
|
||||
do
|
||||
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
|
||||
|
|
|
@ -550,6 +550,7 @@ if test $cross_compiling = no; then
|
|||
else
|
||||
AC_CHECK_PROGS(BUILD_CC, gcc cc)
|
||||
fi
|
||||
AX_TLS
|
||||
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 net/if_dl.h netinet/in.h utime.h)
|
||||
AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
|
||||
[[
|
||||
|
@ -656,7 +657,7 @@ AC_CHECK_MEMBER(struct sockaddr.sa_len,
|
|||
[#include <sys/types.h>
|
||||
#include <sys/socket.h>])
|
||||
dnl
|
||||
AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime)
|
||||
AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid)
|
||||
dnl
|
||||
dnl Check to see if -lsocket is required (solaris) to make something
|
||||
dnl that uses socket() to compile; this is needed for the UUID library
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
e2fsprogs (1.40.3-2) unstable; urgency=low
|
||||
|
||||
* Add uuidd daemon
|
||||
|
||||
-- Theodore Y. Ts'o <tytso@mit.edu> Sun, 09 Dec 2007 22:47:53 -0500
|
||||
|
||||
e2fsprogs (1.40.3-1) unstable; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
|
|
@ -2,7 +2,7 @@ Source: e2fsprogs
|
|||
Section: admin
|
||||
Priority: required
|
||||
Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
|
||||
Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, libsepol1-dev, libdevmapper-dev, libselinux1-dev, debhelper (>= 4)
|
||||
Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, libsepol1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libdevmapper-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libselinux1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], debhelper (>= 4)
|
||||
Standards-Version: 3.7.3.0
|
||||
|
||||
Package: e2fsck-static
|
||||
|
@ -78,12 +78,26 @@ Package: libuuid1
|
|||
Section: libs
|
||||
Priority: required
|
||||
Depends: ${shlibs:Depends}
|
||||
Recommends: uuid-runtime
|
||||
Replaces: e2fsprogs (<< 1.34-1)
|
||||
Architecture: any
|
||||
Description: universally unique id library
|
||||
libuuid generates and parses 128-bit universally unique id's (UUID's).
|
||||
See RFC 4122 for more information.
|
||||
|
||||
Package: uuid-runtime
|
||||
Section: libs
|
||||
Priority: optional
|
||||
Depends: ${shlibs:Depends}
|
||||
Replaces: e2fsprogs (<= 1.40.3-1ubuntu1)
|
||||
Architecture: any
|
||||
Description: universally unique id library
|
||||
libuuid generates and parses 128-bit universally unique id's (UUID's).
|
||||
See RFC 4122 for more information.
|
||||
.
|
||||
This package contains the uuidd daemon which is used by libuuid as well as
|
||||
the uuidgen program.
|
||||
|
||||
Package: libuuid1-udeb
|
||||
Section: debian-installer
|
||||
Priority: optional
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
adduser --system --group --no-create-home --disabled-login \
|
||||
--quiet --home /var/lib/libuuid libuuid
|
||||
mkdir -p /var/lib/libuuid
|
||||
chown libuuid:libuuid /var/lib/libuuid
|
||||
chmod 2775 /var/lib/libuuid
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
if [ "$1" = purge ]
|
||||
then
|
||||
rm -rf /var/lib/libuuid
|
||||
fi
|
|
@ -14,6 +14,7 @@ export LC_ALL=C
|
|||
# from having to guess our platform (since we know it already)
|
||||
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
|
||||
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
||||
DEB_HOST_OS ?= $(shell dpkg-architecture -qDEB_HOST_OS)
|
||||
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||
|
||||
|
@ -82,6 +83,10 @@ else
|
|||
CCOPTS += -D__NO_STRING_INLINES
|
||||
endif
|
||||
|
||||
ifeq (${DEB_HOST_ARCH_OS},linux)
|
||||
DEVMAPPER = --enable-blkid-devmapper
|
||||
endif
|
||||
|
||||
BF_CCOPTS = -Os -fomit-frame-pointer
|
||||
|
||||
COMMON_CONF_FLAGS = \
|
||||
|
@ -89,7 +94,7 @@ COMMON_CONF_FLAGS = \
|
|||
--infodir=/usr/share/info --enable-fsck
|
||||
|
||||
STD_CONF_FLAGS = --with-ccopts="${CCOPTS}" --enable-compression \
|
||||
--enable-blkid-devmapper
|
||||
${DEVMAPPER}
|
||||
|
||||
BF_CONF_FLAGS = --with-ccopts="${CCOPTS} ${BF_CCOPTS}" \
|
||||
--disable-nls --disable-imager \
|
||||
|
@ -121,7 +126,7 @@ ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
|
|||
else
|
||||
cd ${stdbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
|
||||
${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
|
||||
--build=$(DEB_BUILD_GNU_TYPE) $(DEB_HOST_GNU_TYPE)
|
||||
--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
|
||||
endif
|
||||
|
||||
# specially-built MIPS libs
|
||||
|
@ -147,7 +152,7 @@ ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
|
|||
else
|
||||
cd ${bfbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
|
||||
${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
|
||||
--build=$(DEB_BUILD_GNU_TYPE) $(DEB_HOST_GNU_TYPE)
|
||||
--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
|
||||
endif
|
||||
mkdir -p ${STAMPSDIR}
|
||||
touch ${CFGBFSTAMP}
|
||||
|
@ -352,7 +357,7 @@ binary-arch: install install-udeb
|
|||
DH_OPTIONS= dh_installchangelogs -pe2fsprogs \
|
||||
-plibblkid${BLKID_SOVERSION} -plibcomerr${COMERR_SOVERSION} \
|
||||
-plibss${SS_SOVERSION} -plibuuid${UUID_SOVERSION} \
|
||||
-pe2fslibs -puuid-dev -pe2fsck-static
|
||||
-pe2fslibs -puuid-dev -puuid-runtime -pe2fsck-static
|
||||
|
||||
dh_fixperms
|
||||
ifneq ($(ismips),)
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
This package was added to the e2fsprogs debian source package by
|
||||
Theodore Ts'o <tytso@mit.edu> on Fri Dec 14 22:24:35 EST 2007
|
||||
|
||||
It is part of the main e2fsprogs distribution, which can be found at:
|
||||
|
||||
http://sourceforge.net/projects/e2fsprogs
|
||||
|
||||
Upstream Author: Theodore Ts'o <tytso@mit.edu>
|
||||
|
||||
Copyright:
|
||||
|
||||
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by
|
||||
Theodore Ts'o
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, and the entire permission notice in its entirety,
|
||||
including the disclaimer of warranties.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote
|
||||
products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
|
||||
WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
|
@ -0,0 +1,4 @@
|
|||
usr/bin/uuidgen
|
||||
usr/sbin/uuidd
|
||||
usr/share/man/man8/uuidd.*
|
||||
usr/share/man/man1/uuidgen.*
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
adduser --system --group --no-create-home --disabled-login \
|
||||
--quiet --home /var/lib/libuuid libuuid
|
||||
mkdir -p /var/run/uuidd
|
||||
chown libuuid:libuuid /var/run/uuidd
|
||||
chmod 775 /var/run/uuidd
|
||||
chown libuuid:libuuid /usr/sbin/uuidd
|
||||
chmod 6755 /usr/sbin/uuidd
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
if [ "$1" = purge ]
|
||||
then
|
||||
rm -rf /var/run/uuidd
|
||||
fi
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
#! /bin/sh
|
||||
|
||||
if [ -x /usr/sbin/uuidd ]
|
||||
then
|
||||
/usr/sbin/uuidd -k || true
|
||||
fi
|
|
@ -0,0 +1 @@
|
|||
libuuid 1 libuuid1 (> 1.40.3-1)
|
|
@ -284,6 +284,8 @@ static int probe_fat(struct blkid_probe *probe,
|
|||
(sector_size-1)) / sector_size;
|
||||
|
||||
cluster_count = sect_count - (reserved + fat_size + dir_size);
|
||||
if (ms->ms_cluster_size == 0)
|
||||
return 1;
|
||||
cluster_count /= ms->ms_cluster_size;
|
||||
|
||||
if (cluster_count > FAT32_MAX)
|
||||
|
|
|
@ -69,7 +69,7 @@ const char * error_message (errcode_t code)
|
|||
#endif
|
||||
}
|
||||
for (et = _et_list; et; et = et->next) {
|
||||
if (et->table->base == table_num) {
|
||||
if ((et->table->base & 0xffffffL) == (table_num & 0xffffffL)) {
|
||||
/* This is the right table */
|
||||
if (et->table->n_msgs <= offset)
|
||||
goto oops;
|
||||
|
@ -77,7 +77,7 @@ const char * error_message (errcode_t code)
|
|||
}
|
||||
}
|
||||
for (et = _et_dynamic_list; et; et = et->next) {
|
||||
if (et->table->base == table_num) {
|
||||
if ((et->table->base & 0xffffffL) == (table_num & 0xffffffL)) {
|
||||
/* This is the right table */
|
||||
if (et->table->n_msgs <= offset)
|
||||
goto oops;
|
||||
|
|
|
@ -206,6 +206,7 @@ errcode_t ext2fs_flush(ext2_filsys fs)
|
|||
dgrp_t i,j;
|
||||
errcode_t retval;
|
||||
unsigned long fs_state;
|
||||
__u32 feature_incompat;
|
||||
struct ext2_super_block *super_shadow = 0;
|
||||
struct ext2_group_desc *group_shadow = 0;
|
||||
struct ext2_group_desc *s, *t;
|
||||
|
@ -215,6 +216,7 @@ errcode_t ext2fs_flush(ext2_filsys fs)
|
|||
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
|
||||
|
||||
fs_state = fs->super->s_state;
|
||||
feature_incompat = fs->super->s_feature_incompat;
|
||||
|
||||
fs->super->s_wtime = fs->now ? fs->now : time(NULL);
|
||||
fs->super->s_block_group_nr = 0;
|
||||
|
@ -247,6 +249,7 @@ errcode_t ext2fs_flush(ext2_filsys fs)
|
|||
* we write out the backup superblocks.)
|
||||
*/
|
||||
fs->super->s_state &= ~EXT2_VALID_FS;
|
||||
fs->super->s_feature_incompat &= ~EXT3_FEATURE_INCOMPAT_RECOVER;
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
*super_shadow = *fs->super;
|
||||
ext2fs_swap_super(super_shadow);
|
||||
|
@ -323,6 +326,7 @@ write_primary_superblock_only:
|
|||
|
||||
fs->super->s_block_group_nr = 0;
|
||||
fs->super->s_state = fs_state;
|
||||
fs->super->s_feature_incompat = feature_incompat;
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
*super_shadow = *fs->super;
|
||||
ext2fs_swap_super(super_shadow);
|
||||
|
|
|
@ -170,7 +170,7 @@ test_ss: test_ss.o test_cmd.o $(LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR)
|
|||
|
||||
check:: all test_ss
|
||||
@echo " RUN TEST test_ss"
|
||||
@(test_ss -f $(srcdir)/test_script >& test_out; exit 0)
|
||||
@(LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./test_ss -f $(srcdir)/test_script >& test_out; exit 0)
|
||||
@if ! diff test_out $(srcdir)/test_script_expected > test.diff; then \
|
||||
echo "Regression test for ss library failed!"; exit 1 ; fi
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
*/
|
||||
#define _SVID_SOURCE
|
||||
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
@ -57,6 +58,7 @@
|
|||
#ifdef HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <sys/un.h>
|
||||
#ifdef HAVE_SYS_SOCKIO_H
|
||||
#include <sys/sockio.h>
|
||||
#endif
|
||||
|
@ -74,15 +76,22 @@
|
|||
#endif
|
||||
|
||||
#include "uuidP.h"
|
||||
#include "uuidd.h"
|
||||
|
||||
#ifdef HAVE_SRANDOM
|
||||
#define srand(x) srandom(x)
|
||||
#define rand() random()
|
||||
#endif
|
||||
|
||||
#ifdef TLS
|
||||
#define THREAD_LOCAL static TLS
|
||||
#else
|
||||
#define THREAD_LOCAL static
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) && defined(__NR_gettid) && defined(HAVE_JRAND48)
|
||||
#define DO_JRAND_MIX
|
||||
static unsigned short jrand_seed[3];
|
||||
THREAD_LOCAL unsigned short jrand_seed[3];
|
||||
#endif
|
||||
|
||||
static int get_random_fd(void)
|
||||
|
@ -247,22 +256,62 @@ static int get_node_id(unsigned char *node_id)
|
|||
/* Assume that the gettimeofday() has microsecond granularity */
|
||||
#define MAX_ADJUSTMENT 10
|
||||
|
||||
static int get_clock(uint32_t *clock_high, uint32_t *clock_low, uint16_t *ret_clock_seq)
|
||||
static int get_clock(uint32_t *clock_high, uint32_t *clock_low,
|
||||
uint16_t *ret_clock_seq, int *num)
|
||||
{
|
||||
static int adjustment = 0;
|
||||
static struct timeval last = {0, 0};
|
||||
static uint16_t clock_seq;
|
||||
THREAD_LOCAL int adjustment = 0;
|
||||
THREAD_LOCAL struct timeval last = {0, 0};
|
||||
THREAD_LOCAL int state_fd = -2;
|
||||
THREAD_LOCAL FILE *state_f;
|
||||
THREAD_LOCAL uint16_t clock_seq;
|
||||
struct timeval tv;
|
||||
unsigned long long clock_reg;
|
||||
|
||||
try_again:
|
||||
gettimeofday(&tv, 0);
|
||||
mode_t save_umask;
|
||||
|
||||
if (state_fd == -2) {
|
||||
save_umask = umask(0);
|
||||
state_fd = open("/var/lib/libuuid/clock.txt",
|
||||
O_RDWR|O_CREAT, 0660);
|
||||
(void) umask(save_umask);
|
||||
state_f = fdopen(state_fd, "r+");
|
||||
if (!state_f) {
|
||||
close(state_fd);
|
||||
state_fd = -1;
|
||||
}
|
||||
}
|
||||
if (state_fd >= 0) {
|
||||
rewind(state_f);
|
||||
while (lockf(state_fd, F_LOCK, 0) < 0) {
|
||||
if ((errno == EAGAIN) || (errno == EINTR))
|
||||
continue;
|
||||
fclose(state_f);
|
||||
close(state_fd);
|
||||
state_fd = -1;
|
||||
}
|
||||
}
|
||||
if (state_fd >= 0) {
|
||||
unsigned int cl;
|
||||
unsigned long tv1, tv2;
|
||||
int a;
|
||||
|
||||
if (fscanf(state_f, "clock: %04x tv: %lu %lu adj: %d\n",
|
||||
&cl, &tv1, &tv2, &a) == 4) {
|
||||
clock_seq = cl & 0x3FFF;
|
||||
last.tv_sec = tv1;
|
||||
last.tv_usec = tv2;
|
||||
adjustment = a;
|
||||
}
|
||||
}
|
||||
|
||||
if ((last.tv_sec == 0) && (last.tv_usec == 0)) {
|
||||
get_random_bytes(&clock_seq, sizeof(clock_seq));
|
||||
clock_seq &= 0x3FFF;
|
||||
last = tv;
|
||||
last.tv_sec--;
|
||||
}
|
||||
|
||||
try_again:
|
||||
gettimeofday(&tv, 0);
|
||||
if ((tv.tv_sec < last.tv_sec) ||
|
||||
((tv.tv_sec == last.tv_sec) &&
|
||||
(tv.tv_usec < last.tv_usec))) {
|
||||
|
@ -283,13 +332,124 @@ try_again:
|
|||
clock_reg += ((unsigned long long) tv.tv_sec)*10000000;
|
||||
clock_reg += (((unsigned long long) 0x01B21DD2) << 32) + 0x13814000;
|
||||
|
||||
if (num && (*num > 1)) {
|
||||
adjustment += *num - 1;
|
||||
last.tv_usec += adjustment / 10;
|
||||
adjustment = adjustment % 10;
|
||||
last.tv_sec += last.tv_usec / 1000000;
|
||||
last.tv_usec = last.tv_usec % 1000000;
|
||||
}
|
||||
|
||||
if (state_fd > 0) {
|
||||
rewind(state_f);
|
||||
ftruncate(state_fd, 0);
|
||||
fprintf(state_f, "clock: %04x tv: %lu %lu adj: %d\n",
|
||||
clock_seq, last.tv_sec, last.tv_usec, adjustment);
|
||||
fflush(state_f);
|
||||
rewind(state_f);
|
||||
lockf(state_fd, F_ULOCK, 0);
|
||||
}
|
||||
|
||||
*clock_high = clock_reg >> 32;
|
||||
*clock_low = clock_reg;
|
||||
*ret_clock_seq = clock_seq;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void uuid_generate_time(uuid_t out)
|
||||
static ssize_t read_all(int fd, char *buf, size_t count)
|
||||
{
|
||||
ssize_t ret;
|
||||
ssize_t c = 0;
|
||||
|
||||
memset(buf, 0, count);
|
||||
while (count > 0) {
|
||||
ret = read(fd, buf, count);
|
||||
if (ret < 0) {
|
||||
if ((errno == EAGAIN) || (errno == EINTR))
|
||||
continue;
|
||||
return -1;
|
||||
}
|
||||
count -= ret;
|
||||
buf += ret;
|
||||
c += ret;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Try using the uuidd daemon to generate the UUID
|
||||
*
|
||||
* Returns 0 on success, non-zero on failure.
|
||||
*/
|
||||
static int get_uuid_via_daemon(int op, uuid_t out, int *num)
|
||||
{
|
||||
char op_buf[64];
|
||||
int op_len;
|
||||
int s;
|
||||
ssize_t ret;
|
||||
int32_t reply_len = 0, expected = 16;
|
||||
struct sockaddr_un srv_addr;
|
||||
static const char *uuidd_path = UUIDD_PATH;
|
||||
static int access_ret = -2;
|
||||
|
||||
if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
|
||||
return -1;
|
||||
|
||||
srv_addr.sun_family = AF_UNIX;
|
||||
strcpy(srv_addr.sun_path, UUIDD_SOCKET_PATH);
|
||||
|
||||
if (connect(s, (const struct sockaddr *) &srv_addr,
|
||||
sizeof(struct sockaddr_un)) < 0) {
|
||||
if (access_ret == -2)
|
||||
access_ret = access(uuidd_path, X_OK);
|
||||
if (access_ret == 0) {
|
||||
if (fork() == 0) {
|
||||
execl(uuidd_path, "uuidd", "-qT", "300", 0);
|
||||
exit(1);
|
||||
}
|
||||
usleep(500);
|
||||
if (connect(s, (const struct sockaddr *) &srv_addr,
|
||||
sizeof(struct sockaddr_un)) < 0)
|
||||
goto fail;
|
||||
} else
|
||||
goto fail;
|
||||
}
|
||||
op_buf[0] = op;
|
||||
op_len = 1;
|
||||
if (op == UUIDD_OP_BULK_TIME_UUID) {
|
||||
memcpy(op_buf+1, num, sizeof(num));
|
||||
op_len += sizeof(num);
|
||||
expected += sizeof(num);
|
||||
}
|
||||
|
||||
ret = write(s, op_buf, op_len);
|
||||
if (ret < 1)
|
||||
goto fail;
|
||||
|
||||
ret = read_all(s, (char *) &reply_len, sizeof(reply_len));
|
||||
if (ret < 0)
|
||||
goto fail;
|
||||
|
||||
if (reply_len != expected)
|
||||
goto fail;
|
||||
|
||||
ret = read_all(s, op_buf, reply_len);
|
||||
|
||||
if (op == UUIDD_OP_BULK_TIME_UUID)
|
||||
memcpy(op_buf+16, num, sizeof(int));
|
||||
|
||||
memcpy(out, op_buf, 16);
|
||||
|
||||
close(s);
|
||||
return ((ret == expected) ? 0 : -1);
|
||||
|
||||
fail:
|
||||
close(s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
void uuid__generate_time(uuid_t out, int *num)
|
||||
{
|
||||
static unsigned char node_id[6];
|
||||
static int has_init = 0;
|
||||
|
@ -308,7 +468,7 @@ void uuid_generate_time(uuid_t out)
|
|||
}
|
||||
has_init = 1;
|
||||
}
|
||||
get_clock(&clock_mid, &uu.time_low, &uu.clock_seq);
|
||||
get_clock(&clock_mid, &uu.time_low, &uu.clock_seq, num);
|
||||
uu.clock_seq |= 0x8000;
|
||||
uu.time_mid = (uint16_t) clock_mid;
|
||||
uu.time_hi_and_version = ((clock_mid >> 16) & 0x0FFF) | 0x1000;
|
||||
|
@ -316,19 +476,82 @@ void uuid_generate_time(uuid_t out)
|
|||
uuid_pack(&uu, out);
|
||||
}
|
||||
|
||||
void uuid_generate_random(uuid_t out)
|
||||
void uuid_generate_time(uuid_t out)
|
||||
{
|
||||
#ifdef TLS
|
||||
THREAD_LOCAL int num = 0;
|
||||
THREAD_LOCAL struct uuid uu;
|
||||
THREAD_LOCAL time_t last_time = 0;
|
||||
time_t now;
|
||||
|
||||
if (num > 0) {
|
||||
now = time(0);
|
||||
if (now > last_time+1)
|
||||
num = 0;
|
||||
}
|
||||
if (num <= 0) {
|
||||
num = 1000;
|
||||
if (get_uuid_via_daemon(UUIDD_OP_BULK_TIME_UUID,
|
||||
out, &num) == 0) {
|
||||
last_time = time(0);
|
||||
uuid_unpack(out, &uu);
|
||||
num--;
|
||||
return;
|
||||
}
|
||||
num = 0;
|
||||
}
|
||||
if (num > 0) {
|
||||
uu.time_low++;
|
||||
if (uu.time_low == 0) {
|
||||
uu.time_mid++;
|
||||
if (uu.time_mid == 0)
|
||||
uu.time_hi_and_version++;
|
||||
}
|
||||
num--;
|
||||
uuid_pack(&uu, out);
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (get_uuid_via_daemon(UUIDD_OP_TIME_UUID, out, 0) == 0)
|
||||
return;
|
||||
#endif
|
||||
|
||||
uuid__generate_time(out, 0);
|
||||
}
|
||||
|
||||
|
||||
void uuid__generate_random(uuid_t out, int *num)
|
||||
{
|
||||
uuid_t buf;
|
||||
struct uuid uu;
|
||||
int i, n;
|
||||
|
||||
get_random_bytes(buf, sizeof(buf));
|
||||
uuid_unpack(buf, &uu);
|
||||
if (!num || !*num)
|
||||
n = 1;
|
||||
else
|
||||
n = *num;
|
||||
|
||||
uu.clock_seq = (uu.clock_seq & 0x3FFF) | 0x8000;
|
||||
uu.time_hi_and_version = (uu.time_hi_and_version & 0x0FFF) | 0x4000;
|
||||
uuid_pack(&uu, out);
|
||||
for (i = 0; i < n; i++) {
|
||||
get_random_bytes(buf, sizeof(buf));
|
||||
uuid_unpack(buf, &uu);
|
||||
|
||||
uu.clock_seq = (uu.clock_seq & 0x3FFF) | 0x8000;
|
||||
uu.time_hi_and_version = (uu.time_hi_and_version & 0x0FFF)
|
||||
| 0x4000;
|
||||
uuid_pack(&uu, out);
|
||||
out += sizeof(uuid_t);
|
||||
}
|
||||
}
|
||||
|
||||
void uuid_generate_random(uuid_t out)
|
||||
{
|
||||
int num = 1;
|
||||
/* No real reason to use the daemon for random uuid's -- yet */
|
||||
|
||||
uuid__generate_random(out, &num);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This is the generic front-end to uuid_generate_random and
|
||||
* uuid_generate_time. It uses uuid_generate_random only if
|
||||
|
|
|
@ -46,8 +46,8 @@ The
|
|||
function converts the supplied UUID
|
||||
.I uu
|
||||
from the binary representation into a 36\-byte string (plus tailing '\\0')
|
||||
of the form 1b4e28ba\-2fa1\-11d2\-883f\-b9a76 and stores this value in the
|
||||
character string pointed to by
|
||||
of the form 1b4e28ba\-2fa1\-11d2\-883f\-0016d3cca427 and stores this
|
||||
value in the character string pointed to by
|
||||
.IR out .
|
||||
The case of the hex digits returned by
|
||||
.B uuid_unparse
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* Definitions used by the uuidd daemon
|
||||
*
|
||||
* Copyright (C) 2007 Theodore Ts'o.
|
||||
*
|
||||
* %Begin-Header%
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, and the entire permission notice in its entirety,
|
||||
* including the disclaimer of warranties.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior
|
||||
* written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
|
||||
* WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
* USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
* %End-Header%
|
||||
*/
|
||||
|
||||
#ifndef _UUID_UUIDD_H
|
||||
#define _UUID_UUIDD_H
|
||||
|
||||
#define UUIDD_SOCKET_PATH "/var/run/uuidd/request"
|
||||
#define UUIDD_PIDFILE_PATH "/var/run/uuidd/uuidd.pid"
|
||||
#define UUIDD_PATH "/usr/sbin/uuidd"
|
||||
|
||||
#define UUIDD_OP_GETPID 0
|
||||
#define UUIDD_OP_GET_MAXOP 1
|
||||
#define UUIDD_OP_TIME_UUID 2
|
||||
#define UUIDD_OP_RANDOM_UUID 3
|
||||
#define UUIDD_OP_BULK_TIME_UUID 4
|
||||
#define UUIDD_OP_BULK_RANDOM_UUID 5
|
||||
#define UUIDD_MAX_OP UUIDD_OP_BULK_RANDOM_UUID
|
||||
|
||||
extern void uuid__generate_time(uuid_t out, int *num);
|
||||
extern void uuid__generate_random(uuid_t out, int *num);
|
||||
|
||||
#endif /* _UUID_UUID_H */
|
|
@ -15,11 +15,11 @@ INSTALL = @INSTALL@
|
|||
@IMAGER_CMT@E2IMAGE_MAN= e2image.8
|
||||
|
||||
SPROGS= mke2fs badblocks tune2fs dumpe2fs blkid logsave \
|
||||
$(E2IMAGE_PROG) @FSCK_PROG@
|
||||
USPROGS= mklost+found filefrag
|
||||
$(E2IMAGE_PROG) @FSCK_PROG@
|
||||
USPROGS= mklost+found filefrag uuidd
|
||||
SMANPAGES= tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
|
||||
e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
|
||||
logsave.8 filefrag.8 @FSCK_MAN@
|
||||
logsave.8 filefrag.8 uuidd.8 @FSCK_MAN@
|
||||
FMANPAGES= mke2fs.conf.5
|
||||
|
||||
UPROGS= chattr lsattr uuidgen
|
||||
|
@ -33,6 +33,7 @@ MKE2FS_OBJS= mke2fs.o util.o profile.o prof_err.o default_profile.o
|
|||
CHATTR_OBJS= chattr.o
|
||||
LSATTR_OBJS= lsattr.o
|
||||
UUIDGEN_OBJS= uuidgen.o
|
||||
UUIDD_OBJS= uuidd.o
|
||||
DUMPE2FS_OBJS= dumpe2fs.o
|
||||
BADBLOCKS_OBJS= badblocks.o
|
||||
E2IMAGE_OBJS= e2image.o
|
||||
|
@ -144,6 +145,10 @@ uuidgen: $(UUIDGEN_OBJS) $(DEPLIBUUID)
|
|||
@echo " LD $@"
|
||||
@$(CC) $(ALL_LDFLAGS) -o uuidgen $(UUIDGEN_OBJS) $(LIBUUID) $(LIBINTL)
|
||||
|
||||
uuidd: $(UUIDD_OBJS) $(DEPLIBUUID)
|
||||
@echo " LD $@"
|
||||
@$(CC) $(ALL_LDFLAGS) -o uuidd $(UUIDD_OBJS) $(LIBUUID) $(LIBINTL)
|
||||
|
||||
dumpe2fs: $(DUMPE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBUUID)
|
||||
@echo " LD $@"
|
||||
@$(CC) $(ALL_LDFLAGS) -o dumpe2fs $(DUMPE2FS_OBJS) $(LIBS) \
|
||||
|
@ -213,6 +218,10 @@ logsave.8: $(DEP_SUBSTITUTE) $(srcdir)/logsave.8.in
|
|||
@echo " SUBST $@"
|
||||
@$(SUBSTITUTE_UPTIME) $(srcdir)/logsave.8.in logsave.8
|
||||
|
||||
uuidd.8: $(DEP_SUBSTITUTE) $(srcdir)/uuidd.8.in
|
||||
@echo " SUBST $@"
|
||||
@$(SUBSTITUTE_UPTIME) $(srcdir)/uuidd.8.in uuidd.8
|
||||
|
||||
chattr.1: $(DEP_SUBSTITUTE) $(srcdir)/chattr.1.in
|
||||
@echo " SUBST $@"
|
||||
@$(SUBSTITUTE_UPTIME) $(srcdir)/chattr.1.in chattr.1
|
||||
|
@ -239,7 +248,8 @@ installdirs:
|
|||
$(DESTDIR)$(root_sbindir) $(DESTDIR)$(bindir) \
|
||||
$(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir) \
|
||||
$(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) \
|
||||
$(DESTDIR)$(libdir) $(DESTDIR)/$(root_sysconfdir)
|
||||
$(DESTDIR)$(libdir) $(DESTDIR)/$(root_sysconfdir) \
|
||||
$(DESTDIR)/etc/init.d
|
||||
|
||||
install: all $(SMANPAGES) $(UMANPAGES) installdirs
|
||||
@for i in $(SPROGS); do \
|
||||
|
|
44
misc/blkid.c
44
misc/blkid.c
|
@ -53,6 +53,31 @@ static void usage(int error)
|
|||
exit(error);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function does "safe" printing. It will convert non-printable
|
||||
* ASCII characters using '^' and M- notation.
|
||||
*/
|
||||
static void safe_print(const char *cp, int len)
|
||||
{
|
||||
unsigned char ch;
|
||||
|
||||
if (len < 0)
|
||||
len = strlen(cp);
|
||||
|
||||
while (len--) {
|
||||
ch = *cp++;
|
||||
if (ch > 128) {
|
||||
fputs("M-", stdout);
|
||||
ch -= 128;
|
||||
}
|
||||
if ((ch < 32) || (ch == 0x7f)) {
|
||||
fputc('^', stdout);
|
||||
ch ^= 0x40; /* ^@, ^A, ^B; ^? for DEL */
|
||||
}
|
||||
fputc(ch, stdout);
|
||||
}
|
||||
}
|
||||
|
||||
static void print_tags(blkid_dev dev, char *show[], int numtag, int output)
|
||||
{
|
||||
blkid_tag_iterate iter;
|
||||
|
@ -76,14 +101,19 @@ static void print_tags(blkid_dev dev, char *show[], int numtag, int output)
|
|||
if (i >= numtag)
|
||||
continue;
|
||||
}
|
||||
if (first && !(output & OUTPUT_VALUE_ONLY)) {
|
||||
printf("%s: ", blkid_dev_devname(dev));
|
||||
first = 0;
|
||||
if (output & OUTPUT_VALUE_ONLY) {
|
||||
fputs(value, stdout);
|
||||
fputc('\n', stdout);
|
||||
} else {
|
||||
if (first) {
|
||||
printf("%s: ", blkid_dev_devname(dev));
|
||||
first = 0;
|
||||
}
|
||||
fputs(type, stdout);
|
||||
fputs("=\"", stdout);
|
||||
safe_print(value, -1);
|
||||
fputs("\" ", stdout);
|
||||
}
|
||||
if ((output & OUTPUT_VALUE_ONLY))
|
||||
printf("%s\n", value);
|
||||
else
|
||||
printf("%s=\"%s\" ", type, value);
|
||||
}
|
||||
blkid_tag_iterate_end(iter);
|
||||
|
||||
|
|
|
@ -275,20 +275,17 @@ static int parse_fstab_line(char *line, struct fs_info **ret_fs)
|
|||
|
||||
*ret_fs = 0;
|
||||
strip_line(line);
|
||||
if ((cp = strchr(line, '#')))
|
||||
*cp = 0; /* Ignore everything after the comment char */
|
||||
cp = line;
|
||||
|
||||
device = parse_word(&cp);
|
||||
if (!device || *device == '#')
|
||||
return 0; /* Ignore blank lines and comments */
|
||||
mntpnt = parse_word(&cp);
|
||||
type = parse_word(&cp);
|
||||
opts = parse_word(&cp);
|
||||
freq = parse_word(&cp);
|
||||
passno = parse_word(&cp);
|
||||
|
||||
if (!device)
|
||||
return 0; /* Allow blank lines */
|
||||
|
||||
if (!mntpnt || !type)
|
||||
return -1;
|
||||
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
.\" -*- nroff -*-
|
||||
.\" Copyright 2007 by Theodore Ts'o. All Rights Reserved.
|
||||
.\" This file may be copied under the terms of the GNU Public License.
|
||||
.\"
|
||||
.TH UUIDD 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
|
||||
.SH NAME
|
||||
uuidd \- UUID generation daemon
|
||||
.SH SYNOPSIS
|
||||
.B uuidd
|
||||
[
|
||||
.B \-d
|
||||
]
|
||||
[
|
||||
.B \-p
|
||||
.I pidfile
|
||||
]
|
||||
[
|
||||
.B \-s
|
||||
.I socketpath
|
||||
]
|
||||
[
|
||||
.B \-T
|
||||
.I timeout
|
||||
]
|
||||
|
||||
.B uuidd
|
||||
[
|
||||
.B \-r
|
||||
|
|
||||
.B \-t
|
||||
]
|
||||
[
|
||||
.B \-n
|
||||
.I number
|
||||
]
|
||||
[
|
||||
.B \-s
|
||||
.I socketpath
|
||||
]
|
||||
|
||||
.B uuidd \-k
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B uuidd
|
||||
daemon is used by the UUID library to generate
|
||||
universally unique identifiers (UUIDs), especially time-based UUID's
|
||||
in a secure and guaranteed-unique fashion, even in the face of large
|
||||
numbers of threads trying to grab UUID's running on different CPU's.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-d
|
||||
Run
|
||||
.B uuidd
|
||||
in debugging mode. This prevents uuidd from running as a daemon.
|
||||
.TP
|
||||
.B \-k
|
||||
If a currently uuidd daemon is running, kill it.
|
||||
.TP
|
||||
.BI \-n " number"
|
||||
When issuing a test request to a running uuidd, request a bulk response
|
||||
of
|
||||
.I number
|
||||
UUID's.
|
||||
.TP
|
||||
.BI \-p " pidfile"
|
||||
Specify the pathname where the pid file should be written. By default,
|
||||
the pid file is written to /var/run/uuidd.pid.
|
||||
.TP
|
||||
.BI \-s " socketpath"
|
||||
Specify the pathname used for the unix-domain socket used by uuidd. By
|
||||
qdefault, the pathname used is /var/run/uuidd.sock. This is primarily
|
||||
for debugging purposes, since the pathname is hard-coded in the libuuid
|
||||
library.
|
||||
.TP
|
||||
.B \-r
|
||||
Test uuidd by trying to connect to a running uuidd daemon and
|
||||
request it to return a random-based UUID.
|
||||
.TP
|
||||
.B \-t
|
||||
Test uuidd by trying to connect to a running uuidd daemon and
|
||||
request it to return a time-based UUID.
|
||||
.TP
|
||||
.BI \-T " timeout"
|
||||
Specify a timeout for uuidd. If specified, then uuidd will exit after
|
||||
.I timeout
|
||||
seconds of inactivity.
|
||||
.SH AUTHOR
|
||||
The
|
||||
.B uuidd
|
||||
daemon was written by Theodore Ts'o <tytso@mit.edu>.
|
||||
.SH AVAILABILITY
|
||||
.B uuidd
|
||||
is part of libuuid from the e2fsprogs package and is available from
|
||||
http://e2fsprogs.sourceforge.net.
|
||||
.SH "SEE ALSO"
|
||||
.BR libuuid (3),
|
||||
.BR uuidgen (1)
|
|
@ -0,0 +1,518 @@
|
|||
/*
|
||||
* uuidd.c --- UUID-generation daemon
|
||||
*
|
||||
* Copyright (C) 2007 Theodore Ts'o
|
||||
*
|
||||
* %Begin-Header%
|
||||
* This file may be redistributed under the terms of the GNU Public
|
||||
* License.
|
||||
* %End-Header%
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#else
|
||||
extern int getopt(int argc, char * const argv[], const char *optstring);
|
||||
extern char *optarg;
|
||||
extern int optind;
|
||||
#endif
|
||||
#include "uuid/uuid.h"
|
||||
#include "uuid/uuidd.h"
|
||||
#include "nls-enable.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define CODE_ATTR(x) __attribute__(x)
|
||||
#else
|
||||
#define CODE_ATTR(x)
|
||||
#endif
|
||||
|
||||
static void usage(const char *progname)
|
||||
{
|
||||
fprintf(stderr, _("Usage: %s [-d] [-p pidfile] [-s socketpath] "
|
||||
"[-T timeout]\n"), progname);
|
||||
fprintf(stderr, _(" %s [-r|t] [-n num] [-s socketpath]\n"),
|
||||
progname);
|
||||
fprintf(stderr, _(" %s -k\n"), progname);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static void create_daemon(const char *pidfile_path)
|
||||
{
|
||||
pid_t pid;
|
||||
uid_t euid;
|
||||
FILE *f;
|
||||
|
||||
pid = fork();
|
||||
if (pid == -1) {
|
||||
perror("fork");
|
||||
exit(1);
|
||||
} else if (pid != 0) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
close(0);
|
||||
close(1);
|
||||
close(2);
|
||||
open("/dev/null", O_RDWR);
|
||||
open("/dev/null", O_RDWR);
|
||||
open("/dev/null", O_RDWR);
|
||||
|
||||
chdir("/");
|
||||
(void) setsid();
|
||||
euid = geteuid();
|
||||
(void) setreuid(euid, euid);
|
||||
|
||||
f = fopen(pidfile_path, "w");
|
||||
if (f) {
|
||||
fprintf(f, "%d\n", getpid());
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
||||
static int read_all(int fd, char *buf, size_t count)
|
||||
{
|
||||
ssize_t ret;
|
||||
int c = 0;
|
||||
|
||||
memset(buf, 0, count);
|
||||
while (count > 0) {
|
||||
ret = read(fd, buf, count);
|
||||
if (ret < 0) {
|
||||
if ((errno == EAGAIN) || (errno == EINTR))
|
||||
continue;
|
||||
return -1;
|
||||
}
|
||||
count -= ret;
|
||||
buf += ret;
|
||||
c += ret;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
static const char *cleanup_pidfile, *cleanup_socket;
|
||||
|
||||
static void terminate_intr(int signo CODE_ATTR((unused)))
|
||||
{
|
||||
(void) unlink(cleanup_pidfile);
|
||||
(void) unlink(cleanup_socket);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static void server_loop(const char *socket_path, int debug,
|
||||
const char *pidfile_path,
|
||||
int timeout, int quiet)
|
||||
{
|
||||
struct sockaddr_un my_addr, from_addr;
|
||||
unsigned char reply_buf[1024], *cp;
|
||||
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;
|
||||
|
||||
if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
|
||||
if (!quiet)
|
||||
fprintf(stderr, _("Couldn't create unix stream "
|
||||
"socket: %s"), strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Create the address we will be binding to.
|
||||
*/
|
||||
my_addr.sun_family = AF_UNIX;
|
||||
strcpy(my_addr.sun_path, socket_path);
|
||||
(void) unlink(socket_path);
|
||||
save_umask = umask(0);
|
||||
if (bind(s, (const struct sockaddr *) &my_addr,
|
||||
sizeof(struct sockaddr_un)) < 0) {
|
||||
if (!quiet)
|
||||
fprintf(stderr,
|
||||
_("Couldn't bind unix socket %s: %s\n"),
|
||||
socket_path, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
(void) umask(save_umask);
|
||||
|
||||
if (listen(s, 5) < 0) {
|
||||
if (!quiet)
|
||||
fprintf(stderr, _("Couldn't listen on unix "
|
||||
"socket %s: %s\n"), socket_path,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!debug) {
|
||||
create_daemon(pidfile_path);
|
||||
cleanup_pidfile = pidfile_path;
|
||||
cleanup_socket = socket_path;
|
||||
signal(SIGHUP, terminate_intr);
|
||||
signal(SIGINT, terminate_intr);
|
||||
signal(SIGPIPE, terminate_intr);
|
||||
signal(SIGTERM, terminate_intr);
|
||||
signal(SIGALRM, terminate_intr);
|
||||
}
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
|
||||
while (1) {
|
||||
fromlen = sizeof(from_addr);
|
||||
if (timeout > 0)
|
||||
alarm(timeout);
|
||||
ns = accept(s, (struct sockaddr *) &from_addr, &fromlen);
|
||||
alarm(0);
|
||||
if (ns < 0) {
|
||||
if ((errno == EAGAIN) || (errno == EINTR))
|
||||
continue;
|
||||
perror("accept");
|
||||
exit(1);
|
||||
}
|
||||
len = read(ns, &op, 1);
|
||||
if (len != 1) {
|
||||
if (len < 0)
|
||||
perror("read");
|
||||
else
|
||||
printf(_("Error reading from client, "
|
||||
"len = %d\n"), len);
|
||||
goto shutdown_socket;
|
||||
}
|
||||
if ((op == 4) || (op == 5)) {
|
||||
if (read_all(ns, (char *) &num, sizeof(num)) != 4)
|
||||
goto shutdown_socket;
|
||||
if (debug)
|
||||
printf(_("operation %d, incoming num = %d\n"),
|
||||
op, num);
|
||||
} else if (debug)
|
||||
printf("operation %d\n", op);
|
||||
|
||||
switch(op) {
|
||||
case UUIDD_OP_GETPID:
|
||||
sprintf((char *) reply_buf, "%d", getpid());
|
||||
reply_len = strlen((char *) reply_buf)+1;
|
||||
break;
|
||||
case UUIDD_OP_GET_MAXOP:
|
||||
sprintf((char *) reply_buf, "%d", UUIDD_MAX_OP);
|
||||
reply_len = strlen((char *) reply_buf)+1;
|
||||
break;
|
||||
case UUIDD_OP_TIME_UUID:
|
||||
num = 1;
|
||||
uuid__generate_time(uu, &num);
|
||||
if (debug) {
|
||||
uuid_unparse(uu, str);
|
||||
printf(_("Generated time UUID: %s\n"), str);
|
||||
}
|
||||
memcpy(reply_buf, uu, sizeof(uu));
|
||||
reply_len = sizeof(uu);
|
||||
break;
|
||||
case UUIDD_OP_RANDOM_UUID:
|
||||
num = 1;
|
||||
uuid__generate_random(uu, &num);
|
||||
if (debug) {
|
||||
uuid_unparse(uu, str);
|
||||
printf(_("Generated random UUID: %s\n"), str);
|
||||
}
|
||||
memcpy(reply_buf, uu, sizeof(uu));
|
||||
reply_len = sizeof(uu);
|
||||
break;
|
||||
case UUIDD_OP_BULK_TIME_UUID:
|
||||
uuid__generate_time(uu, &num);
|
||||
if (debug) {
|
||||
uuid_unparse(uu, str);
|
||||
printf(_("Generated time UUID %s and %d "
|
||||
"following\n"), str, num);
|
||||
}
|
||||
memcpy(reply_buf, uu, sizeof(uu));
|
||||
reply_len = sizeof(uu);
|
||||
memcpy(reply_buf+reply_len, &num, sizeof(num));
|
||||
reply_len += sizeof(num);
|
||||
break;
|
||||
case UUIDD_OP_BULK_RANDOM_UUID:
|
||||
if (num < 0)
|
||||
num = 1;
|
||||
if (num > 1000)
|
||||
num = 1000;
|
||||
if (num*16 > (int) (sizeof(reply_buf)-sizeof(num)))
|
||||
num = (sizeof(reply_buf)-sizeof(num)) / 16;
|
||||
uuid__generate_random(reply_buf+sizeof(num), &num);
|
||||
if (debug) {
|
||||
printf(_("Generated %d UUID's:\n"), num);
|
||||
for (i=0, cp=reply_buf+sizeof(num);
|
||||
i < num; i++, cp+=16) {
|
||||
uuid_unparse(cp, str);
|
||||
printf("\t%s\n", str);
|
||||
}
|
||||
}
|
||||
reply_len = (num*16) + sizeof(num);
|
||||
memcpy(reply_buf, &num, sizeof(num));
|
||||
break;
|
||||
default:
|
||||
if (debug)
|
||||
printf(_("Invalid operation %d\n"), op);
|
||||
goto shutdown_socket;
|
||||
}
|
||||
write(ns, &reply_len, sizeof(reply_len));
|
||||
write(ns, reply_buf, reply_len);
|
||||
shutdown_socket:
|
||||
close(ns);
|
||||
}
|
||||
}
|
||||
|
||||
static int call_daemon(const char *socket_path, int op, unsigned 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;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
const char *socket_path = UUIDD_SOCKET_PATH;
|
||||
const char *pidfile_path = UUIDD_PIDFILE_PATH;
|
||||
const char *err_context;
|
||||
unsigned char buf[1024], *cp;
|
||||
char str[37], *tmp;
|
||||
uuid_t uu;
|
||||
uid_t uid;
|
||||
gid_t gid;
|
||||
int i, c, ret;
|
||||
int debug = 0, do_type = 0, do_kill = 0, num = 0;
|
||||
int timeout = 0, quiet = 0, drop_privs = 0;
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
setlocale(LC_MESSAGES, "");
|
||||
setlocale(LC_CTYPE, "");
|
||||
bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
|
||||
textdomain(NLS_CAT_NAME);
|
||||
#endif
|
||||
|
||||
while ((c = getopt (argc, argv, "dkn:qp:s:tT:r")) != EOF) {
|
||||
switch (c) {
|
||||
case 'd':
|
||||
debug++;
|
||||
drop_privs++;
|
||||
break;
|
||||
case 'k':
|
||||
do_kill++;
|
||||
drop_privs++;
|
||||
break;
|
||||
case 'n':
|
||||
num = strtol(optarg, &tmp, 0);
|
||||
if ((num < 0) || *tmp) {
|
||||
fprintf(stderr, _("Bad number: %s\n"), optarg);
|
||||
exit(1);
|
||||
}
|
||||
case 'p':
|
||||
pidfile_path = optarg;
|
||||
drop_privs++;
|
||||
break;
|
||||
case 'q':
|
||||
quiet++;
|
||||
break;
|
||||
case 's':
|
||||
socket_path = optarg;
|
||||
drop_privs++;
|
||||
break;
|
||||
case 't':
|
||||
do_type = UUIDD_OP_TIME_UUID;
|
||||
drop_privs++;
|
||||
break;
|
||||
case 'T':
|
||||
timeout = strtol(optarg, &tmp, 0);
|
||||
if ((timeout < 0) || *tmp) {
|
||||
fprintf(stderr, _("Bad number: %s\n"), optarg);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
case 'r':
|
||||
do_type = UUIDD_OP_RANDOM_UUID;
|
||||
drop_privs++;
|
||||
break;
|
||||
default:
|
||||
usage(argv[0]);
|
||||
}
|
||||
}
|
||||
uid = getuid();
|
||||
if (uid && drop_privs) {
|
||||
gid = getgid();
|
||||
#ifdef HAVE_SETRESUID
|
||||
setresuid(uid, uid, uid);
|
||||
#else
|
||||
setreuid(uid, uid);
|
||||
#endif
|
||||
#ifdef HAVE_SETRESGID
|
||||
setresgid(gid, gid, gid);
|
||||
#else
|
||||
setregid(gid, gid);
|
||||
#endif
|
||||
}
|
||||
if (num && do_type) {
|
||||
ret = call_daemon(socket_path, do_type+2, buf,
|
||||
sizeof(buf), &num, &err_context);
|
||||
if (ret < 0) {
|
||||
printf(_("Error calling uuidd daemon (%s): %s\n"),
|
||||
err_context, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
if (do_type == UUIDD_OP_TIME_UUID) {
|
||||
if (ret != sizeof(uu) + sizeof(num))
|
||||
goto unexpected_size;
|
||||
|
||||
uuid_unparse(buf, str);
|
||||
|
||||
printf(_("%s and subsequent %d UUID's\n"), str, num);
|
||||
} else {
|
||||
printf(_("List of UUID's:\n"));
|
||||
cp = buf + 4;
|
||||
if (ret != sizeof(num) + num*sizeof(uu))
|
||||
goto unexpected_size;
|
||||
for (i=0; i < num; i++, cp+=16) {
|
||||
uuid_unparse(cp, str);
|
||||
printf("\t%s\n", str);
|
||||
}
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
if (do_type) {
|
||||
ret = call_daemon(socket_path, do_type, (unsigned char *) &uu,
|
||||
sizeof(uu), 0, &err_context);
|
||||
if (ret < 0) {
|
||||
printf(_("Error calling uuidd daemon (%s): %s\n"),
|
||||
err_context, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
if (ret != sizeof(uu)) {
|
||||
unexpected_size:
|
||||
printf(_("Unexpected reply length from server %d\n"),
|
||||
ret);
|
||||
exit(1);
|
||||
}
|
||||
uuid_unparse(uu, str);
|
||||
|
||||
printf("%s\n", str);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check to make sure there isn't another daemon running already
|
||||
*/
|
||||
ret = call_daemon(socket_path, 0, buf, sizeof(buf), 0, 0);
|
||||
if (ret > 0) {
|
||||
if (do_kill && ((do_kill = atoi((char *) buf)) > 0)) {
|
||||
ret = kill(do_kill, SIGTERM);
|
||||
if (ret < 0) {
|
||||
if (!quiet)
|
||||
fprintf(stderr,
|
||||
_("Couldn't kill uuidd running "
|
||||
"at pid %d: %s\n"), do_kill,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
if (!quiet)
|
||||
printf(_("Killed uuidd running at pid %d\n"),
|
||||
do_kill);
|
||||
exit(0);
|
||||
}
|
||||
if (!quiet)
|
||||
printf(_("uuidd daemon already running at pid %s\n"),
|
||||
buf);
|
||||
exit(1);
|
||||
}
|
||||
if (do_kill)
|
||||
exit(0); /* Nothing to kill */
|
||||
|
||||
server_loop(socket_path, debug, pidfile_path, timeout, quiet);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
#! /bin/sh -e
|
||||
### BEGIN INIT INFO
|
||||
# Provides: uuidd
|
||||
# Required-Start: $time $local_fs
|
||||
# Required-Stop: $time $local_fs
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: uuidd daemon
|
||||
# Description: Init script for the uuid generation daemon
|
||||
### END INIT INFO
|
||||
#
|
||||
# Author: "Theodore Ts'o" <tytso@mit.edu>
|
||||
#
|
||||
set -e
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
DAEMON=/usr/sbin/uuidd
|
||||
PIDFILE=/var/run/uuidd/uuidd.pid
|
||||
|
||||
test -x $DAEMON || exit 0
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
log_daemon_msg "Starting uuid generator" "uuidd"
|
||||
start_daemon -p $PIDFILE $DAEMON
|
||||
log_end_msg $?
|
||||
;;
|
||||
stop)
|
||||
log_daemon_msg "Stopping uuidd generator" "uuidd"
|
||||
killproc -p $PIDFILE $DAEMON
|
||||
log_end_msg $?
|
||||
;;
|
||||
status)
|
||||
if pidofproc -p $PIDFILE $DAEMON >& /dev/null ; then
|
||||
echo "$DAEMON is running";
|
||||
exit 0;
|
||||
else
|
||||
echo "$DAEMON is NOT running";
|
||||
if test -f /var/run/uuidd.pid; then exit 2; fi
|
||||
exit 3;
|
||||
fi
|
||||
;;
|
||||
force-reload|restart)
|
||||
$0 stop
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/uuidd {start|stop|restart|force-reload}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
|
@ -1 +1 @@
|
|||
ca cs de es fr it nl pl rw sv tr vi
|
||||
ca cs de es fr it nl pl sv tr vi
|
||||
|
|
258
po/nl.po
258
po/nl.po
|
@ -1,4 +1,4 @@
|
|||
# Translation of e2fsprogs-1.40.1 to Dutch.
|
||||
# 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.
|
||||
#
|
||||
|
@ -62,10 +62,10 @@
|
|||
#.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: e2fsprogs 1.40.1\n"
|
||||
"Project-Id-Version: e2fsprogs-1.40.3\n"
|
||||
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
|
||||
"POT-Creation-Date: 2007-12-05 19:25-0500\n"
|
||||
"PO-Revision-Date: 2007-08-14 11:12+0200\n"
|
||||
"PO-Revision-Date: 2007-12-11 16:54+0100\n"
|
||||
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
|
||||
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -112,8 +112,7 @@ msgstr "tijdens bijwerken van de inode van een slecht blok"
|
|||
#: 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
|
||||
|
@ -179,8 +178,7 @@ msgstr "Gebruik: %s schijfnaam\n"
|
|||
#: 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
|
||||
|
@ -534,7 +532,7 @@ msgstr "Stap 2"
|
|||
|
||||
#: e2fsck/pass3.c:79
|
||||
msgid "inode done bitmap"
|
||||
msgstr "bitkaart van affe inodes"
|
||||
msgstr "bitkaart van behandelde inodes"
|
||||
|
||||
#: e2fsck/pass3.c:90
|
||||
msgid "Peak memory"
|
||||
|
@ -880,15 +878,12 @@ msgstr "Het externe journal ondersteunt dit bestandssysteem niet.\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 ""
|
||||
"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
|
||||
|
@ -899,8 +894,7 @@ msgstr "Het superblok van het ext3-journal is beschadigd.\n"
|
|||
#: 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
|
||||
|
@ -964,14 +958,12 @@ msgstr "Bestandssysteem is een versie 0, maar heeft functievlag(gen) gezet. "
|
|||
#. @-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
|
||||
|
@ -1036,8 +1028,7 @@ msgstr ""
|
|||
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
|
||||
#: e2fsck/problem.c:327
|
||||
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
|
||||
msgstr ""
|
||||
"'Resize_inode'-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
|
||||
|
@ -1083,9 +1074,7 @@ msgstr "De root-inode is geen map. "
|
|||
#. @-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
|
||||
|
@ -1113,14 +1102,12 @@ msgstr "Inode %i is een map met lengte nul. "
|
|||
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1187,9 +1174,7 @@ msgstr "Een dubbel of slecht blok is in gebruik!\n"
|
|||
#. @-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
|
||||
|
@ -1215,8 +1200,7 @@ msgid ""
|
|||
"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
|
||||
|
@ -1239,8 +1223,7 @@ msgstr "Het primaire superblok (%b) staat in de lijst van slechte blokken.\n"
|
|||
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1250,21 +1233,17 @@ msgstr "Waarschuwing: groep %g heeft een slecht superblok (%b).\n"
|
|||
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1336,9 +1315,7 @@ msgstr "Fout tijdens opslaan van inodetal (inode=%i, aantal=%N): %m\n"
|
|||
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1367,9 +1344,7 @@ msgstr ""
|
|||
#: 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
|
||||
|
@ -1396,9 +1371,7 @@ msgstr "Inode %i was deel van de lijst van verweesde inodes. "
|
|||
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1408,8 +1381,7 @@ msgstr "Fout tijdens reserveren van 'refcount'-structuur (%N): %m\n"
|
|||
#. @-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
|
||||
|
@ -1424,9 +1396,7 @@ msgstr "Fout tijdens lezen van blok %b met uitgebreide kenmerken: %m "
|
|||
#. @-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
|
||||
|
@ -1446,8 +1416,7 @@ msgstr "Fout tijdens reserveren van blok %b met uitgebreide kenmerken. "
|
|||
#. @-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
|
||||
|
@ -1484,9 +1453,7 @@ msgstr "Blok #%B (%b) maakt symbolische koppeling te groot. "
|
|||
#: 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
|
||||
|
@ -1503,8 +1470,7 @@ msgstr "Inode %i van 'htree'-map heeft een ongeldige wortelnode.\n"
|
|||
#. @-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
|
||||
|
@ -1541,40 +1507,32 @@ msgstr "Inode %i heeft een ongeldige extra grootte (%IS).\n"
|
|||
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1616,15 +1574,12 @@ msgstr "Fout tijdens langslopen van blokken van inode %i (%s): %m\n"
|
|||
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1913,9 +1868,7 @@ msgstr "Blok van uitgebreide kenmerken @F is ongeldig (%If).\n"
|
|||
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -1930,14 +1883,12 @@ msgstr "Probleem in 'htree'-map %d: naar node %B wordt twee keer verwezen.\n"
|
|||
#. @-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
|
||||
|
@ -1968,8 +1919,7 @@ msgstr "Probleem in 'htree'-map %d: node %B heeft een ongeldig aantal (%N).\n"
|
|||
#. @-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
|
||||
|
@ -2044,8 +1994,7 @@ msgstr "'..' in %Q (%i) is %P (%j), moet %q (%d) zijn.\n"
|
|||
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
|
||||
#: e2fsck/problem.c: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
|
||||
|
@ -2086,8 +2035,7 @@ msgstr "ext2fs_new_dir_block(): %m tijdens maken van nieuw mapblok\n"
|
|||
#: 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
|
||||
|
@ -2114,8 +2062,7 @@ msgid ""
|
|||
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Kan ouderverwijzing van inode %i niet herstellen: kan de oudermap niet "
|
||||
"vinden.\n"
|
||||
"Kan ouderverwijzing van inode %i niet herstellen: kan de oudermap niet vinden.\n"
|
||||
"\n"
|
||||
|
||||
#. @-expanded: Error creating root directory (%s): %m\n
|
||||
|
@ -2252,12 +2199,8 @@ msgstr "Verkeerd aantal blokken (%b, geteld=%c).\n"
|
|||
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
|
||||
#. @-expanded: endpoints (%i, %j)\n
|
||||
#: e2fsck/problem.c: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"
|
||||
|
@ -2385,8 +2328,7 @@ msgid ""
|
|||
" -p Automatic repair (no questions)\n"
|
||||
" -n Make no changes to the filesystem\n"
|
||||
" -y Assume \"yes\" to all questions\n"
|
||||
" -c Check for bad blocks and add them to the badblock "
|
||||
"list\n"
|
||||
" -c Check for bad blocks and add them to the badblock list\n"
|
||||
" -f Force checking even if filesystem is marked clean\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
|
@ -2411,8 +2353,7 @@ msgstr ""
|
|||
" -b superblok Dit superblok gebruiken\n"
|
||||
" -B blokgrootte Deze blokgrootte gebruiken bij zoeken naar superblok\n"
|
||||
" -j extern_journal Dit externe journal gebruiken\n"
|
||||
" -l slechte_blokkenbestand Deze lijst aan de slechte_blokkenlijst "
|
||||
"toevoegen\n"
|
||||
" -l slechte_blokkenbestand Deze lijst aan de slechte_blokkenlijst toevoegen\n"
|
||||
" -L slechte_blokkenbestand Deze slechte_blokkenlijst gebruiken\n"
|
||||
|
||||
#: e2fsck/unix.c:121
|
||||
|
@ -2484,7 +2425,7 @@ msgstr " is niet goed ontkoppeld"
|
|||
|
||||
#: e2fsck/unix.c:284
|
||||
msgid " primary superblock features different from backup"
|
||||
msgstr ""
|
||||
msgstr " het primaire superblok heeft andere functievlaggen gezet dan de reserveblokken"
|
||||
|
||||
#: e2fsck/unix.c:288
|
||||
#, c-format
|
||||
|
@ -2563,8 +2504,7 @@ msgstr "De optie '-t' wordt niet ondersteund door deze versie van e2fsck.\n"
|
|||
#: 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:459 misc/tune2fs.c:717 misc/tune2fs.c:734
|
||||
#, c-format
|
||||
|
@ -2587,6 +2527,8 @@ msgid ""
|
|||
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"E2FSCK_JBD_DEBUG -- \"%s\" is geen geheel getal\n"
|
||||
"\n"
|
||||
|
||||
#: e2fsck/unix.c:864
|
||||
#, c-format
|
||||
|
@ -2595,6 +2537,9 @@ msgid ""
|
|||
"Invalid non-numeric argument to -%c (\"%s\")\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Ongeldig niet-numeriek argument van '-%c': \"%s\"\n"
|
||||
"\n"
|
||||
|
||||
#: e2fsck/unix.c:903
|
||||
#, c-format
|
||||
|
@ -2615,13 +2560,13 @@ msgid "need terminal for interactive repairs"
|
|||
msgstr "voor interactieve reparaties is een terminal vereist"
|
||||
|
||||
#: e2fsck/unix.c:977
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "%s: %s trying backup blocks...\n"
|
||||
msgstr "%s reservekopieën worden bekeken...\n"
|
||||
msgstr "%s: %s reservekopieblokken worden bekeken...\n"
|
||||
|
||||
#: e2fsck/unix.c:979
|
||||
msgid "Superblock invalid,"
|
||||
msgstr ""
|
||||
msgstr "Superblok is ongeldig --"
|
||||
|
||||
#: e2fsck/unix.c:980
|
||||
msgid "Group descriptors look bad..."
|
||||
|
@ -2646,8 +2591,7 @@ msgstr "Is dit misschien een partitie met lengte nul?\n"
|
|||
#: e2fsck/unix.c:1002
|
||||
#, 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:1007
|
||||
#, c-format
|
||||
|
@ -2657,8 +2601,7 @@ msgstr "Mogelijk een niet-bestaand apparaat of een swap-apparaat?\n"
|
|||
#: e2fsck/unix.c:1009
|
||||
#, 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:1013
|
||||
#, c-format
|
||||
|
@ -2680,9 +2623,7 @@ msgstr "tijdens controle van het ext3-journal van %s"
|
|||
|
||||
#: e2fsck/unix.c:1109
|
||||
#, 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"
|
||||
|
@ -2753,8 +2694,7 @@ msgid ""
|
|||
"*** 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:1280
|
||||
#, c-format
|
||||
|
@ -2944,8 +2884,7 @@ msgstr "voltooid \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 ""
|
||||
"Gebruik: %s [-b blokgrootte] [-i invoerbestand] [-o uitvoerbestand]\n"
|
||||
|
@ -2984,8 +2923,7 @@ msgstr "tijdens leegmaken van de buffers"
|
|||
|
||||
#: 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"
|
||||
|
@ -3019,13 +2957,11 @@ msgstr "Lezen en vergelijken: "
|
|||
|
||||
#: 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 ""
|
||||
|
@ -3462,10 +3398,10 @@ msgstr "Kan geen geheugen reserveren voor bestandssysteemsoorten.\n"
|
|||
|
||||
#: misc/fsck.c:875
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
|
||||
"number\n"
|
||||
msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
|
||||
msgstr ""
|
||||
"%s: ongeldige regel in /etc/fstab wordt overgeslagen:\n"
|
||||
"zesde veld van 'bind'-aankoppeling is niet nul (fsck-volgnummer)\n"
|
||||
|
||||
#: misc/fsck.c:902
|
||||
#, c-format
|
||||
|
@ -3482,8 +3418,7 @@ msgid "--waiting-- (pass %d)\n"
|
|||
msgstr "--wachten-- (volgnummer %d)\n"
|
||||
|
||||
#: misc/fsck.c:1064
|
||||
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"
|
||||
|
@ -3514,7 +3449,7 @@ msgid "While reading version on %s"
|
|||
msgstr "Tijdens lezen van versie op %s"
|
||||
|
||||
#: misc/mke2fs.c:97
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: %s [-c|-t|-l filename] [-b block-size] [-f fragment-size]\n"
|
||||
"\t[-i bytes-per-inode] [-I inode-size] [-j] [-J journal-options]\n"
|
||||
|
@ -3528,8 +3463,8 @@ msgstr ""
|
|||
" [-j] [-J journalopties] [-L label] [-M laatst_aangekoppelde_map]\n"
|
||||
" [-m percentage_gereserveerde_blokken] [-N aantal_inodes]\n"
|
||||
" [-o naam_van_aanmakende_besturingssyteem] [-O functie[,...]]\n"
|
||||
" [-r bestandssysteemversie] [-R opties] [-T bestandssysteemtype]\n"
|
||||
" [-nqSvV] apparaat [aantal_blokken]\n"
|
||||
" [-r bestandssysteemversie] [-T bestandssysteemtype] [-nqSvV]\n"
|
||||
" [-E uitgebreide_optie[,...]] apparaat [aantal_blokken]\n"
|
||||
|
||||
#: misc/mke2fs.c:197
|
||||
#, c-format
|
||||
|
@ -3548,8 +3483,7 @@ msgstr "tijdens verwerken van de gemaakte lijst van slechte blokken"
|
|||
#: 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
|
||||
|
@ -3750,15 +3684,12 @@ msgstr "Ongeldig argument van 'resize': %s\n"
|
|||
#: 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:856
|
||||
#, c-format
|
||||
|
@ -3807,8 +3738,7 @@ msgstr "ongeldige blokgrootte: %s"
|
|||
#: misc/mke2fs.c:1008
|
||||
#, 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:1025
|
||||
#, c-format
|
||||
|
@ -3818,8 +3748,7 @@ msgstr "ongeldige fragmentgrootte: %s"
|
|||
#: misc/mke2fs.c:1031
|
||||
#, 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:1038
|
||||
msgid "Illegal number for blocks per group"
|
||||
|
@ -3868,8 +3797,7 @@ msgstr "tijdens openen van journal-apparaat %s\n"
|
|||
#: misc/mke2fs.c:1193
|
||||
#, 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:1207
|
||||
#, c-format
|
||||
|
@ -3878,8 +3806,7 @@ msgstr "Blokken van %d bytes zijn te groot voor dit systeem (max %d)."
|
|||
|
||||
#: misc/mke2fs.c:1211
|
||||
#, 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"
|
||||
|
@ -3920,16 +3847,12 @@ msgstr "Bestandssysteem is groter dan de schijnbare apparaatgrootte."
|
|||
#: misc/mke2fs.c:1331
|
||||
#, 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:1338
|
||||
#, 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:1350
|
||||
#, c-format
|
||||
|
@ -3942,9 +3865,7 @@ msgstr "tijdens bepalen van de grootte van een sector"
|
|||
|
||||
#: misc/mke2fs.c:1428
|
||||
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:1437
|
||||
msgid "blocks per group count out of range"
|
||||
|
@ -3979,8 +3900,7 @@ msgstr "ongeldige inode-grootte %d (min %d / max %d)"
|
|||
#: misc/mke2fs.c:1474
|
||||
#, 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:1486
|
||||
#, c-format
|
||||
|
@ -4069,7 +3989,7 @@ msgid ""
|
|||
"done\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"klaar\n"
|
||||
"voltooid\n"
|
||||
"\n"
|
||||
|
||||
#: misc/mklost+found.c:49
|
||||
|
@ -4095,8 +4015,7 @@ msgstr ""
|
|||
" [-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"
|
||||
" [-o [^]aankoppelingsopties[,...]] [-r aantal_gereserveerde_blokken]\n"
|
||||
" [-s schaarsheidsvlag] [-T tijdstip_van_laatste_controle]\n"
|
||||
" [-u gebruiker] [-U UUID] apparaat\n"
|
||||
|
||||
|
@ -4579,6 +4498,3 @@ msgstr "blokken voor metagegevens"
|
|||
#, c-format
|
||||
msgid "Should never happen: resize inode corrupt!\n"
|
||||
msgstr "Zou nooit mogen gebeuren: de 'resize'-inode is beschadigd!\n"
|
||||
|
||||
#~ msgid "Couldn't find ext2 superblock,"
|
||||
#~ msgstr "Kan het ext2-superblok niet vinden --"
|
||||
|
|
135
po/pl.po
135
po/pl.po
|
@ -63,17 +63,16 @@
|
|||
#.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: e2fsprogs 1.40.1\n"
|
||||
"Project-Id-Version: e2fsprogs 1.40.3\n"
|
||||
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
|
||||
"POT-Creation-Date: 2007-12-05 19:25-0500\n"
|
||||
"PO-Revision-Date: 2007-07-09 21:11+0200\n"
|
||||
"PO-Revision-Date: 2007-12-11 17:50+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
|
||||
|
@ -113,9 +112,7 @@ msgstr "podczas uaktualniania i-w
|
|||
#: 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
|
||||
|
@ -233,8 +230,7 @@ msgstr "%s: odtwarzanie z kroniki\n"
|
|||
#: 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
|
||||
|
@ -855,8 +851,7 @@ msgstr "@S ma b
|
|||
#. @-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
|
||||
|
@ -880,8 +875,7 @@ msgstr "Zewn
|
|||
#: 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"
|
||||
|
@ -1030,8 +1024,7 @@ msgstr ""
|
|||
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
|
||||
#: e2fsck/problem.c:327
|
||||
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
|
||||
msgstr ""
|
||||
"Resize_inode 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
|
||||
|
@ -1177,8 +1170,7 @@ msgstr "Podw
|
|||
#. @-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
|
||||
|
@ -1313,14 +1305,12 @@ msgstr "B
|
|||
#. @-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
|
||||
|
@ -1423,8 +1413,7 @@ msgstr "@A @bu rozszerzonych atrybut
|
|||
#. @-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
|
||||
|
@ -1461,8 +1450,7 @@ msgstr "@b #%B (%b) powoduje,
|
|||
#: 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
|
||||
|
@ -1583,15 +1571,12 @@ msgstr "B
|
|||
#. @-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
|
||||
|
@ -1931,8 +1916,7 @@ msgstr "@p i-w
|
|||
#. @-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
|
||||
|
@ -2210,12 +2194,8 @@ msgstr "B
|
|||
#. @-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"
|
||||
|
@ -2235,8 +2215,7 @@ msgstr "B
|
|||
|
||||
#: 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
|
||||
|
@ -2344,8 +2323,7 @@ msgid ""
|
|||
" -p Automatic repair (no questions)\n"
|
||||
" -n Make no changes to the filesystem\n"
|
||||
" -y Assume \"yes\" to all questions\n"
|
||||
" -c Check for bad blocks and add them to the badblock "
|
||||
"list\n"
|
||||
" -c Check for bad blocks and add them to the badblock list\n"
|
||||
" -f Force checking even if filesystem is marked clean\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
|
@ -2354,8 +2332,7 @@ msgstr ""
|
|||
" -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
|
||||
|
@ -2369,8 +2346,7 @@ msgid ""
|
|||
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"
|
||||
|
@ -2443,7 +2419,7 @@ msgstr " nie by
|
|||
|
||||
#: e2fsck/unix.c:284
|
||||
msgid " primary superblock features different from backup"
|
||||
msgstr ""
|
||||
msgstr " cechy głównego superbloku różnią się od kopii zapasowej"
|
||||
|
||||
#: e2fsck/unix.c:288
|
||||
#, c-format
|
||||
|
@ -2545,6 +2521,8 @@ msgid ""
|
|||
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"E2FSCK_JBD_DEBUG \"%s\" nie jest liczbą całkowitą\n"
|
||||
"\n"
|
||||
|
||||
#: e2fsck/unix.c:864
|
||||
#, c-format
|
||||
|
@ -2553,6 +2531,9 @@ msgid ""
|
|||
"Invalid non-numeric argument to -%c (\"%s\")\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Błędny argument nieliczbowy dla -%c (\"%s\")\n"
|
||||
"\n"
|
||||
|
||||
#: e2fsck/unix.c:903
|
||||
#, c-format
|
||||
|
@ -2573,13 +2554,13 @@ msgid "need terminal for interactive repairs"
|
|||
msgstr "interaktywna naprawa wymaga terminala"
|
||||
|
||||
#: e2fsck/unix.c:977
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "%s: %s trying backup blocks...\n"
|
||||
msgstr "%s podczas próby wykonania kopii zapasowej bloków...\n"
|
||||
msgstr "%s: %s podczas próby wykonania kopii zapasowej bloków...\n"
|
||||
|
||||
#: e2fsck/unix.c:979
|
||||
msgid "Superblock invalid,"
|
||||
msgstr ""
|
||||
msgstr "Superblok błędny,"
|
||||
|
||||
#: e2fsck/unix.c:980
|
||||
msgid "Group descriptors look bad..."
|
||||
|
@ -2614,8 +2595,7 @@ msgstr "Zapewne nie istniej
|
|||
#: e2fsck/unix.c:1009
|
||||
#, 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:1013
|
||||
#, c-format
|
||||
|
@ -2637,9 +2617,7 @@ msgstr "podczas sprawdzania kroniki ext3 dla %s"
|
|||
|
||||
#: e2fsck/unix.c:1109
|
||||
#, 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"
|
||||
|
@ -2896,13 +2874,11 @@ msgstr "zako
|
|||
#, 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
|
||||
|
@ -3412,10 +3388,8 @@ msgstr "Nie mo
|
|||
|
||||
#: misc/fsck.c:875
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
|
||||
"number\n"
|
||||
msgstr ""
|
||||
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:902
|
||||
#, c-format
|
||||
|
@ -3432,11 +3406,8 @@ msgid "--waiting-- (pass %d)\n"
|
|||
msgstr "--oczekiwanie-- (przebieg %d)\n"
|
||||
|
||||
#: misc/fsck.c:1064
|
||||
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:1106
|
||||
#, c-format
|
||||
|
@ -3464,7 +3435,7 @@ msgid "While reading version on %s"
|
|||
msgstr "Podczas odczytu wersji %s"
|
||||
|
||||
#: misc/mke2fs.c:97
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: %s [-c|-t|-l filename] [-b block-size] [-f fragment-size]\n"
|
||||
"\t[-i bytes-per-inode] [-I inode-size] [-j] [-J journal-options]\n"
|
||||
|
@ -3477,7 +3448,7 @@ msgstr ""
|
|||
"\t[-i bajtów-na-i-wêze³] [-I rozm-i-wêz³a] [-j] [-J opcje-kroniki]\n"
|
||||
"\t[-N liczba-i-wêz³ów] [-m procent-rezerw.-bloków] [-o os-twórcy]\n"
|
||||
"\t[-g bloków-w-grupie] [-L etykieta-wolumenu] [-M ost.-mont.-katalog]\n"
|
||||
"\t[-O cecha[,...]] [-r wersja-fs] [-R opcje] [-qvSV]\n"
|
||||
"\t[-O cecha[,...]] [-r wersja-fs] [-E opcja-rozszerzona[,...]] [-qvSV]\n"
|
||||
"\turz±dzenie [liczba-bloków]\n"
|
||||
|
||||
#: misc/mke2fs.c:197
|
||||
|
@ -3695,15 +3666,12 @@ msgstr "B
|
|||
#: 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:856
|
||||
#, c-format
|
||||
|
@ -3818,11 +3786,8 @@ msgstr "%d-bajtowe bloki s
|
|||
|
||||
#: misc/mke2fs.c:1211
|
||||
#, 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:1229
|
||||
msgid "filesystem"
|
||||
|
@ -3864,8 +3829,7 @@ msgstr "Cechy systemu plik
|
|||
#: misc/mke2fs.c:1338
|
||||
#, 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:1350
|
||||
#, c-format
|
||||
|
@ -3878,9 +3842,7 @@ msgstr "podczas pr
|
|||
|
||||
#: misc/mke2fs.c:1428
|
||||
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:1437
|
||||
msgid "blocks per group count out of range"
|
||||
|
@ -4511,6 +4473,3 @@ msgstr "bloki metadanych"
|
|||
#, c-format
|
||||
msgid "Should never happen: resize inode corrupt!\n"
|
||||
msgstr "Nigdy siê nie powinno zdarzyæ: i-wêze³ zmiany rozmiaru uszkodzony!\n"
|
||||
|
||||
#~ msgid "Couldn't find ext2 superblock,"
|
||||
#~ msgstr "Nie znaleziono superbloku ext2,"
|
||||
|
|
|
@ -21,6 +21,7 @@ extern char *program_name;
|
|||
errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
|
||||
blk_t *new_size, int flags EXT2FS_ATTR((unused)))
|
||||
{
|
||||
#ifdef __linux__
|
||||
struct ext2_new_group_input input;
|
||||
struct ext2_super_block *sb = fs->super;
|
||||
unsigned long new_desc_blocks;
|
||||
|
@ -158,4 +159,9 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
|
|||
close(fd);
|
||||
|
||||
return 0;
|
||||
#else
|
||||
printf(_("Filesystem at %s is mounted on %s, and on-line resizing is"
|
||||
"not supported on this system.\n"), fs->device_name, mtpt);
|
||||
exit(1);
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue